注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

欢迎来到我的博客进行技术交流

 
 
 

日志

 
 

软件安装  

2009-08-11 13:42:33|  分类: 基础知识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
声明!本文属于原创文章。欢迎转载,但务必保持原文完整,保留作者名,并注明出处。

作者:星外天空

原文地址:http://vsbsd.blog.163.com
                    
软件安装有2个方式:
package  别人已经编译好的二进制文件安装方式。
ports     源代码安装。


package安装方法:
 说明
#package的安装方式有2种,一种是利用sysinstall工具来安装软件,另一种是用命令手动安装!sysinstall安装是通过FTP读取网络上的二进制文件或读取光盘等方式取得安装来源自动安装的,安装前提是要连上网或放入安装光盘。而手动安装是通过命令安装,安装前提是要下载或其它方法取得这个二进制文件包,格式通常是.tgz或.tbz的文件。两种方式安装完成后,都要用rehash 更新hash table,作用是更新搜索路径,否则当你运行新安装的软件命令时,系统会提示找不到此程序。

以下例子引用假设这个软件包是:lsof-4.71.tbz
安装:
手动安装:
本地安装:pkg_add  /root/lsof-4.71.tbz
    //安装lsof-4.71.tbz ,这个软件可以在本地目录,也可以是网址。(pkg_add 可以加上-v参数显示安装的详细)
网络安装:pkg_add  -r  lsof          
//自动从一个ftp站点下载并安装lsof-4.71最新版,此时不须要输版本号
用sysinstall安装:
    //以root身份运行sysinstall,选择Configure ---- Packages ---- 选择安装方式(如cd/dvd)  就会列出软件包,选择后,返回到Package Selection画面Install就OK了。
卸载:
pkg_delete  lsof-4.71
     //这里的软件名要带版本号的
pkg_delete  lsof \*    
      //删除所有文件名是lsof开头的软件
—————————————————————————————————————————————、Ports安装方法:
说明:Ports安装方式须要有/usr/ports目录的支持,ports里面是安装软件所必需的配置文件。如果没有安装ports这个目录,是不能以这种方式安装软件的。ports目录内有也放着很多目录,它们都是各种软件的分类目录,如www目录,所有跟互联网相关软件的配置文件都在里面,打开www目录,里面有一个叫lynx的目录就是文字浏览lynx的配置文件目录。安装软件的方法是直接在你要安装软件的目录里面,运行make install,安装软件就是这么简单快捷。此时,系统会搜索/usr/ports/distfiles目录,没有找到源码,搜索CD-ROM的/usr/ports/distfiles目录,还是没找到,就搜索网络,系统搜索到源码之后,就会自动把要安装的源码包下载到/usr/ports/distfiles目录。所以,如果我们有源码包,可以直接放到/usr/ports/distfiles目录,然后make install。通常预设搜索源码包的网址是外国的,所以特别慢,这时可以编辑/etc/make.conf,加入以下星号括住那段。在软件安装完成后,会在该软件的目录下产生一个work目录,里面装着安装时产生的目标文件等。所以完成后要使用make clean清除编译过程产生的这些文件。也可以在安装的时候就make install clean ,但是如果我安装了很多个软件,我也不记得到底装了多少个软件了,那么用这条指令来删除所有的work目录:find /usr/ports -depth -name work -exec rm -rf {} \;

#*****************************************************************
#加入国内的服务器可以提高访问速度
MASTER_SITE_BACKUP?= \
   ftp://freebsd.csie.ncu.edu.tw/distfiles/${DIST_SUBDIR}/ \
   ftp://freebsd.csie.nctu.edu.tw/pub/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=    ${MASTER_SITE_BACKUP}
#******************************************************************


卸载:只要在该软件的 ports 目录中运行 make deinstall 即可
     注意,不要在/usr/ports下运行此命令,否则会将所有的软件统统删掉

     在ports下有这么多分类,这么多目录怎么比较快捷地了解软件的路径呢?因为我要cd进去make install啊,你那可以使用ports内置的搜索命令查找哦,以下这两个命令使用的前提是要cd到/usr/ports目录。
