如何从AUR安装软件包?


61

Arch Linux具有AUR(Arch用户存储库),它是用户构建的软件包的集合。但是,如何在Arch Linux ARM上安装这些软件包?


2
看起来好像已经通过“ aur”存储库提供了许多aur软件包。我是偶然发现的。pacman -S yourpackage可能实际起作用。例如,它可以与Cower和gmrender-resurrect-git一起使用。
enigmaticPhysicist

Answers:


53

根据Arch Linux ARM 的Building Packages页面,您需要这样做。

  1. 安装构建要点。这些是在Arch Linux ARM上编译软件包所必需的。

    $ sudo pacman -S kernel26-headers file base-devel abs
    
  2. 获得PKGBUILD您需要下载所需的tarball。您可以在AUR上找到程序的压缩包。

  3. 制作包装。接下来,您需要运行makepkg以生成pacman可以安装的软件包。

    $ makepkg -Acs
    

    -A选项将忽略目标Arch体系结构。该-c选项makepkg完成后将清理目录,并-s安装所需的依赖项。

    这是建议,你运行makepkg的根,因为它会导致你的系统造成永久性损坏。如果确实需要以root用户身份运行它,请使用该--asroot选项。

  4. 安装软件包。 makepkg应该在目录中使用filetype创建一个文件.pkg.tar.xz。您应该通过在-Upacman中使用该选项来安装此软件包 。

    $ sudo pacman -U x.pkg.tar.xz
    

    确保x.pkg.tar.xz用实际的软件包名称替换。


绝对不建议新手用户手动构建软件包。实际上,每个人都应该使用Yaourt。它使整个过程变得简单。
Jivings 2012年

您仍然需要这些软件包,并编辑PKGBUILD以针对armv6h拱进行编译。
Anglepoise 2014年

5
@Jivings实际上,yaourt和其他AUR助手不在正式仓库中的全部原因是,您应该学习如何在使用自动化工具之前手动安装外部软件包。
PyRulez 2014年

2
存储库中不存在“ abs”软件包
dmnc

kernel26-headers仍然实际?找不到与Google有关的任何信息。并且该组base-devel包含file
user3123159

34

最简单的解决方案是使用Yaourt 还可以使用其他用户存储库工具)

您可以安装:

pacman -S yaourt

然后与AUR同步:

yaourt -Syy

然后,您可以搜索AUR软件包:

yaourt package-name

它将提供安装的交互式提示。

或者,如果您确切知道软件包名称:

yaourt -S package-name

大多数pacman命令对于yaourt是相同的。


pacman和之间有什么区别yaourt
Alex Chamberlain 2012年

Yaourt还检查AUR以及官方存储库。AUR软件包也具有更多的自定义可能性。
Jivings 2012年

这不再起作用。官方的解决方案是什么?
tekknolagi 2014年

2
pacman -S yaourt不起作用,我无法添加archlinuxfr,显然他们没有主持armv6h
tekknolagi 2014年

1
@tekknolagi yaourt以前是Arch Arm的主存储库。也许他们删除了它。...但是您仍然可以从源代码构建它,这在Arch Wiki上的AUR文章中有解释。而且还有一个包文件就在这里。希望对您有所帮助!
吉文斯,2014年

10

以上所有答案均已过时。我的回答不是很好,但是希望可以避免过时的问题。

官方的wiki中详细解释,如何人去了有关安装/构建一个包,是不是吃豆子(封隔器和yaourt,因为这日期)的一部分。

Packer和yaourt在AUR中均标记为已过期。(将来可能会改变)。


好答案!我建议也使用makepkg -si(检查PKGBUILD文件后)
平滑软件,

7

我为此目的使用包装机,我认为它是yaourt的更快替代品。

只需将这两行添加到您的/etc/pacman.conf

[archlinuxfr]
Server = http://repo.archlinux.fr/$arch

然后,您可以通过pacman安装/更新打包程序:

# pacman -Sy packer

使用packer的方式与使用pacman的方式几乎相同:

$ packer -S some_aur_package

另外,如果您不想升级所有软件包,包括来自AUR的软件包:

$ packer -Syu

