FreeBSD软件安装卸载工具--Ports和Packages详解doc
- 格式:doc
- 大小:159.50 KB
- 文档页数:19
摘抄并简体化此文,与初学同仁共享。
==================================FNP:FAQ - Ports and Packages v 1.52004.08.20 Table of Contents1、如何只抓取tarball?2、如何仅做到解开tarball的步骤?3、如何仅做到解开tarball 并补上官方提供的patch?4、如何安装一个新的port?5、如何安装一个新的port,并将打包(package)起来?6、如何打包一个port,并将其所有相依的ports 也打包起来?7、如何对一个已经安装的port 打包?8、如何清理ports 编辑期间所产生的暂存资料?9、如何清理ports 编辑期间所产生的暂存资料,以及其相对应的tarball?10、如何在安装ports 前查询所需依赖/相关的套件?11、如何移除已安装的ports?12、如何一并移除所相依的ports?13、如何重新安装已安装过的ports?14、如何以关键字搜寻ports?15、如何升级已安装的ports?16、如何查询目前系统安装了哪些套件?17、如何查询目前系统有没有安装这个关键字的套件?18、如何查询某个档案是属於哪些套件?19、如何查询某个套件安装了哪些档案?20、如何安装旧版的ports?21、如何更新ports Mk?22、如何解决安装ports 时出现sed -i 的错误?23、如何列出所有可以升级的ports?24、如何得知ports system 对某个ports 所提供的编译叁数?25、如何手动加入编译ports 的叁数?26、如何指定ports 的安装路径?27、安装ports 出现FORCE_PKG_REGISTER 的错误讯息28、安装ports 出现Shared object libintl.so.X not found 的错误讯息29、如何安装packages?30、如何强制安装packages?31、如何查询packages 与其他packages 之间的相依性?32、如何远端安装packages?33、如何更新INDEX 对照表?34、如何更新INDEX HTML?35、如何针对某些ports 不做CVSup?36、如何使用CVSup 同步ports collections?37、安装ports 出现port is outdated 的错误讯息39、安装ports 出现OpenSSL vulnerabilities 的错误讯息40、如何在FreeBSD 上模拟Linux 的环境?41、如何在FreeBSD 上安装Linux rpm?42、安装ports 时,原本应该出现的清单选项不见了43、如何检查是否有安装重覆的ports/packages?`make deinstall' 与`pkg_delete' 有什麽不同?44、安装ports 出现local modification time does not match remote 的错误讯息1、如何只抓取tarball?如果只希望抓取tarball 下来的话,仅需下make fetch 即可。
如果是要抓取单一的port,以editors/joe 为例的话,则:代码:预设会将joe 的tarball 下载至/usr/ports/distfiles/ 目录下。
如果是希望抓取安装此ports 所有须要的其他ports 的tarball,以systuils/portupgrade 为例的话,则:代码:预设会将此ports 的tarball 与所有须要的其他ports 的tarball,下载至/usr/ports/distfiles/ 目录下。
如果是希望抓取全部所有ports 的tarball ,则:代码:则会所将全部所有ports 的tarball 下载至/usr/ports/distfiles/ 目录下。
如果是希望抓取全部ftp 下所有ports 的tarball ,则:代码:则会所将全部ftp 下所有ports 的tarball 下载至/usr/ports/distfiles/ 目录下。
2、如何仅做到解开tarball的步骤?有时候习惯自己patch/修正原始码的时候,很常用到这个功能。
以editors/joe 为例的话,则:代码:会将tarball解开至/usr/ports/editors/joe/work/ 目录下。
3、如何仅做到解开tarball 并补上官方提供的patch?此方法与 2 有一些类似,不同於是先补上官方提供的patch ,再行patch 自己的修正。
以editors/joe 为例的话,则:代码:会将tarball解开至/usr/ports/editors/joe/work/ 目录下,并已经patch 上官方提供的patch。
4、如何安装一个新的port?如果系统上未安装此软体,则可以选择安装一个新的port。
以editors/joe 为例的话,则:代码:如此会在系统上安装一个新的joe 软体。
如果需要在安装完成後,一并清除编辑时期所留下来的暂存目录,则可叁考FAQ 8 的方法,一起使用,如:代码:如果想要一次清掉所有ports 产生的暂存资料,则只要回到ports 的根目录执行即可:代码:5、如何安装一个新的port,并将打包(package)起来?将安装完成的软体打包起来,有许多便利性:包括在丛集系统中,可供其它机器使用,或将未来此软体出问题可重新利用此package 重新快速安装。
以editors/joe 为例的话,则:代码:如此会在系统上安装一个新的joe 软体,并将此软体打包(package)起来。
package 预设会在/usr/ports/editors/joe/ 目录下,如果希望集中管理的话,建议做如下的步骤:代码:以後打包的packages 都会存放在此目录下,并且系统会自动做分类,以方便管理。
如果需要在安装完成後,一并清除编辑时期所留下来的暂存目录,则可叁考FAQ 8 的方法,一起使用,如:代码:6、如何打包一个port,并将其所有相依的ports 也打包起来?因为FAQ 5 只有对最终的port 才进行打包,中间依赖的ports 并没有一起打包,这会出现一个常遇到的问题,就是如果编辑一个port 需要依赖其它的ports,那麽必须将其它ports 也一起打包,否则安装packages 会有相依赖其它ports 的packages 的问题。
以sysutils/portupgrade 为例的话,则:代码:如此会在对所有portupgrade 所相依赖的ports 一并打包,也包括自己本身。
7、如何对一个已经安装的port 打包?如果安装好一个套软,事前并未打包,事後想打包的话,则:以editors/joe 为例的话代码:会将已安装的port 打包起来,放在/var/db/pkg/ 目录下。
8、如何清理ports 编辑期间所产生的暂存资料?在编辑port 的时候,会有编辑期间所需要的工作目录(work),因此通常安装好一个套件後,会清除此暂存目录,以节省系统磁碟空间。
以editors/joe 为例的话,则:代码:如果是希望清除所有ports 的暂存目录,则:代码:如果是希望清除全部ftp 下所有的暂存目录,则:代码:9、如何清理ports 编辑期间所产生的暂存资料,以及其相对应的tarball?在FAQ 8 中,仅只是清除编辑期间所需要的工作目录(work),并没有将编译ports 时一并下载的tarball 删除(相对应之tarball 预设会存放在/usr/ports/distfiles/),如果欲把tarball 一并删除,以editors/joe 为例的话,则:代码:make distclean 的步骤包含了make clean 的功能,也就是说除了会删除tarball 外,还会一并M除编辑期间所需要的工作目录。
如果是希望清除所有ports 的暂存目录,及tarball ,则:代码:如果是希望清除全部ftp 下所有的暂存目录,及tarball,则:代码:10、如何在安装ports 前查询所需依赖/相关的套件?在安装ports 前,可以查询所需依赖/相关的套件。
以mail/p5-Mail-SpamAssassin 为例的话,则:代码:11、如何移除已安装的ports?以editors/joe 为例的话,则:代码:或是使用pkg_delete代码:有时候套件之间的相依性会导致无法直接移除,如果要强制移除的话,则:代码:但很有可能会导致其它的套件执行起来出现问题。
至於二者的差别,请叁考FAQ 4312、如何一并移除所相依的ports?以sysutils/portupgrade 为例的话,则:代码:执行此步骤前,请注意是否会移除应该保护的套件。
建议先叁考FAQ 10 的方法来检查。
或是使用pkg_delete代码:至於二者的差别,请叁考FAQ 43代码:重新安装的前提是,之前有安装过或目前已安装。
以editors/joe 为例的话,则:代码:14、如何以关键字搜寻ports?如果要从全部的ports collection 中找寻与关键字"ldap" 有关的ports,则:代码:如果只要从与ftp 相关的ports 下找寻与关键字"ldap" 有关的ports,则:代码:还有另一个用法,方法只是将key 换成name 。
如果已经知道要搜寻ports 的名称,或只想找名称相关的关键字"ldap",则:代码:如果只要从ftp 相关的ports 下找寻名称与关键字"ldap" 有关的ports,则:代码:15、如何升级已安装的ports?如果已经安装好套件,事後欲升级的话,必须先移除旧版本的port,移除的方法请叁考FAQ 11、FAQ 12及FAQ 13;之後再安装port,安装的方法请叁考FAQ 4或FAQ 5。
以editors/joe 为例,且以FAQ 11 及FAQ 4 的方法,则:代码:或是代码:16、如何查询目前系统安装了哪些套件?查询目前系统已安装的全部套件:代码:17、如何查询目前系统有没有安装这个关键字的套件?此方法类似FAQ 16 :代码:18、如何查询某个档案是属於哪些套件?如果想查询/usr/local/bin/joe 是属於哪个套件的话,则:代码:如果没有回传任何资讯的话,代表着这个档案是由FreeBSD 内建的。
19、如何查询某个套件安装了哪些档案?如果想查询目前系统所安装的joe 包含了哪些档案,则:代码:20、如何安装旧版的ports?有时候会因为相依性,或是新版有问题,而会想装旧版本的套件。