make search name=filename      //filename是要查找的文件名,以文件名搜索
make search key=string          //string 是要查找的关键字,以关键字搜索
或者你也可以用普通命令搜索
         Whereis  filename
         Echo /usr/ports/*/*filename*

安装软件失败?
有的软件安装时会出现参数选项如:GNUTLS,IPV6,NLS,OPENSSL等等,这些选项如果选择错误的话,会安装失败,并且当你再次输入make install仍然失败,这次连选项也看不到了,这时就用到make config了,使用make config重新调出选项框,重新选择后就能正常安装了。
    有些时候软件安装失败是由于已经安装了此软件了,系统会出现already installed 的提示

最后要讲讲在没有安装/usr/ports目录的时候应该怎么办!
      当然要安装了,打开sysinstall,  configure --- distributions ---选中ports,返回 install

或者可以到网上下载ports压缩包,解压到/usr/ports也是可以的。

—————————————————————————————————————————————。
查询已安装软件信息:
pkg_info //显示已安装的软件,可以使用-a参数列出所有软件信息,指令后可接软件名

pkg_version  //用于比较已安装package的版本与ports目录中的当前版本是否一致,可以使用-v参数。
              这个命令的输入通常是一个等号和其它符号,分别有下面这些:
                 = 本地ports树中与已安装的软件相匹配
                    < 已安装的版本比ports树中的版本旧
> 已安装的版本比ports树中的版本新
? 已安装的软件无法在ports索引中找到.
* 软件包有很多版本.
!  已安装的软件在索引中有记录,但由于某些原因pkg_version无法比较已安装的软件包与索引中相对应的版本号.

软件安装的相关信息都保存在/var/db/pkg目录下,安装文件的列表和每个package的内容和
描述都能在这个目录的相关文件中找到


检查软件的依赖关系
      pkg_tree | more   //列出所有软件依赖关系。


更新port tree
     port tree就是/usr/ports下的目录树,我们要安装新版本的软件,就必须更新ports目录下的配置文件。更新port tree的方法是使用CVSup工具来维持软件原源代码与开发团队的同步。可以使用CVSup来更新port tree,也可以用来更新/usr/src目录下的FreeBSD源代码。CVSup需要依照一个配置文件更新ports-tree的,这个配置文件就是/usr/share/examples/cvsup/ports-supfile,这只是一个范例文件,按照自己的实际情况修改。我们最好就复制一份来修改,保留原文件以备不时之须。
      安装CVSup(无图形界面的CVSUP套件名字是”cvsup-without-gui”)
         #cd  /usr/ports/net/cvsup-without-gui
         #make install clean
      修改配置文件:ports-supfile
      #cp  /usr/share/examples/cvsup/ports-supfile  /root          //复制一份到/root
      #vi  /root/ports-supfile                                 //打开
       选择更新服务器:找到 *default host= 这行,设置为最近我们的更新服务器,如交大资工的:default host=cvsup.tw.freebsd.org
       选择更新项目:ports-all表示更新所有ports项目,若只更新其中某一个项目,就要把ports-all标上#号注释掉,ports-base项目表示自定安装的意思,下面ports开头的行是各个项目,如果只要更新/usr/ports/www这个目录,那么应该将ports-all注释掉,把ports-base和ports-www打开。
       开始更新ports tree: cvsup -g -L 2 /root/ports-supfile   //g表示不使用图形接口,L及数字2表示显示更新过程详细度,数字可以从0-2,最后面就是配置文件了。
更新软件
      使用cvsup更新port tree之后,用pkg_version –v检查已安装软件的版本是否跟port tree一样,当输出有<needs updating字样的表示该软件有更新的版本,这时可以用portupgrade更新。
           更新软件:portupgrade pkgname       //pkgname为要更新的软件名字
                     portupgrade –rf “perl-5.8.*” –m “ENABLE_SUIDPERL=yes”
                 //-r表示相依的软件也一齐更新,如果相依的相依软件也更新的就用-R,-f表示就算版本一样也强制更新,-m表示编译时加入一些参数。
 传统的软件安装方法
       以下是传统软件安装步骤:
从该软件网站或其它站点下载该软件,可可能是binary或源码
解压该文件,通常是以tar,gzip,bzip2压缩的。
阅读该目录中的说明文件,可能是readme或doc/的文件,了解如何安装
若下载的是源码,可能要先编辑Makefile或执行configure,再编译该软件
最后测试与安装

  评论这张
 
阅读(175)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017