Chinaunix首页 | 论坛 | 博客
  • 博客访问: 631876
  • 博文数量: 263
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 2555
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-26 11:20
文章分类

全部博文(263)

文章存档

2011年(10)

2010年(19)

2009年(170)

2008年(64)

我的朋友

分类: LINUX

2008-04-25 14:19:37

Fedora / Redhat 软件包管理指南
/*
本文针对Fedora / Redhat系列,版本可能不同,但是基本原理都一样。
是在多篇文章的基础上,再加以我的一些使用心得和体会综合而成,算是对Fedora / Redhat 系列软件包管理的一个总结吧。
部分内容在其他的发行版上应该是也是适合的,比如Debian/Ubuntu等。
*/
一 软件安装分类:
1、本地软件安装卸载,分几种情况:
A:RPM包,这种软件包就像windows的EXE安装文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装非常方便,在图形界面里你只需要双击就能自动安装。终端里面安装与卸载详见下文 二. RPM包的安装

B:tar.gz(bz或bz2等)结尾的源代码包,这种软件包里面都是源程序,没有编译过,需要编译后才能安装,安装方法为:
1、打开一个SHELL,即终端
2、用CD 命令进入源代码压缩包所在的目录
3、根据压缩包类型解压缩文件(*代表压缩包名称)
tar -zxvf ****.tar.gz
tar -jxvf ****.tar.bz(或bz2)
4、用CD命令进入解压缩后的目录
5、输入编译文件命令:./configure(有的压缩包已经编译过,这一步可以省去)
6、然后是命令:make
7、再是安装文件命令:make install
8、安装完毕
===如何卸载:
1、打开一个SHELL,即终端
2、用CD 命令进入编译后的软件目录,即安装时的目录
3、执行反安装命令:make uninstall
====安装目录:注意make install命令过程中的安装目录,或者阅读安装目录里面的readme文件,当然最好的办法是在安装的过程中指定安装目录,即在. /configure命令后面加参数--prefix=/**,如:./configure --prefix=/usr/local/aaaa,即把软件装在/usr/local/路径的aaaa这个目录里。一般的软件的默认安装目录在 /usr/local或者/opt里,可以到那里去找找

C:以bin结尾的安装包,这种包类似于RPM包,安装也比较简单
1、打开一个SHELL,即终端
2、用CD 命令进入源代码压缩包所在的目录
3、给文件加上可执行属性:chmod +x ******.bin(中间是字母x,小写)
3、执行命令:./******.bin(realplayer for linux就是这样的安装包)
===如何卸载:把安装时中选择的安装目录删除就OK
===执行安装过程中可以指定,类似于windows下安装。

2. 在线安装:
Redhat/Fedora通过在线安装更新软件包,除了系统自带的up2date以外,还有更为强大的在线升级工具 yum 和 apt-get 可用,主要资源有freshrpms.net和 rpm.livna.org 。
(一).yum 的使用
(1)、首先我们要到下面的地址下载与自己系统相对应的版本的 yum:
(2)、安装软件举例:# yum install 软件名
注:yum优点:软件包依赖关系自行解决
详见下文 四. yun的用法
(二)apt的使用
a)软件包的安装:# apt-get install 软件包名称  //注:不要加版本号,软件名就好
b)移除软件包:# apt-get remove 软件包名
c)对系统全面升级:# apt-get upgrade
                  # apt-get  dist-upgrade
详见下文 五. apt的用法

3.软件包管理器system-config-packages
Fedora Core 系统中软件包管理工具system-config-packages,这个工具主要是对系统安装盘中的软件管理,比如从安装盘中添加,有时我们在安装系统 时没有安装的软件,可以通这个软件来补充;也可以通过软件包管理工具来删除通过系统安装盘已经安装的软件;功能上来说并不是特别强大;但对于补装软件还是 有必要的;
详见下文 七.Fedora 软件包管理器system-config-packages

4、安装完软件后如何执行。
安装完软件后可以有好多种方法执行软件:
A、有些软件安装后会自动在应用程序列表里加上快捷键,和windows一样,到那里找就行了。
B、如果在应用程序列表里找不到的话,可以直接在/开始/运行命令里输入命令:启动命令一般就是软件名,如firefox,realplay,xmms等
C、也可以打开一个shell终端,输入软件名,和在“运行命令”里一样。如果不知道命令全程的话,可以输入开头的字母,然后按tab键查找,系统会自动显示以输入字母开头的所有命令
D、你也可以直接到安装目录下运行启动文件,linux下的可执行图标和shell终端图标很像
E、到/usr/bin目录里找安装的软件启动文件执行命令。linux系统把所有可执行的文件命令在/usr/bin目录里都作了启动连接,你可以去那个目录寻找你安装的文件的启动命令,双击启动

二. RPM包安装
1.初始化rpm 数据库
通过rpm 命令查询一个rpm 包是否安装了,也是要通过rpm 数据库来完成的;所以我们要经常用下面的两个命令来初始化rpm 数据库;
# rpm --initdb
# rpm --rebuilddb   注:这个要花好长时间
注:这两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题

2.如何查看与rpm包相关的文件和其他信息
命令格式:rpm {-q|--query} [select-options] [query-options]
RPM的查询功能是极为强大,是极为重要的功能之一;举几个常用的例子,更为详细的具体的,请参考#man rpm
(1)、对系统中已安装软件的查询
1)查询系统已安装的软件
语法:rpm -q 软件名
举例:# rpm -q   gaim
      gaim-1.3.0-1.fc4
-q就是 --query ,中文意思是“问”,此命令表示的是,是不是系统安装了gaim ;如果已安装会有信息输出;如果没有安装,会输出gaim 没有安装的信息;
查看系统中所有已经安装的包,要加 -a 参数
# rpm -qa
如果分页查看,再加一个管道 |和more命令;
# rpm -qa |more
在所有已经安装的软件包中查找某个软件,比如说 gaim ;可以用 grep 抽取出来;
# rpm -qa |grep gaim
上面这条的功能和 rpm -q gaim 输出的结果是一样的;
2)查询一个已经安装的文件属于哪个软件包;
语法 rpm -qf 文件名
注:文件名所在的绝对路径要指出
举例:# rpm -qf /usr/lib/libacl.la
      libacl-devel-2.2.23-8
3)查询已安装软件包都安装到何处
语法:rpm -ql  软件名  或 rpm rpmquery -ql  软件名
举例:# rpm -ql lynx
      # rpmquery -ql  lynx
4)查询一个已安装软件包的信息
语法格式: rpm -qi 软件名
举例:# rpm -qi lynx
5)查看一下已安装软件的配置文件
语法格式:rpm -qc 软件名
举例:# rpm -qc lynx
6)查看一个已经安装软件的文档安装位置:
语法格式: rpm -qd 软件名
举例:# rpm -qd lynx
7)查看一下已安装软件所依赖的软件包及文件
语法格式: rpm -qR 软件名
举例:# rpm -qR  rpm-python
查询已安装软件的总结:对于一个软件包已经安装,我们可以把一系列的参数组合起来用;比如 rpm -qil ;比如:# rpm -qil lynx
(2)、对于未安装的软件包的查看:
查看的前提是您有一个.rpm 的文件,也就是说对既有软件file.rpm的查看等;
1)查看一个软件包的用途、版本等信息
语法: rpm -qpi   file.rpm
举例:# rpm -qpi lynx-2.8.5-23.i386.rpm
2)查看一件软件包所包含的文件
语法: rpm -qpl   file.rpm
举例:# rpm -qpl  lynx-2.8.5-23.i386.rpm
3)查看软件包的文档所在的位置
语法: rpm -qpd   file.rpm
举例:# rpm -qpd  lynx-2.8.5-23.i386.rpm
4)查看一个软件包的配置文件
语法: rpm -qpc   file.rpm
举例:# rpm -qpc  lynx-2.8.5-23.i386.rpm
5)查看一个软件包的依赖关系
语法: rpm -qpR  file.rpm
总结:
获得软件包相关的信息用rpm -q,q表示查询query,后面可以跟其他选项,比如
i 表示info,获得软件包的信息;
l 表示list,获得文件列表;
a 表示all,在所有包中执行查询;
f 表示file,根据文件进行相关的查询;
p 表示package,根据软件包进行查询
需要的查询条件可以使用grep产生,或者从"` `"中的命令行产生

 

1
阅读(1646) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~