FreeBSD的Port

Holmesian ,Mar 24 13:49 , 学习路上 » 转战FreeBSD , 评论(1) , 引用(0) , 阅读(717) , 本站原创 | |
FreeBSD系统提供的源代码包括三个部分,内核源代码、应用程序源代码和软件Ports的源代码。

每种要被移植到FreeBSD上软件被称为一个Port,由某个FreeBSD的开发者维护。这个Port的维护者首先将软件移植到FreeBSD上,并将他所完成的这些移植工作按照Ports Collection 的要求进行设置,编写相关的脚本,使下载软件、配置、编译、安装的全过程能够自动完成,不需人工干预。每个Port中并没有保存软件包的源代码或者二进制代码,而只是提供了搜索它的源代码或者二进制软件包的方法。

由于Ports Collection是随着应用程序的发展而常常更新的,当某个软件升级造成软件的源代码文件的名字或位置改变,因此部分Port中有关下载软件源代码的位置的设置,就很可能不再适用,从而造成某些Ports不能正常编译安装。


引用
必须使用 root 用户登录后安装 ports。


引用

在安装任何 port 之前, 应该首先确保已经更新到了最新的 Ports Collection,并检查 http://vuxml.freebsd.org/ 中是否有与那个 port 有关的安全问题。

在安装应用程序之前, 可以使用 portaudit 来自动地检查是否存在已知的安全问题。 这个工具同样可以在 Ports Collection (ports-mgmt/portaudit) 中找到。 在安装新的 port 之前,可以考虑先运行一下 portaudit -F 来抓取最新的漏洞数据库。在每天的周期性系统安全检察时, 数据库会被自动更新, 并且会在这之后实施安全审计。




引用
如何安装一个新的 port?

如果系统上未安装此软体,则可以选择安装一个新的 port。
以 editors/joe 为例的话,则:

代码:
cd /usr/ports/editors/joe/
make install
如此会在系统上安装一个新的 joe 软体。如果需要在安装完成後,一并清除编辑
时期所留下来的暂存目录,则可叁考 FAQ 8 的方法,一起使用,如:

代码:
cd /usr/ports/editors/joe/
#make clean


如果想要一次清掉所有 ports 产生的暂存资料,则只要回到 ports 的根目录执
行即可:

代码:
cd /usr/ports/
#make clean




引用


如何移除已安装的 ports?

以 editors/joe 为例的话,则:
代码:
cd /usr/ports/editors/joe/
make deinstall


或是使用 pkg_delete

代码:
cd /var/db/pkg/
pkg_delete joe-{version}


有时候套件之间的相依性会导致无法直接移除,如果要强制移除的话,则:

代码:
cd /var/db/pkg/
pkg_delete -f joe-{version}


但很有可能会导致其它的套件执行起来出现问题。




引用

如何一并移除所相依的 ports?

以 sysutils/portupgrade 为例的话,则:

代码:
cd /usr/ports/sysutils/portupgrade/
make deinstall-depends


执行此步骤前,请注意是否会移除应该保护的套件。建议先叁考 FAQ 10 的方法
来检查。

或是使用 pkg_delete

代码:
cd /var/db/pkg/
pkg_delete -r portupgrade-{version}




引用
如何升级已安装的 ports?

如果已经安装好套件,事後欲升级的话,必须先移除旧版本的 port,移除的方法
请叁考FAQ 11、FAQ 12及FAQ 13;之後再安装 port,安装的方法请叁考FAQ 4或
FAQ 5。

以 editors/joe 为例,且以 FAQ 11 及 FAQ 4 的方法,则:

代码:
cd /var/db/pkg/
pkg_delete joe-{version}
cd /usr/ports/editors/joe/
make install


或是
代码:
cd /usr/ports/editors/joe/
make clean
make reinstall



引用

如何安装 packages?

目前 FreeBSD 的 packages 是由 .tgz 所打包。如果想安装一个 packages ,可
使用 pkg_add,如安装一个 joe 的 tgz:

代码:
pkg_add joe-{version}.tgz



如何强制安装 packages?

由於有些 packages 会有与其他 packages 相依性的关系,所以必须先行安装那
些 packages 才能正常安装。 如果须要强制安装 packages ,可以不须安装那些
有相依性 packages ,但要注意的是强制安装的结果可能会导致执行或运作的不
正常。强制安装 packages 的指令如下,如强制安装一个 joe 的 tgz:


代码:
pkg_add -f joe-{version}.tgz



更多更详细的东西可以参考一下这篇文章 http://www.freebsdchina.org/forum/viewtopic.php?t=14435
  • 更多“FreeBSD的Port”相关内容
  • 更多“FreeBSD的Port”相关内容
  • 更多“FreeBSD的Port”相关内容
  • 更多“FreeBSD的Port”相关内容
  • 更多“FreeBSD的Port”相关内容
  • 更多“FreeBSD的Port”相关内容

  • Tags: ,
    久酷 Homepage
    2009/03/25 12:57
    现在还没用过LINUX,想学
    Holmesian 回复于 2009/03/25 18:53
    学习自己需要的东西就可以了

    如果用不上的话学了也白学
    分页: 1/1 第一页 1 最后页
    发表评论

    昵称

    网址

    电邮

    打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]