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了!