当前位置: 首页 > 科技观察

如何在Linux上使用pkgsrc

时间:2023-03-19 15:50:53 科技观察

NetBSD的包管理器用途广泛、灵活且简单。下面是如何使用它。NetBSD以能够在几乎任何平台上运行而闻名,但您知道它的第二大包管理器pkgsrc吗?与NetBSD一样,pkgsrc基本上可以在任何系统上运行,或者至少可以在任何Unix和类Unix系统上运行。您可以在BSD、Linux、Illumos、Solaris和Mac上安装pkgsrc。它总共支持20多个操作系统。为什么要使用pkgsrc?所有Unix操作系统,除了MacOS,都有自己的包管理器。您不一定需要pkgsrc,但以下是您可能想要尝试的三个重要原因:打包。如果您对打包感到好奇,但还没有尝试过自己创建一个包,那么pkgsrc是一个相对简单的系统,特别是如果您已经熟悉Makefile和构建系统(如GNUAutotools)。通用的。如果您使用多个操作系统或发行版,您可能会遇到每个系统的包管理器。您可以在不同的系统上使用pkgsrc,这样如果您为一个系统打包一个程序,它就会为所有系统打包。灵活的。在许多打包系统中,如何选择二进制包或源包并不总是显而易见的。使用pkgsrc,区别很明显,两种安装方法都同样简单,并且都为您解决了依赖关系。如何安装pkgsrc无论您使用的是BSD、Linux、Illumos、Solaris还是MacOS,安装过程基本相同:使用CVS检出pkgsrc树引导pkgsrc系统安装包使用CVS检出pkgsrc树在Git和Subversion之前,有CVS。您不需要对CVS了解太多就可以检查代码。如果你习惯了Git,你可以调用checkout克隆。当您使用CVS检查pkgsrc时,您下载了详细说明每个包是如何构建的“食谱”。它有很多文件,但它们很小,因为您实际上并没有为每个包提取源代码,只有构建基础设施和按需构建所需的Makefile。使用CVS,您可以在发布新版本时轻松更新pkgsrc签出。pkgsrc文档建议将其源代码树放在/usr目录中,因此您必须使用sudo(或成为root)来运行此命令:$cd/usr$sudocvs-q-z2-danoncvs@anoncvs.NetBSD.org:/cvsrootcheckout-rpkgsrc-2019Q3-Ppkgsrc写这篇文章时最新版本是2019Q3。请查看pkgsrc.org主页的新闻部分或NetBSD文档以确定最新版本。引导pkgsrc将pkgsrc树复制到您的计算机后,您将看到一个充满构建脚本的/usr/pkgsrc目录。在使用它之前,您必须引导pkgsrc,以便您可以轻松访问构建和安装软件所需的相关命令。启动pkgsrc的方式取决于您的操作系统。对于NetBSD,您只需使用捆绑的引导程序:#cdpkgsrc/bootstrap#./bootstrap在其他系统上,Joyent提供了更好的方法,包括一些定制。要查看要运行的确切命令,请访问pkgsrc.joyent.com。例如,在Linux(Fedora、Debian、Slackware等)上:$curl-Ohttps://pkgsrc.joyent.com/packages/Linux/el7/bootstrap/bootstrap-trunk-x86_64-20170127.tar.gz$BOOTSTRAP_SHA="eb0d6911489579ca893f67f8a528ecd02137d43a"虽然路径暗示该文件适用于RHEL7,但二进制文件往往与所有(最前沿的Linux发行版)兼容。如果您发现二进制文件与您的发行版不兼容,您可以选择从源代码构建。验证SHA1校验和:$echo"${BOOTSTRAP_SHA}"bootstrap-trunk*gz>check-shasumsha1sum-ccheck-shasum您还可以验证PGP签名:$curl-Ohttps://pkgsrc.joyent.com/packages/Linux/el7/bootstrap/bootstrap-trunk-x86_64-20170127.tar.gz.asc$curl-sShttps://pkgsrc.joyent.com/pgp/56AAACAF.asc|gpg--import$gpg--verify${BOOTSTRAP_TAR}{.asc,}当你确定你有正确的启动包后,将它安装到/usr/pkg:sudotar-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文件。在NetBSD上引导pkgsrc如何使用pkgsrc安装软件使用pkgsrc安装预编译的二进制文件(就像使用DNF或Apt)很容易。二进制安装的命令是pgkin,它有自己专门的网站pkgin.net。任何曾经使用过Linux的人都应该对这个过程感到相当熟悉。搜索tmux包:$pkginsearchtmux安装tmux包:$sudopkgininstalltmuxpkgin命令旨在模仿典型Linux包管理器的行为,因此有列出可用包、查找特定可执行文件的选项由包文件等提供。如何使用pkgsrc从源构建但是,pkgsrc的真正强大之处在于从源构建包的便利性。您在第一步中签出了所有20,000多个构建脚本,您可以通过进入pkgsrc源代码树直接访问它们。例如,要从源代码构建tcsh,首先找到构建脚本:$find/usr/pkgsrc-typed-name"tcsh"/usr/pkgsrc/shells/tcsh接下来,进入源目录:$cd/usr/pgksrc/shells/tcshbuildscripts目录包含许多文件以帮助在您的系统上构建应用程序,但值得注意的是,有包含软件描述的DESCR文件和触发构建的Makefile。$lsCVSDESCRMakefilePLISTdistinfopatches$catDESCRTCSH是一个扩展的C-shell,具有许多有用的功能,如文件名完成、历史记录编辑等。不是出于习惯)。如果为多个系统构建,那么你可以创建一个包而不是立即安装它:$cd/usr/pgksrc/shells/tcsh$sudobmakepackage[...]=>Creatingbinarypackagein/usr/pkgsrc/Thepackage由packages/All/tcsh-X.Y.Z.tgzpkgsrc创建的是一个标准的tarball,但它可以通过pkg_add方便地安装:/tcsh到/etc/shells$tcshlocalhost%pkgsrcpkgtools集合提供pkg_add、pkg_info、pkg_admin、pkg_create和pkg_delete命令来帮助管理您在系统上构建和维护的包。pkgsrc,易于管理pkgsrc系统提供了一种直接、易于使用的包管理方法。如果您正在寻找不会妨碍您的可定制包管理器,请在任何运行Unix或类Unix的系统上尝试pkgsrc。