用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

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

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 機器變磚。閱讀這篇文章以了解更多信息