我正在使用 Arch Linux。我想做与 apt-get source coreutils
相同的事情;是否可以使用 Pacman 下载源代码?我在 man页面 中没有找到解决方案。
如何获取软件包的源代码?
我正在使用 Arch Linux。我想做与 apt-get source coreutils
相同的事情;是否可以使用 Pacman 下载源代码?我在 man页面 中没有找到解决方案。
如何获取软件包的源代码?
pacman -S asp
如果你想获取Linux命令find
的源代码,先要找出该命令所属的软件包:使用命令pacman -Qo $(which find)
,结果是"/usr/bin/find is owned by findutils 4.4.2-3"。
运行命令asp export findutils
cd findutils
makepkg -o
现在你已经拥有你的源代码了。abs core/wpa_supplicant
的操作,其中您需要在软件包仓库前面添加前缀。如果您不想使用 sudo
,也可以使用 ABSROOT=/tmp/ abs core/wpa_supplicant
。 - Ehtesh Choudhurymakepkg -o
仅下载和打补丁源代码,而不是构建整个软件包! - LassePoulsenpython
源代码,但在执行 makepkg -o
时出现了“缺少依赖项”的错误。请使用 makepkg -o -i
命令跳过依赖项检查。 - CSJ2018年更新:
下面所描述的abs
工具已被弃用,它及其rsync端点自2017年中旬起已被删除。
现在可以使用asp
工具提供类似功能,更多信息请点击这里。
如前所述,您可以使用ABS(Arch Build System):
使用pacman安装:
sudo pacman -S base-devel abs
首先,下载ABS树:
sudo abs
然后,获取特定的软件包:
sudo abs [package_name]
从本地的abs树(例如/var/abs/core/findutils
)复制您想要源代码的软件包到另一个目录中,例如/home/blabla/abs
。
然后运行makepkg
:
如果您只想获取源代码而不想构建软件包,则可以运行makepkg -od
否则,请运行makepkg -s
,它将自动处理所有软件包依赖项
注意:makepkg将覆盖您的修改,请使用makepkg -e
代替构建您的本地源
如果您想安装已构建的软件包,则运行
pacman -U name-of-package.xz
makepkg -i
会安装软件包;也可以使用makepkg -ei
一次编译src中的内容并安装生成的软件包。 - apurkrt编辑:由于ABS的变化,此答案已过时。
你可以从叫做ABS的Arch Linux SVN仓库获取软件包源代码。
首先在线上找到所需的软件包: http://www.archlinux.org/packages/?q=coreutils
然后,在软件包详情页面右侧使用SVN链接,例如: http://repos.archlinux.org/wsvn/packages/coreutils/trunk/
在那里,你会看到一个方便的“下载”按钮,以coreutils为例,它将导向: http://repos.archlinux.org/wsvn/packages/coreutils/trunk/?op=dl&isdir=1
相比于apt-get source
,这个方法略微复杂。但是也许你可以在AUR中找到一个能够为你完成这项工作的工具,例如yaourt支持从源代码构建并导出软件包。