-
Notifications
You must be signed in to change notification settings - Fork 97
使用 yaourt
Yaourt 是一款基于 Pacman 的 Archlinux 包管理工具,采用 Bash 编写。
现在,Fedora 可以方便的使用 yaourt 安装 AUR 中的软件。
- 支持 AUR
- 交互式搜索/安装
- 支持从 ABS 源码构建软件包
- 可处理备份文件: .pac*
- 保存,恢复 alpm 数据库。支持查询备份文件
- 搜索孤儿包并测试本地数据库
- 支持分裂包
添加 FZUG 源后,使用以下命令进行安装:
$ sudo dnf install yaourt
配置 pacman 在隔离的环境中安装包:
$ sudo vim /etc/pacman.conf
[options]
RootDir = /opt/arch/ # 包安装的根目录,需手动创建,重要!!!
DBPath = /opt/arch/var/lib/pacman/ # 在该环境中存储包信息
LogFile = /var/log/pacman.log
Architecture = auto
# 添加 Archlinux 的 Core、Community、Multilib、Extra、Archlinuxcn 源信息
[core]
SigLevel = Optional TrustedOnly
Include = /etc/pacman.d/mirrorlist
[community]
SigLevel = Never
Include = /etc/pacman.d/mirrorlist
[multilib]
SigLevel = Never
Include = /etc/pacman.d/mirrorlist
[extra]
SigLevel = Never
Include = /etc/pacman.d/mirrorlist
[archlinuxfr]
SigLevel = Optional TrustedOnly
Server = http://repo.archlinux.fr/$arch
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = http://repo.archlinuxcn.org/$arch
同步源信息:
$ sudo pacman -Sy
使用外部下载工具替换 wget:
# vim /etc/pacman.conf # pacman
XferCommand = /usr/bin/axel -a %u -o %o
# vim /etc/makepkg.conf # yaourt
DLAGENTS=('http::/usr/bin/axel -a %u -o %o')
以安装 ppsspp 为例,对 yaourt 的操作进行说明。
$ sudo yaourt -Sdd ppsspp # 跳过所有依赖检查,并安装 ppsspp
$ sudo yaourt -Qi ppsspp # 查询软件包信息/依赖,如本机缺少相关依赖,使用 dnf 进行安装
$ yaourt-link -s ppsspp # 将隔离环境中的包软链接至系统
link to: /usr/bin/ppsspp
link to: /usr/share/applications/ppsspp.desktop
link to: /usr/share/man/man1/ppsspp.1.gz
link to: /usr/share/pixmaps/ppsspp.svg
Operating finish: community/ppsspp 1.0.1-3
删除 ppsspp。
$ yaourt-link -r ppsspp # 删除系统中的软链接
remove link: /usr/bin/ppsspp
remove link: /usr/share/applications/ppsspp.desktop
remove link: /usr/share/man/man1/ppsspp.1.gz
remove link: /usr/share/pixmaps/ppsspp.svg
Operating finish: community/ppsspp 1.0.1-3
$ sudo yaourt -R ppsspp # 删除 ppsspp
$ sudo yaourt -Q # 查询已安装软件包
有时,你可能需要在不同环境中安装不同包。使用 yaourt-link 即可方便管理。
$ yaourt-link -q # 查看所有域配置
default
Current: pacman.conf -> /etc/pacman.d/multiconf/default
$ sudo cp /etc/pacman.d/multiconf/default /etc/pacman.d/multiconf/arch1
$ sudo vim /etc/pacman.d/multiconf/arch1
RootDir = /opt/arch1/ # 包安装的根目录,需手动创建,重要!!!
DBPath = /opt/arch1/var/lib/pacman/ # 在该环境中存储包信息
$ yaourt-link -q # 再次查看域配置
arch1 default
Current: pacman.conf -> /etc/pacman.d/multiconf/default
$ yaourt-link -S arch1 # 切换至 arch1 域
$ sudo yaourt -Sy # 同步源信息
$ sudo yaourt -Sdd bash; yaourt -Q
core/bash 4.3.039-1 (base)
$ yaourt-link -S default; yaourt -Q # 切换至 default 域
community/ppsspp 1.0.1-3
Q:为何安装 Archlinux 软件包?Ubuntu 呢?
A:Archlinux 严格遵守 FHS,文件系统目录结构非常标准,与 Fedora 兼容。同时,Archlinux、Fedora 的开发速度都非常快,理论上基本能够使两个库中的软件 ABI 兼容,但我们并不对此做任何保证(数据无价,注意备份)。
Q:如何解决依赖问题?
A:首先,使用 ldd
命令查看程序所需运行库。你可能会看到 "libXXX.so.X => no fonund
"。接下来,使用 DNF
查找哪些包提供这些库 (例如,dnf provides */libXXX.so.X
)。最后,安装这些包即可。有时,Fedora 可能未提供程序运行所需的库。此时,使用 pacman/yaourt
查询依赖包 (yaourt -Qi ppsspp
) 并安装依赖包 (yaourt ffmpeg
)。最后,使用 yaourt-link
将运行库链接至系统 (yaourt-link -s ffmpeg
)。yaourt-link
不会覆盖系统中已存在的文件。 (当然,还有其他解决方案,比如 Docker)
现在,翻翻 AUR 看看有什么好玩的软件吧。