Fedora 使用 yaourt
1.什么是 yaourt?
Yaourt 是一款基于 Pacman 的 Archlinux 包管理工具,采用 Bash 编写。
现在,Fedora 可以方便的使用 yaourt 安装 AUR 中的软件。
yaourt 特点
- 支持 AUR
- 交互式搜索/安装
- 支持从 ABS 源码构建软件包
- 可处理备份文件: .pac*
- 保存,恢复 alpm 数据库。支持查询备份文件
- 搜索孤儿包并测试本地数据库
- 支持分裂包
2.安装 yaourt
添加 FZUG 源后,使用以下命令进行安装:$ sudo dnf install yaourt
3.配置 yaourt/pacman
配置 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‘)
4.安装示例
以安装 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 # 查询已安装软件包
5.管理多个环境
有时,你可能需要在不同环境中安装不同包。使用 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
6.FAQ
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 看看有什么好玩的软件吧。