![将缺少的发行版添加到正在运行的 FreeBSD 的正确方法是什么?](https://linux22.com/image/47319/%E5%B0%86%E7%BC%BA%E5%B0%91%E7%9A%84%E5%8F%91%E8%A1%8C%E7%89%88%E6%B7%BB%E5%8A%A0%E5%88%B0%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%20FreeBSD%20%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我的 FreeBSD 10.0 机器是由托管公司安装的,他们遗漏了几个发行版。具体来说:src/src world/doc world/games world/lib32
如何最好地将这些重新添加到组合中,以便类似的工具freebsd-update
能够识别它们的存在?
我最好的猜测:
export BSDINSTALL_DISTDIR=/usr/freebsd-dist
bsdinstall distfetch
export DISTRIBUTIONS="src doc games lib32"
export BSDINSTALL_CHROOT=/
bsdinstall distextract
那是对的吗?
答案1
可能实际上不必使用bsdinstall
,但它提供了一定程度的确认。所有这些实际上都在手册页中:bsd安装(8)。我只是读得不够仔细。作为记录:
下载需要 2 个环境变量:DISTRIBUTIONS
和BSDINSTALL_DISTSITE
(BSDINSTALL_DISTDIR
可选,默认为/usr/freebsd-dist
)。中列出的名称DISTRIBUTIONS
必须与实际文件名匹配(例如,doc.txz
而不是doc
)。BSDINSTALL_DISTSITE
是下载网址。 URL 具有指定平台和版本(amd64
及以下)的副作用10.0-RELEASE
。
提取还需要设置 1 个变量:BSDINSTALL_CHROOT
。在这种情况下,/
是正确的(典型用例,当启动到 CD 并安装到新磁盘时,更有可能是/mnt
)。
export DISTRIBUTIONS="src.txz doc.txz games.txz lib32.txz"
export BSDINSTALL_DISTDIR=/var/tmp/freebsd-dist
export BSDINSTALL_DISTSITE="http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.0-RELEASE"
bsdinstall distfetch
export BSDINSTALL_CHROOT=/
bsdinstall distextract