![OpenBSD 中的 /usr/ports](https://linux22.com/image/186813/OpenBSD%20%E4%B8%AD%E7%9A%84%20%2Fusr%2Fports%20.png)
来自https://www.openbsd.org/faq/ports/ports.html。 “ports 树是为高级用户设计的”。OpenBSD 世界中谁是“高级用户”?制作文件向导、端口维护者、核心开发者、Theo?
答案1
完整段落如下:
端口树适用于高级用户。鼓励每个人使用预编译的二进制包。如果您对端口树有疑问,则假定您已阅读手册页和此常见问题解答,并且能够使用它。
“高级用户”准备或更新端口的人,或者使用端口基础设施本身的人,或者出于任何原因需要从源构建包的管理员(由于许可限制,某些包可能无法分发)。其他管理员最好使用pkg_add
添加预构建的包,如上面的文本所述。
还值得注意的是,上面引用的文本只是题为“OpenBSD 波特手册。标题指出了该文件的主要受众。
实际使用包的操作在标题完全不同的部分中进行了描述包管理。这再次表明,《波特手册》主要面向维护港口的人员,或其他有兴趣探索或了解港口基础设施的人。
答案2
库萨拉南达的回答已经足够了,但我想补充一些内容。将软件移植到给定的操作系统通常需要修补其源代码,以便它与操作系统正确集成 - 文件的安装位置、头文件和库的位置、操作系统的一些怪癖的处理等 - 这意味着移植者应该对操作系统有很好的了解,并且至少对它所移植的内容有一定的了解。从这个意义上说,ports 树作为移植和打包代码(补丁、makefile 等)的存储库,旨在由更有经验的 OpenBSD 用户和开发人员使用和维护。
然而,这并不意味着它对其他人没有用处。从这个意义上说,“高级用户”应该被理解为“足够舒适/习惯于编译代码和使用 Makefile 的任何人”,并且由于某种原因需要与当前包提供的不同的东西。例如,您可能需要调整一些编译选项(例如,W^X
由于特定的 R 库,我需要将 R 编译为允许,因此我调整端口的 Makefile 并重建包),或者想要帮助端口维护者通过测试尚未提交到 CVS 存储库的补丁来实现。或者您甚至可能想尝试自己移植一些东西。
除非您需要更改已打包的内容或打包新的内容,否则使用预构建的包会更简单、更快捷。否则,如果您了解 Makefiles,请随时提取 ports 树的副本并四处查看。