Packer将首先运行pacman -Syu以从官方存储库升级软件包,然后将升级所有AUR软件包。


4

重要! yaourt根据Wiki不安全且已弃用: https //wiki.archlinux.org/index.php/AUR_helpers

虽然@Jivings的回答在`12中是最好的,但我建议安装一个更安全,功能更丰富的arch软件包管理器(并且我建议有人更新@Jivings的回答,因为它具有最高的可见性)。

我正在使用aurman和挖掘它。具有所有功能,很安全,而且cli的工作原理几乎与pacman完全一样。安装:

cd ~/Downloads
git clone https://aur.archlinux.org/aurman.git
cd aurman
makepkg -Acs
# Change xxx below to downloaded version
sudo pacman -U aurman-xxx.pkg.tar.xz

然后,您几乎可以完全按照pacman指南进行操作,但使用aurman而不是pacman。以下指南摘自https://www.digitalocean.com/community/tutorials/how-to-use-arch-linux-package-management,并让我开始:


入门

Arch Linux提供了与其他现代Linux发行版中类似的软件包管理工具。这是常见软件包管理操作的指南。

在继续进行之前,请确保您的软件包数据库是最新的:

sudo pacman -Sy

正在搜寻

为了简洁起见,Arch Linux中的大多数软件包管理操作都以以下格式出现:

pacman -<a-z><a-z>.

例如,用于搜索pacman存储库的常规命令是

pacman -Ss <package> 

...

另外,您也可以使用pacman -Qs并没有颜色突出显示的缺点。

pacman -Qs linux

如果要使用pacman -Ss突出显示颜色,则可以从/etc/pacman.conf中取消注释颜色。不过,它突出显示了与pacsearch不同的内容,因此您可能需要同时尝试一下,看看更喜欢哪一种。

sudo vi /etc/pacman.conf

...
# Misc options
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
...

获取资讯

pacman -Qi displays basic information about an installed package.

pacman -Qi linux

Name           : linux
Version        : 3.8.4-1
Description    : The linux kernel and modules
Architecture   : x86_64
URL            : http://www.kernel.org/
Licenses       : GPL2
Groups         : base
Provides       : kernel26=3.8.4
Depends On     : coreutils  linux-firmware  kmod  mkinitcpio>=0.7
Optional Deps  : crda: to set the correct wireless channels of your country
Required By    : None
Optional For   : None
Conflicts With : kernel26
Replaces       : kernel26
Installed Size : 64728.00 KiB
Packager       : Tobias Powalowski <tpowa@archlinux.org>
Build Date     : Wed Mar 20 21:16:17 2013
Install Date   : Fri Mar 29 01:02:14 2013
Install Reason : Explicitly installed
Install Script : Yes
Validated By   : Unknown

如果不传递pacman -Qi,则返回系统中的所有软件包。您可以搜索此输出以获取有关已安装软件包的专门信息。

例如,如果要获取每个包装及其尺寸:

pacman -Qi | grep -e "Name" -e "Installed Size"

Name           : a52dec
Installed Size : 244.00 KiB
Name           : aalib
Installed Size : 768.00 KiB

...

pacman -Qi提供有关已安装软件包的信息时,pacman -Si向数据库查询有关软件包的最新检索信息。

pacman -Si linux

pacman -Ql列出与软件包关联的所有文件。

pacman -Ql vi

vi /usr/
vi /usr/bin/
vi /usr/bin/edit
vi /usr/bin/ex
vi /usr/bin/vedit
vi /usr/bin/vi

...

每行上的程序包名称会使输出更难以在脚本中使用。pacman -Qlq(即“ pacman查询列表,安静”)将不会打印软件包名称。

pacman -Qlq vi

/usr/
/usr/bin/
/usr/bin/edit
/usr/bin/ex
/usr/bin/vedit
/usr/bin/vi

...

您可以使用pacman -Qlq | grep bin查找该程序包中bin文件夹中的所有文件(因此可能是可执行文件)。当与软件包关联的命令与软件包名称不同时,这非常方便。

pacman -Qql pacman | grep bin

正在安装

安装或升级标准软件包的典型方法是pacman -S。

sudo pacman -S <package>

软件包的名称通常具有相似的模式。括号可以用作快捷方式。

sudo pacman -S lua-{sec,socket,zlib}

有时,您可能只想出于存档目的下载软件包而不安装它。pacman -Sw会将软件包下载到缓存文件夹。

sudo pacman -Sw <package>

如果已下载软件包,或者知道URL,则可以直接安装。

sudo pacman -U <package_path>

升级版

由于pacman围绕着与远程存储库“同步”软件包的想法,因此,pacman -S如果已经安装了软件包,则会对其进行升级。

吃豆人可以列出过期的软件包。

pacman -Qu

不幸的是,它不会在存储库中显示该软件包的版本,因此您将无法分辨每个软件包的过时程度。如果这对您很重要,则可能需要研究第三方包装管理器或编写一个脚本,将从pacman -Qi和pacman -Si获得的软件包版本联系在一起。

您可以使用正则表达式从pacman -Qi或pacman -Si中获取版本。

pacman -Qi linux | grep "Version" | sed 's/^Version\s*:\s//'

3.8.4-1

然后编写一个脚本,并排显示版本。

for i in $(pacman -Qqu)
do
  printf "$i: "
  printf "$(pacman -Qi "$i" | grep 'Version' | sed 's/^Version\s*:\s//') "
  echo   "$(pacman -Si "$i" | grep 'Version' | sed 's/^Version\s*:\s//')"
done

Pacman提供了一次升级所有软件包的方法,但不建议使用,因为Arch是滚动发行版本。如果出现问题,则可能需要一些时间来确定原因。

sudo pacman -Syu

降级

Arch Linux并未正式维护不推荐使用的软件包。取而代之的是,您将需要依靠程序包缓存和诸如Arch Rollback Machine之类的地方。快取

用pacman下载的每个软件包都存储在/ var / cache / pacman / pkg中。

ls /var/cache/pacman/pkg | grep linux

linux-3.11.6-1-x86_64.pkg.tar.xz
linux-3.9.7-1-x86_64.pkg.tar.xz

...

如果要还原到缓存中的软件包,只需直接安装即可。

pacman -U <path_to_cached_file>

拱退机

Arch Rollback Machine是官方Arch Linux镜像的快照的集合。在撰写本文时,它可以追溯到四个月前。目前,ARM托管在http://seblu.net/a/arm上,尽管将来可能会改变。

可以使用pacman -U远程安装ARM软件包。

pacman -U http://seblu.net/a/arm/2013/08/31/extra/os/x86_64/apache-2.2.25-1-x86_64.pkg.tar.xz

浏览ARM查找较旧的软件包并不十分方便。幸运的是,有一些工具可以使此操作更容易:

downgrade
downgrader

他们在缓存和ARM中搜索较旧的版本。它们的用法就是您所期望的。

downgrade <package>
downgrader <package>

两种工具都在AUR中,因此安装它们的最简单方法是使用yaourt这样的助手。

注意:ARM是一个非官方的项目,并且在过去已关闭,因此最好避免在ARM故障或再次更改位置时清除缓存。如果您想推出自己的ARM,那么github上似乎有一个NodeJS项目。清除

如果没有任何依赖,请删除该软件包。保留其依赖性安装。

sudo pacman -R <package>

如果没有任何依赖,请删除该软件包。删除其他所有不需要的依赖项。

sudo pacman -Rs <package>

强制移除包装。这是您要执行的命令,仅从系统中擦除软件包并重新安装就足够了。

sudo pacman -Rdd <package>

要完全删除软件包:aurman -Rsn <package>
mjd2

0

您需要做的第一件事是从AUR下载软件包。为此,请执行以下操作:git clone http://aur.archlinux.org/package.git即使看起来您正在下载.git文件,输出仍将是目录。

cd package查找PKGBUILD文件。将在下一步中使用。

最后,运行此命令来编译并安装刚刚下载的软件包。makepkg -Sri。如果您想全面解释每个字母的含义,可以makepkg -h在将它们全部解释的位置运行。


2
欢迎来到Ash Exchange的Stack Exchange,您能否详细说明您的答案-为什么需要执行以上操作,这些语句做了什么,等等?
Phil B.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.