0%

灵活使用yaourt

AUR极大的丰富了archlinux的软件仓库,所使用的工具yaourt有好处也有弊端。当AUR从第三方下载源码或者deb包较慢甚至出错时,怎么安装想要的软件呢?

1)如果AUR从第三方源码处下载源码,yaourt自带工具下载太慢导致失败,怎么解决?

2)如果AUR中就那么心酸的碰到一个写错的PKGBUILD,检查不能通过,无法安装软件。

一、下载包失败

我在安装jdk时,就碰到第一种情况,yaourt -S jdk多次失败,迫于国内访问orcale的速度太慢JDK下载不成功,yaourt终止。

解决办法

1 —————–

因为yaourt安装软件包时,其cache是/tmp/aur-yaourt-root/,对于yaourt下载不成功的包,我借助其他下载软件,比如uget deluga 甚至firefox的插件DownthemAll!去下载相应的源码包或者deb包,但是前提是需要知道包下载的url。

有两种方法都可以获取:

(1)在yaourt -S package至Edit the PKGBUILD时,同意编辑,分析包的下载url,然后CTRL+c终止yaourt,去下载包。

(2)让yaourt -S package运行至下载包阶段,从当前yaourt进程去分析当前下载的子进程。

pstree -p $(pgrep yaourt)

这时会看到yaourt所产生的下载子进程,没有设置过yaourt时默认是用curl下载的,curl 参数网址便是包的下载地址了~其他的axel wget与之类似,不用等包下载完成(下载不成功么),终止原yaourt。

然后直接使用其他类的下载工具去下载该包。

2 —————–

下载完包后,执行

yaourt -S package-name

在不同意编辑PKGBUILD之后,有个选项是否同意安装或者build,先不管yaourt,将下载的包复制至/tmp/aur-yaourt-root相应的软件文件夹下,然后同意安装或者build。

这是你就会发现yaourt检测到包,不再重新下载了,自动继续后面的过程。

二、PKGBUILD错误,即AUR中有打包错误

这种情况,我就那么心酸了一次…那是安装mysql-workbench-gpl:mysql 的GUI。

开始使用sudo yaourt -S mysql-workbench-gpl,当把deb下载完毕后准备build,结果出现下载的deb包md5

值与PKGBUILD中验证该包的md5值不一致,编译时中断退出,修改PKGBUILD中的md5值依然出现问题。

解决办法:手工打pkg.tar.xz包,本地编译安装

1 ———————

https://aur.archlinux.org/中搜索需要的软件包,比如mysql-workbench,我希望从源码编译,所以选择源码那个,点击进入下级页面,下载tarball。

2 ——————–

看下tarball下载后是何物?其实是mysql-workbench安装所需的脚本与编译配置包

tar zxvf mysql-workbench.tar.gz
mysql-workbench/
mysql-workbench/python27.patch
mysql-workbench/ArchLinux.xml
mysql-workbench/PKGBUILD
mysql-workbench/gcc46.patch
mysql-workbench/arch.patch
cd mysql-workbench

3 ——————–

进入mysql-workbench目录后,使用makepkg下载包并build,中间如果出现第一种情况,直接下载后放置当前目录即可(不是/tmp),最后会像这样:

ls -l
总用量 32452
-rw-r--r-- 1 turing users      778  1月  3 01:36 ArchLinux.xml
-rw-r--r-- 1 turing users     1073  1月  3 01:36 arch.patch
-rw-r--r-- 1 turing users      721  1月  3 01:36 gcc46.patch
-rw-r--r-- 1 turing users 14558172  3月 17 04:26 mysql-workbench-1:5.2.38-1-i686.pkg.tar.xz
-rw-r----- 1 turing users 18640435  3月 17 03:10 mysql-workbench-gpl-5.2.38-src.tar.gz
drwxr-xr-x 3 turing users     4096  3月 17 04:25 pkg
-rw-r--r-- 1 turing users     2475  2月 27 22:08 PKGBUILD
-rw-r--r-- 1 turing users      965  1月  3 01:36 python27.patch
drwxr-xr-x 3 turing users     4096  3月 17 03:11 src

4 ——————–

长久的编译后生成的mysql-workbench-1:5.2.38-1-i686.pkg.tar.xz就可以安装了:

pacman -U mysql-workbench-1:5.2.38-1-i686.pkg.tar.xz

OK了!

坚持原创技术分享,您的支持将鼓励我继续创作!

Welcome to my other publishing channels