如果makepkg直接使用它,将会对您的系统造成一定的污染。的base-devel必须安装软件包组。这样,默认情况下,将保留仅生成软件包所需的依赖关系,而无需使用它。可以更改此默认行为,但这涉及安装和卸载软件包以及污染/var/log/pacman.log。
请参阅本文以了解和一般使用AUR,包括获取AUR PKGBUILD。makepkg如果您选择编译包的方法,则此文档仅显示特定于的步骤。
如果base-devel尚未安装软件包组,则需要安装它。如果您没有makepkg安装,则将假定它已经安装,并且如果其中的软件包是必需的但尚未安装,则它只会失败而不是为您安装。 makepkg本身是pacman软件包的一部分,已经安装。
# pacman -S base-devel
您需要makepkg在的目录中运行PKGBUILD,该目录由创建git clone。默认情况下,它将下载实际的源代码,编译该程序包并将其打包。
的选项很多makepkg,包括以下常用选项:
-s, --syncdeps :自动安装构建和使用软件包所需的缺少依赖项。
请注意,如果PKGBUILD依赖于AUR软件包,则需要先安装它们,或者在您自己的本地存储库中提供它们,以便它可以找到它们。
-r, --rmdeps :如果构建成功,则自动卸载不再需要的依赖项,包括以下内容:
需要构建但不使用软件包的软件包。
如果不带--install选件使用,则是使用该包装所必需的。
-i, --install :如果构建成功,则自动安装/升级软件包。
-c, --clean :自动删除临时构建文件,通常仅在调试出问题的构建时才需要。
要自动安装/升级软件包,请保留使用软件包的依赖关系,并删除仅在构建期间需要的依赖关系,请运行:
# makepkg -sri
或者,您可以选择不自动安装它,并保留所有依赖项的安装,因此,如果有一天打包升级包,则它们已经安装:
# makepkg -s
然后,您可以按照此处的说明使用本地存储库,也可以直接安装文件:
# pacman -U ---.pkg.tar.xz
包装更快
默认情况下,makepkg将整个软件包合并为存档格式;.tar.xz使用单个线程进行xz压缩来制作文件。
在多CPU系统上,可以xz通过编辑允许使用多个线程/etc/makepkg.conf,并更改以下行:
COMPRESSXZ=(xz -c -z -)
您可以允许具有虚拟核心的线程数:
COMPRESSXZ=(xz -c -z - --threads=0)
为了允许使用多个虚拟核心,但又不是全部虚拟核心,以减少对整体系统性能的影响,请添加一个特定的数字,例如:
COMPRESSXZ=(xz -c -z - --threads=21)
注意: 指定的线程数多于所拥有的虚拟核心数,将会降低性能。
如果您不介意打包文件较大(可能很大),请通过编辑禁用压缩/etc/makepkg.conf,然后更改以下行:
PKGEXT='.pkg.tar.xz'
它应如下所示:
PKGEXT='.pkg.tar'
跳过验证PGP签名
我们推荐正确验证,并添加任何signaturesused PGP,如解释在这里一节“PGP签名错误”。
但是,如果makepkg直接运行,则可以为其--skippgpcheck选择跳过验证PGP签名的选项。