用Poudriere建立自己的Pkg存储库

从9.2版开始,FreeBSD引入了一个新工具来替换旧的pkg _ *-commands- pkg也称为pkgng。它与Debian apt或Fedora 的非常相似,yum但具有一些非常酷的功能。其中之一是可以轻松使用您自己的私有软件包存储库。

你为什么想这么做?官方的pkg存储库是基于FreeBSD的ports树构建的,只有很少的选项集。例如,PHP的官方软件包缺少对MySQL的支持。另一个原因可能是您想要拥有两个存储库,一个用于桌面的X11已启用-一个用于服务器的X11禁用了。有很多选择和可能性,本教程将向您展示如何使用Poudriere(一种用于批量构建软件包的工具)构建自己的存储库。

我假设您已经安装了FreeBSD 10 x64的新VPS。首先,您需要系统上的端口树:

cd /usr
portsnap fetch extract

然后,您需要从源代码安装Poudriere(默认选项很好!):

cd /usr/ports/ports-mgmt/poudriere
make install clean

接下来,创建一个基本配置文件:

cp /usr/local/etc/poudriere.conf.sample /usr/local/etc/poudriere.conf

...并根据您的需要进行编辑。以下是一个好的开始:

FREEBSD_HOST=http://ftp.freebsd.org
RESOLV_CONF=/etc/resolv.conf
BASEFS=/usr/local/poudriere
POUDRIERE_DATA=$/data
USE_PORTLINT=no
USE_TMPFS=yes
DISTFILES_CACHE=/usr/ports/distfiles
CHECK_CHANGED_DEPS=yes
# Edit this according to your VPS' CPU.
PARALLEL_JOBS=1
NOLINUX=yes

Poudriere不是使用系统的常规porttree,而是使用其自己的副本。您必须使用以下命令获取它:

poudriere ports -c

现在,为构建器在其中运行创建一个监狱:

poudriere jail -c -j testjail -v 10.0-RELEASE -a amd64

在开始构建软件包之前,您实际上必须告诉Poudriere 它应该构建什么。打开您喜欢的文本编辑器并添加一些软件包:

www/firefox
im/pidgin
sysutils/tmux
editors/vim

...,然后将文件保存在下/usr/local/etc/buildlist。如果不想使用默认选项,则可以为该文件中的每个软件包配置选项。通过发出以下命令来完成此操作:

poudriere options -cf /usr/local/etc/buildlist

否则,您可以开始构建:

poudriere bulk -f /usr/local/etc/buildlist -j testjail

此操作所花费的时间将根据VPS的CPU速度而变化。完成该过程后,可以在中找到您的新软件包,并按build-jail对其进行排序/usr/local/poudriere/data/packages/

现在,您需要一个Web服务器才能将这些软件包实际提供给其他计算机。我选择Nginx是因为它高效且轻巧。通过端口安装(默认选项很好!):

cd /usr/ports/www/nginx
make install clean

安装过程完成后,您需要配置Nginx来提供程序包目录。为此,请/usr/local/etc/nginx/nginx.conf使用您喜欢的文本编辑器进行编辑:

server {
    listen       80;
    server_name  localhost;
    root /usr/local/poudriere/data/packages/testjail-default;
    location / {
            autoindex on;
    }
}

最后,确保Web服务器在启动时启动:

echo "nginx_enable=YES" >> /etc/rc.conf

...并启动服务器:

/usr/local/etc/rc.d/nginx start

Poudriere的可能性很大。您可以通过阅读手册页条目来了解有关Poudriere的更多信息。如果您打算在生产环境中使用这样的设置,则最好阅读一下软件包签名,并考虑使用TLS保护与Web服务器的连接,这是您的最大利益。但是现在,您已经准备好摇滚!

要在客户端上激活存储库,请在客户端计算机上运行以下命令:

mkdir -p /usr/local/etc/repos
vi /usr/local/etc/repos/myrepo.conf

填充myrepo.conf以下内容。您可以对此文件使用任何名称,只要它具有.conf后缀即可。

poudriere: {
  url: "http://yoururl"
  mirror_type: "http",
  enabled: yes
}

接下来,使用以下命令更新软件包数据库:

pkg update

您现在可以从新存储库中安装软件包了!



Leave a Comment

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。