FreeBSD常用命令和packages使用方法讲解
<a target="_blank" href="#" class="UBBWordLink">安装</a> packages<br /><br />
目前 FreeBSD 的 packages 是由 .tgz 所打包。如果想<a target="_blank" href="#" class="UBBWordLink">安装</a>一个 packages ,可使用 pkg_add,如<a target="_blank" href="#" class="UBBWordLink">安装</a>一个 joe 的 tgz: <br />
<br />
pkg_add joe-{version}.tgz<br />
<br />
强制<a target="_blank" href="#" class="UBBWordLink">安装</a> packages <br />
由於有些 packages 会有与其他 packages 相依性的关系,所以必须先行<a target="_blank" href="#" class="UBBWordLink">安装</a>那些 packages 才能正常<a target="_blank" href="#" class="UBBWordLink">安装</a>。 如果须要强制<a target="_blank" href="#" class="UBBWordLink">安装</a> packages ,可以不须<a target="_blank" href="#" class="UBBWordLink">安装</a>那些有相依性 packages ,但要注意的是强制<a target="_blank" href="#" class="UBBWordLink">安装</a>的结果可能会导致执行或运作的不正常。强制<a target="_blank" href="#" class="UBBWordLink">安装</a> packages 的指令如下,如强制<a target="_blank" href="#" class="UBBWordLink">安装</a>一个 joe 的 tgz: <br />
pkg_add -f joe-{version}.tgz <br />
<br />
查询 packages 与其他 packages 之间的相依性<br />
<br />
由於有些 packages 会有与其他 packages 相依性的关系,所以必须先行<a target="_blank" href="#" class="UBBWordLink">安装</a>那些 packages 才能正常<a target="_blank" href="#" class="UBBWordLink">安装</a>。 查询 packages 与其他 packages 之间的相依性的指令如下,如查询与 portupgrade 相依的其他 packages: <br />
<br />
pkg_info -r portupgrade-{version}.tgz <br />
<br />
远端<a target="_blank" href="#" class="UBBWordLink">安装</a> packages <br />
<br />
有两种设定方式,首先是 PACKAGEROOT,如: <br />
<br />
setenv PACKAGEROOT <a href="ftp://ftp.cn.freebsd.org/" target="_blank"><font color="#0000ff">ftp://ftp.cn.freebsd.org/</font></a> #设定 PACKAGEROOT 为 ftp.cn.freebsd.org 站台另一种方式是设定 PACKAGESITE,好处是若该站台的 packages 仓储并不是符合 <br />
官方的设定或你想自己指定一个路径。以 ftp.cn.freebsd.org i386 的 current pakcages 为例:<br />
<br />
setenv PACKAGESITE <a href="ftp://ftp.cn.freebsd.org/pub/FreeBSD/ports/i386/packages-current/Latest/" target="_blank"><font color="#0000ff">ftp://ftp.cn.freebsd.org/pub/FreeBSD/ports/i386/packages-current/Latest/</font></a>
<br />
两种方式选择其中一种皆可,接下来的步骤都一样。 往後要<a target="_blank" href="#" class="UBBWordLink">安装</a> packages 的时候,如 portupgrade 的话,则: <br />
<br />
pkg_add -r portupgrade <br />
则<a target="_blank" href="#" class="UBBWordLink">系统</a>会自动於 ftp.cn.freebsd.org 下载所有与 portupgrade 相依的 packages 并<a target="_blank" href="#" class="UBBWordLink">安装</a>。<br />
<br />
<br />
查询目前<a target="_blank" href="#" class="UBBWordLink">系统</a><a target="_blank" href="#" class="UBBWordLink">安装</a>了哪些套件<br />
<br />
查询目前<a target="_blank" href="#" class="UBBWordLink">系统</a>已<a target="_blank" href="#" class="UBBWordLink">安装</a>的全部套件: <br />
pkg_info <br />
<br />
查询目前<a target="_blank" href="#" class="UBBWordLink">系统</a>有没有<a target="_blank" href="#" class="UBBWordLink">安装</a>这个关键字的套件<br />
pkg_info | grep <br />
<br />
查询某个档案是属於哪些套件<br />
<br />
如果想查询 /usr/local/bin/joe 是属於哪个套件的话,则: <br />
<br />
pkg_info -W /usr/local/bin/joe <br />
如果没有回传任何资讯的话,代表着这个档案是由 FreeBSD 内建的。 <br />
<br />
查询某个套件<a target="_blank" href="#" class="UBBWordLink">安装</a>了哪些档案<br />
<br />
如果想查询目前<a target="_blank" href="#" class="UBBWordLink">系统</a>所<a target="_blank" href="#" class="UBBWordLink">安装</a>的 joe 包含了哪些档案,则: <br />
<br />
pkg_info -L /var/db/pkg/joe-{version}<br />
<br />
<br />
列出所有可以升级的 ports<br />
<br />
ports collection 的更新速度很快,在每次更新 ports collections 後,往往会出现比目前现在<a target="_blank" href="#" class="UBBWordLink">安装</a>的套件还新的版本,可 以令<a target="_blank" href="#" class="UBBWordLink">系统</a>自行整理并提供可升级套件的列表: <br />
<br />
pkg_version –c<br />
<br />
移除已<a target="_blank" href="#" class="UBBWordLink">安装</a>的 ports<br />
以 editors/joe 为例的话,则: <br />
cd /usr/ports/editors/joe/ <br />
make deinstall <br />
或是使用 pkg_delete <br />
cd /var/db/pkg/ <br />
pkg_delete joe-{version} <br />
有时候套件之间的相依性会导致无法直接移除,如果要强制移除的话,则: <br />
cd /var/db/pkg/ <br />
pkg_delete -f joe-{version}但很有可能会导致其它的套件执行起来出现问题。<br />
<br />
<br />
<br />
一并移除所相依的 ports<br />
以 sysutils/portupgrade 为例的话,则: <br />
cd /usr/ports/sysutils/portupgrade/ <br />
make deinstall-depends <br />
执行此步骤前,请注意是否会移除应该保护的套件。<br />
或是使用 pkg_delete <br />
cd /var/db/pkg/ <br />
pkg_delete -r portupgrade-{version} <br />
<br />
对一个已经<a target="_blank" href="#" class="UBBWordLink">安装</a>的 port 打包 <br />
<br />
如果<a target="_blank" href="#" class="UBBWordLink">安装</a>好一个套软,事前并未打包,事後想打包的话,则: <br />
以 editors/joe 为例的话 <br />
<br />
cd /var/db/pkg/ <br />
pkg_create -b joe-{版本号}<br />
会将已<a target="_blank" href="#" class="UBBWordLink">安装</a>的 port 打包起来,放在 /var/db/pkg/ 目录下。 <br />
<br />
`make deinstall' 与 `pkg_delete' 有什麽不同<br />
<br />
简单来说,`make deinstall' 会移除该 port,并且不会叁照其相依/相关的 ports。 `pkg_delete' 在移除该 port 前,会叁照其相依/相关的 ports,并且 `pkg_delete' 有支援 wild card,如要移除所有 p 开头的 ports,则:<br />
<br />
cd /var/db/pkg/ <br />
pkg_delete p*<br />
要注意的是,如果使用 `make deinstall',则最好确定<a target="_blank" href="#" class="UBBWordLink">系统</a>目前所<a target="_blank" href="#" class="UBBWordLink">安装</a>的版本,与 ports collection 中显示的版本符合,否则有可能会出现非预期性错误;而 `pkg_delete' 是因为直接删除<a target="_blank" href="#" class="UBBWordLink">系统</a>中所<a target="_blank" href="#" class="UBBWordLink">安装</a>的版本,所以没有此问题。 <br />
<br />
因此,换句话说,当<a target="_blank" href="#" class="UBBWordLink">系统</a>所<a target="_blank" href="#" class="UBBWordLink">安装</a>的版本符合 ports collections 中的版本,则可以使用 `make deinstall' 或 `pkg_delete',否则的话最好用 `pkg_delete'。 <br />
<br />
<br />
对一个已经<a target="_blank" href="#" class="UBBWordLink">安装</a>的 port 打包 <br />
<br />
如果<a target="_blank" href="#" class="UBBWordLink">安装</a>好一个套软,事前并未打包,事後想打包的话,则: <br />
以 editors/joe 为例的话 <br />
<br />
cd /var/db/pkg/ <br />
pkg_create -b joe-{版本号}<br />
会将已<a target="_blank" href="#" class="UBBWordLink">安装</a>的 port 打包起来,放在 /var/db/pkg/ 目录下。
頁:
[1]