Skip to content

使用 yaourt

1dot75cm edited this page Mar 24, 2016 · 11 revisions

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 看看有什么好玩的软件吧。