热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

怎么在Linux上使用pkgsrc

本篇内容介绍了“怎么在Linux上使用pkgsrc”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如

本篇内容介绍了“怎么在Linux上使用pkgsrc”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!



为什么使用 pkgsrc?

除了 MacOS 之外,所有 Unix 操作系统均自带包管理器。你不一定需要 pkgsrc,但这可能是你想尝试的三个重要原因:

  • 打包。如果你对打包感到好奇,但尚未尝试自己创建一个软件包,那么 pkgsrc 是一个相对简单的系统,尤其是如果你已经熟悉 Makefile 和类似 GNU Autotools 之类的构建系统时。

  • 通用。如果你使用多个操作系统或发行版,那么可能会遇到每个系统的包管理器。你可以在不同的系统上使用 pkgsrc,以便你为一个系统打包了程序,就为所有系统打包了。

  • 灵活。在许多打包系统中,如何选择二进制包或源码包并不总是很明显。使用 pkgsrc,区别很明显,两种安装方法都一样容易,并且都可以为你解决依赖关系。

如何安装 pkgsrc

无论你使用的是 BSD、Linux、Illumos、Solaris 还是 MacOS,安装过程都基本相同:

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 使用 CVS 检出 pkgsrc 树

  3. 引导 pkgsrc 系统

  4. 安装软件包

使用 CVS 检出 pkgsrc 树

在 Git 和 Subversion 之前,就有了 CVS。要检出代码你无需了解 CVS 太多,如果你习惯 Git,那么可以将检出checkout称为克隆clone。当你用 CVS 检出 pkgsrc 时,你就下载了详细说明如何构建每个软件包的“配方recipes”。它有很多文件,但是它们都很小,因为你实际上并没有拉取每个包的源码,而只有按需构建时需要的构建基础架构和 Makefile。使用 CVS,你可以轻松地在新版本发布时更新 pkgsrc 检出。

pkgsrc 文档建议将其源码树放在 /usr 目录下,因此你必须使用 sudo(或成为 root)运行此命令:

$ cd /usr$ sudo cvs -q -z2 -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout -r pkgsrc-2019Q3 -P pkgsrc

在我撰写本文时,最新版本是 2019Q3。请检查 pkgsrc.org 主页的新闻部分或 NetBSD文档,以确定最新版本。

引导 pkgsrc

pkgsrc 树复制到你的计算机后,你会看到一个充满构建脚本的 /usr/pkgsrc 目录。在使用之前,你必须引导 pkgsrc,以便你可以轻松地访问构建和安装软件所需的相关命令。

引导 pkgsrc 的方式取决于你所使用操作系统。

对于 NetBSD,你只需使用捆绑的引导器:

# cd pkgsrc/bootstrap# ./bootstrap

在其他系统上,还有更好的方法,包括一些自定义功能,它是由 Joyent 提供的。要了解运行的确切命令,请访问 pkgsrc.joyent.com。比如,在 Linux(Fedora、Debian、Slackware 等)上:

$ curl -O https://pkgsrc.joyent.com/packages/Linux/el7/bootstrap/bootstrap-trunk-x86_64-20170127.tar.gz$ BOOTSTRAP_SHA="eb0d6911489579ca893f67f8a528ecd02137d43a"

尽管路径暗示文件适用于 RHEL 7,但二进制文件往往与所有(最前沿的 Linux 发行版)兼容。如果你发现二进制文件与你的发行版不兼容,你可以选择从源码构建。

验证 SHA1 校验和:

$ echo "${BOOTSTRAP_SHA}" bootstrap-trunk*gz > check-shasumsha1sum -c check-shasum

你还可以验证 PGP 签名:

$ curl -O https://pkgsrc.joyent.com/packages/Linux/el7/bootstrap/bootstrap-trunk-x86_64-20170127.tar.gz.asc$ curl -sS https://pkgsrc.joyent.com/pgp/56AAACAF.asc | gpg --import$ gpg --verify ${BOOTSTRAP_TAR}{.asc,}

当你确认你已有正确的引导套件,将其安装到 /usr/pkg

sudo tar -zxpf ${BOOTSTRAP_TAR} -C /

它为你提供了通常的 pkgsrc 命令。将这些位置添加到你的 PATH 环境变量中:

$ echo "PATH=/usr/pkg/sbin:/usr/pkg/bin:$PATH" >> ~/.bashrc$ echo "MANPATH=/usr/pkg/man:$MANPATH" >> ~/.bashrc

如果你宁愿使用 pkgsrc 而不依赖于 Joyent 的构建,那么只需运行 pkgsrc 源码树的引导脚本即可。在运行特定于系统的脚本之前,请先阅读 bootstrap 目录中相关 README 文件。

怎么在Linux上使用pkgsrc

Bootstrapping pkgsrc on NetBSD

如何使用 pkgsrc 安装软件

使用 pkgsrc 安装预编译的二进制文件(就像使用 DNF 或 Apt 一样)是很容易的。二进制安装的命令是 pgkin,它有自己的专门网站 pkgin.net。对于任何用过 Linux 的人来说,这个过程应该感觉相当熟悉。

要搜索 tmux 包:

$ pkgin search tmux

要安装 tmux 包:

$ sudo pkgin install tmux

pkgin 命令的目的是模仿典型的 Linux 包管理器的行为,因此有选项可以列出可用的包、查找包提供的特定可执行文件,等等。

如何使用 pkgsrc 从源码构建

然而,pkgsrc 真正强大的地方是方便地从源码构建包。你在第一步中检出了所有 20000 多个构建脚本,你可以直接进入 pkgsrc 源码树来访问这些脚本。

例如,要从源码构建 tcsh,首先找到构建脚本:

$ find /usr/pkgsrc -type d -name "tcsh"/usr/pkgsrc/shells/tcsh

接下来,进入源码目录:

$ cd /usr/pgksrc/shells/tcsh

构建脚本目录包含许多文件来帮助在你的系统上构建应用,但值得注意的是,这里面有包含了软件说明的 DESCR 文件,以及触发构建的 Makefile

$ lsCVS    DESCR     MakefilePLIST  distinfo  patches$ cat DESCRTCSH is an extended C-shell with many useful features likefilename completion, history editing, etc.$

准备就绪后,构建并安装:

$ sudo bmake install

pkgsrc 系统使用 bmake 命令(在第一步检出 pkgsrc 后提供),因此请务必使用 bmake(而不是出于习惯使用 make)。

如果要为多个系统构建,那么你可以创建一个包,而不是立即安装:

$ cd /usr/pgksrc/shells/tcsh$ sudo bmake package[...]=> Creating binary package in /usr/pkgsrc/packages/All/tcsh-X.Y.Z.tgz

pkgsrc 创建的包是标准的 tarball,但它可以方便地通过 pkg_add 安装:

$ sudo pkg_add /usr/pkgsrc/packages/All/tcsh-X.Y.Z.tgztcsh-X.Y.Z: adding /usr/pkg/bin/tcsh to /etc/shells$ tcshlocalhost%

pkgsrc 的 pkgtools 集合提供 pkg_addpkg_infopkg_adminpkg_createpkg_delete 命令,来帮助管理你在系统上构建和维护软件包。

pkgsrc,易于管理

pkgsrc 系统提供了直接,容易上手的软件包管理方法。如果你正在寻找一个不妨碍你并且可以定制的包管理器,请在任何运行 Unix 或类 Unix 的系统上试试 pkgsrc。

“怎么在Linux上使用pkgsrc”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程笔记网站,小编将为大家输出更多高质量的实用文章!


推荐阅读
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • 求助高手:下载的压缩包中包含CMake文件,如何在Windows环境下使用已安装的CMake GUI进行运行?
    从GitHub仓库 `https://github.com/vonmax007/RobotSimulation` 下载的代码包含多种算法,其中算法1的文件目录中包含了CMake文件。为了在Windows环境下使用已安装的CMake GUI运行这些文件,需要先确保CMake已正确安装,并按照以下步骤操作:打开CMake GUI,设置源代码路径和构建路径,点击“Configure”配置项目,然后点击“Generate”生成构建文件。最后,在生成的构建目录中使用命令行或IDE进行编译和运行。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 如何在Ubuntu系统中直接使用Snap安装软件
    Canonical与Opera Software近日宣布,基于Chromium的Opera浏览器现已作为Snap包提供给Ubuntu用户,显著提升了在Linux操作系统上的安装便捷性和兼容性。通过Snap,用户可以在Ubuntu系统中轻松安装和更新Opera浏览器,享受更流畅的浏览体验。此外,Snap的容器化特性还确保了应用的安全性和稳定性,为用户提供更加可靠的软件环境。 ... [详细]
  • 全面解析:Hadoop技术栈中的Linux操作系统概览
    全面解析:Hadoop技术栈中的Linux操作系统概览 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • 本文探讨了将PEBuilder转换为DIBooter.sh的方法,重点介绍了如何将DI工具集成到启动层,实现离线镜像引导安装。通过使用DD命令替代传统的grub-install工具,实现了GRUB的离线安装。此外,还详细解析了bootice工具的工作原理及其在该过程中的应用,确保系统在无网络环境下也能顺利引导和安装。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • MacOS双系统安装指南:十分钟速成,轻松省下数百元! ... [详细]
  • 本文简要介绍了 MacOS 系统的分区与引导机制。通过详细解析系统分区结构和引导加载过程,帮助用户更好地理解 MacOS 的启动流程。文章还涵盖了不同版本 MacOS 的分区特点,以及如何在遇到引导问题时进行故障排除。对于希望深入了解 MacOS 内部运作机制的用户来说,本文提供了丰富的技术细节和实用建议。 ... [详细]
  • NanoPi2 使用体验深入解析(续篇)
    随着Raspberry Pi的问世,开源硬件领域迎来了前所未有的发展,激发了全球范围内的创新热潮。在中国,这一趋势同样催生了一系列类似的开发板,例如NanoPi 2。本文作为前篇的延续,将深入探讨NanoPi 2的实际使用体验,从性能、兼容性到应用场景,进行全面分析。 ... [详细]
  • 压缩工具全面对比:Bandizip、7-Zip与WinRAR,哪一款最符合你的需求?
    压缩工具全面对比:Bandizip、7-Zip与WinRAR,哪一款最符合你的需求? ... [详细]
  • 在服务器管理和大规模操作中,常需将系统状态或执行结果通过电子邮件通知相关人员。本文详细介绍了如何利用Linux自带的命令行工具高效地通过SMTP协议发送邮件,提供了一种快速便捷的解决方案。 ... [详细]
  • 如何在Linux中配置环境变量:命令与脚本详解
    请关注本头条号,每天坚持更新原创干货技术文章。当您在Linux命令行上键入命令时,您实际是在告诉shell运行指定名称的可执行文件。在Linux中,这些可执行程序通常位于系统上的几 ... [详细]
author-avatar
萍水相逢--莹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有