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

评论

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

#1 楼

根据Arch Linux ARM的Building Packages页面,您需要进行安装。




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

$ sudo pacman -S kernel26-headers file base-devel abs


获取PKGBUILD。您需要下载所需的压缩包。
可以在AUR上找到程序的压缩包。

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

$ makepkg -Acs


-A选项将忽略目标Arch体系结构。在完成-c之后,makepkg选项会清理
目录,并且-s将安装所需的
依赖项。因为它可能会导致系统永久损坏。但是,如果确实需要以root用户身份运行它,请使用makepkg选项。



安装软件包。 --asroot应该在目录
中创建了文件类型为makepkg的文件。您应该通过在pacman中使用
.pkg.tar.xz选项来安装此软件包。 br />



评论


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

–活动
2012年6月20日10:25

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

–Anglepoise
2014年4月2日在18:29

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

– PyRulez
2014年12月25日下午4:07

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

– dmnc
17年7月4日在22:00

仍然是kernel26标头?找不到与Google有关的任何信息。并且组base-devel包含文件。

–user3123159
17年11月16日在13:26

#2 楼

最简单的解决方案是使用Yaourt(又一个其他用户存储库工具)。 AUR:

pacman -S yaourt


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

yaourt -Syy


这将提供交互式的安装提示

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

评论


pacman和yaourt有什么区别?

–亚历山大·张伯伦
2012年6月19日在20:29

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

–活动
2012年6月19日在20:36

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

–tekknolagi
2014年5月14日13:51

pacman -S yaourt无法正常工作,我无法添加archlinuxfr,因为它们显然没有托管armv6h

–tekknolagi
2014年5月15日在21:42

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

–活动
2014年5月16日0:11



#3 楼

以上所有答案均已过时。我的回答不是很好,但是希望可以避免过时的问题。截至此日期的yaourt。)

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

评论


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

–平滑软件
18/12/31在14:37

#4 楼

我为此目的使用打包程序,我认为它是yaourt的更快替代方法。 >然后您可以通过pacman安装/更新打包程序:

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


,使用打包程序的方式与使用pacman几乎相同:

# pacman -Sy packer


此外,如果您不想升级包括AUR中的软件包在内的所有软件包,请执行以下操作:从官方存储库中升级,然后它将升级所有AUR软件包。

评论


这行不通。 Packer似乎没有-S选项,只是build / console / fix / hcl2_upgrade / inspect / validate / version

–user134593
20年11月7日,13:44

#5 楼

重要! 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,则返回系统中的所有软件包。您可以搜索此输出以获取有关已安装软件包的专门信息。

例如,如果要获取每个软件包及其大小:

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 -Si在数据库中查询有关软件包的最新信息。

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

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


pacman -Ql列出与软件包相关的所有文件。
pacman -Si linux


...

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

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 | grep bin查找该程序包中bin文件夹中的所有文件(因此可能是可执行文件)。当与软件包关联的命令与软件包名称不同时,这非常方便。

pacman -Qlq vi

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


安装

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

pacman -Qql pacman | grep bin


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

sudo pacman -S <package>


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


如果已经下载了软件包,或者您知道URL,则可以直接安装。 br />
sudo pacman -Sw <package>


升级

由于pacman围绕与远程存储库“同步”软件包的想法,因此pacman -S将升级软件包。已经安装。

Pacman可以列出过期的软件包。

sudo pacman -U <package_path>


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

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

pacman -Qu


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

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

3.8.4-1


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


降级

Arch Linux并未正式维护不推荐使用的软件包。取而代之的是,您将需要依靠程序包的缓存以及诸如Arch Arch Backback Machine之类的地方。 br />
sudo pacman -Syu


...

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

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


Arch回滚机

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

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

pacman -U <path_to_cached_file>


浏览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


这两个工具都在AUR中,因此安装它们的最简单方法是使用yaourt这样的助手。 >
注意:ARM是一个非官方项目,并且在过去已关闭,因此最好避免在ARM故障或再次更改位置时清除缓存。如果您想使用自己的ARM,则github上似乎有一个NodeJS项目。保留其依赖项。

downgrade
downgrader


删除软件包,前提是没有任何依赖软件包。删除不需要的依赖项。

downgrade <package>
downgrader <package>


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


评论


要完全删除软件包,请执行以下操作:aurman -Rsn

– mjd2
18年5月23日在13:33



#6 楼

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

cd package可以找到PKGBUILD文件。下一步将使用它。

最后,运行此命令来编译并安装刚刚下载的软件包。 makepkg -Sri。如果您想全面了解这些字母的含义,可以运行makepkg -h,在此处将全部进行解释。

评论


欢迎来到Ash Exchange的Stack Exchange,您能否详细说明您的答案-为什么需要执行以上操作,这些语句做什么?

– Phil B.
15年10月12日在12:13