未加星标

Arch Linux devtools 简介 在干净的环境里编译软件包

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二04 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

devtools 是 Arch linux 开发者们用来往官方仓库里推进软件包使用的一系列工具。由于里面有许多工具可能不是我们常用的,这里主要介绍里面的一部分――用于在干净的环境中编译软件包的命令。

为什么要在干净的环境里编译软件包?这里有几个常见的理由:

避免忘记写依赖 当前环境中已安装的软件包可能在普通的 makepkg 过程中被忽略,最后在 depends 或者 makedepends 等列表中缺失。 避免编译过程污染环境 因为一些你可能没有想到的原因,编译过程中可能会对你当前的系统产生污染,比如跑 npm install 的时候可能会把缓存塞到 $HOME。 避免因环境不干净导致的奇怪编译错误 你的环境中可能有各种不干净的情况,比如 profile.d 里覆盖了 gcc 等常见命令、/usr/local/bin 里有覆盖常用命令、用非系统包管理器安装(覆盖)了一些东西等。 或者你只是不想把这个软件包编译时需要的一堆乱七八糟的依赖都装在自己机器上。

如果你有这样的需求,可以考虑使用 devtools。安装过程很简单

pacman -S devtools

下面需要考虑的是,这个软件包是符合哪个仓库规范的。由于一般用户不需要考虑 staging 系列仓库和配置文件等问题,下面这个列表是从 ArchWiki 中简化的版本:

目标仓库 架构 使用命令 extra / community i686 extra-i686-build extra / community x86_64 extra-x86_64-build testing / community-testing i686 testing-i686-build testing / community-testing x86_64 testing-x86_64-build multilib x86_64 multilib-build multilib-testing x86_64 multilib-testing-build archlinuxcn x86_64 archlinuxcn-x86_64-build (注意最后一个命令来自 devtools-cn-git 软件包,可以从 [archlinuxcn] 仓库中得到)

直接在包含 PKGBUILD 文件的目录中执行对应的命令(替换原来工作流里的 makepkg 命令)即可。

常见问题、小技巧 软件包的依赖不在官方仓库中,如何把这个包“塞”到编译环境中? extra-x86_64-build -- -I /var/cache/pacman/pkg/your-package-0-x86_64.pkg.tar.xz 如何传入 makepkg 的命令行参数,比如如果我想跳过测试? extra-x86_64-build -- -- --nocheck 每次重新准备干净 chroot 的过程特别慢,如何可以提速呢?

可以考虑做一个 btrfs 镜像挂载到 /var/lib/archbuild,devtools 会自动使用 btrfs 来加速这个过程。参考制作过程:

truncate -s 100G /var/archbuild.img mkfs.btrfs /var/archbuild.img mount -o discard,compress=lzo,autodefrag /var/archbuild.img /var/lib/archbuild echo "/var/archbuild.img /var/lib/archbuild btrfs defaults,discard,compress=lzo,autodefrag 0 0" >> /etc/fstab

(记得要先清空 /var/lib/archbuild 目录以便作为挂载点。)

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

主题: Linux需求工作流
分页:12
转载请注明
本文标题:Arch Linux devtools 简介 在干净的环境里编译软件包
本站链接:http://www.codesec.net/view/561358.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(13)