• FreeBSD的Port

    post by Holmesian / 2009-3-24 13:49 Tuesday
    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
    标签: freebsd port

    说两句:

    久酷
    2009-03-25 12:57
    现在还没用过LINUX,想学学习自己需要的东西就可以了

    如果用不上的话学了也白学

    发表评论: