转自:http://blog.chinaunix.net/uid-783769-id-2039811.html
非常感谢这位同学的整理。
在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础;只有我们学会软件包的管理才能谈得上其它的应用;本文以目录式的文档格式,列出新手弟兄所面对的软件包的安装、更新、查询相对的文档,以及几个常用的软件包管理工具,比如 system-cofig-packages 、yum 、apt 等的文档目录等;
一、软件包管理的基础;
1、什么是RPM,RPM有何用?
初次为Fedora /Redhat 安装软件,我们应该学会RPM的安装和使用,也应该知道RPM是做什么用的;在下面文档中,您可能会有点收获;
请参考:
RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用;
RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除了.exe文件以外,也有其它的文件;
一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系;依赖关系并不是Linux特有的,Windows操作系统中也是同样存在的;比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct 9 ;Linux和Windows原理是差不多的;
软件安装流程图:
本文使用范围:
1、本文是对RPM管理的软件的说明,对通过file.tar.gz 或file.tar.bz2源码包用 make ;make install 安装的软件无效;
2、安装软件时,最好用各自发行版所提供的系统软件包管理工具,对于Fedora/Redhat 您可以参考如下文章;
1)Fedora 系统管理软件包工具 system-config-packages,方便的添加和移除系统安装盘提供的软件包,详情请看 《Fedora 软件包管理器system-config-packages》
2)Redhat 系统管理软件包工具,新一点的系统应该是 redhat-config-packages ,用法和 《Fedora 软件包管理器system-config-packages》 一样;
3)apt + synaptic 软件包在线安装、移除、升级工具; 用法:《用apt+synaptic 在线安装或升级Fedora core 4.0 软件包》
4)yum 软件包在线安装、升级、移除工具;用法:《Fedora/Redhat 在线安装更新软件包,yum 篇》
5)所有的yum和apt 教程 《apt and yum》
目前 apt和yum 已经极为成熟了,建议我们安装软件时,采用 apt或者yum ;如果安装系统盘提供的软件包,可以用 system-config-packages 或redhat-config-packages ;
一、RPM包管理的用途;
1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;
二、RPM 的使用权限;
RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装;
三、rpm 的一点简单用法;
我们除了软件包管理器以外,还能通过rpm 命令来安装;是不是所有的软件包都能通过rpm 命令来安装呢?不是的,文件以.rpm 后缀结尾的才行;有时我们在一些网站上找到file.rpm ,都要用 rpm 来安装;
一)初始化rpm 数据库;
通过rpm 命令查询一个rpm 包是否安装了,也是要通过rpm 数据库来完成的;所以我们要经常用下面的两个命令来初始化rpm 数据库;
[root@localhost beinan]# rpm --initdb
[root@localhost beinan]# rpm --rebuilddb 注:这个要花好长时间;
注:这两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题;
二)RPM软件包管理的查询功能:
命令格式
rpm {-q|--query} [select-options] [query-options]
RPM的查询功能是极为强大,是极为重要的功能之一;举几个常用的例子,更为详细的具体的,请参考#man rpm
1、对系统中已安装软件的查询;
1)查询系统已安装的软件;
语法:rpm -q 软件名
举例:
[root@localhost beinan]# rpm -q gaim
gaim-1.3.0-1.fc4
-q就是 --query ,中文意思是“问”,此命令表示的是,是不是系统安装了gaim ;如果已安装会有信息输出;如果没有安装,会输出gaim 没有安装的信息;
查看系统中所有已经安装的包,要加 -a 参数 ;
[root@localhost RPMS]# rpm -qa
如果分页查看,再加一个管道 |和more命令;
[root@localhost RPMS]# rpm -qa |more
在所有已经安装的软件包中查找某个软件,比如说 gaim ;可以用 grep 抽取出来;
[root@localhost RPMS]# rpm -qa |grep gaim
上面这条的功能和 rpm -q gaim 输出的结果是一样的;
2)查询一个已经安装的文件属于哪个软件包;
语法 rpm -qf 文件名
注:文件名所在的绝对路径要指出
举例:
[root@localhost RPMS]# rpm -qf /usr/lib/libacl.la
libacl-devel-2.2.23-8
3)查询已安装软件包都安装到何处;
语法:rpm -ql 软件名 或 rpm rpmquery -ql 软件名
举例:
[root@localhost RPMS]# rpm -ql lynx
[root@localhost RPMS]# rpmquery -ql lynx
4)查询一个已安装软件包的信息
语法格式: rpm -qi 软件名
举例:
[root@localhost RPMS]# rpm -qi lynx
5)查看一下已安装软件的配置文件;
语法格式:rpm -qc 软件名
举例:
[root@localhost RPMS]# rpm -qc lynx
6)查看一个已经安装软件的文档安装位置:
语法格式: rpm -qd 软件名
举例:
[root@localhost RPMS]# rpm -qd lynx
7)查看一下已安装软件所依赖的软件包及文件;
语法格式: rpm -qR 软件名
举例:
[root@localhost beinan]# rpm -qR rpm-python
查询已安装软件的总结:对于一个软件包已经安装,我们可以把一系列的参数组合起来用;比如 rpm -qil ;比如:
[root@localhost RPMS]# rpm -qil lynx
2、对于未安装的软件包的查看:
查看的前提是您有一个.rpm 的文件,也就是说对既有软件file.rpm的查看等;
1)查看一个软件包的用途、版本等信息;
语法: rpm -qpi file.rpm
举例:
[root@localhost RPMS]# rpm -qpi lynx-2.8.5-23.i386.rpm
2)查看一件软件包所包含的文件;
语法: rpm -qpl file.rpm
举例:
[root@localhost RPMS]# rpm -qpl lynx-2.8.5-23.i386.rpm
3)查看软件包的文档所在的位置;
语法: rpm -qpd file.rpm
举例:
[root@localhost RPMS]# rpm -qpd lynx-2.8.5-23.i386.rpm
5)查看一个软件包的配置文件;
语法: rpm -qpc file.rpm
举例:
[root@localhost RPMS]# rpm -qpc lynx-2.8.5-23.i386.rpm
4)查看一个软件包的依赖关系
语法: rpm -qpR file.rpm
举例:
[root@localhost archives]# rpm -qpR yumex_0.42-3.0.fc4_noarch.rpm
/bin/bash
/usr/bin/python
config(yumex) = 0.42-3.0.fc4
pygtk2
pygtk2-libglade
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
usermode
yum >= 2.3.2
三)软件包的安装、升级、删除等;
1、安装和升级一个rpm 包;
[root@localhost beinan]#rpm -vih file.rpm 注:这个是用来安装一个新的rpm 包;
[root@localhost beinan]#rpm -Uvh file.rpm 注:这是用来升级一个rpm 包;
如果有依赖关系的,请解决依赖关系,其实软件包管理器能很好的解决依赖关系,请看前面的软件包管理器的介绍;如果您在软件包管理器中也找不到依赖关系的包;那只能通过编译他所依赖的包来解决依赖关系,或者强制安装;
语法结构:
[root@localhost beinan]# rpm -ivh file.rpm --nodeps --force
[root@localhost beinan]# rpm -Uvh file.rpm --nodeps --force
更多的参数,请查看 man rpm
举例应用:
[root@localhost RPMS]# rpm -ivh lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
[root@localhost RPMS]# rpm -ivh --replacepkgs lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
注: --replacepkgs 参数是以已安装的软件再安装一次;有时没有太大的必要;
测试安装参数 --test ,用来检查依赖关系;并不是真正的安装;
[root@localhost RPMS]# rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
由新版本降级为旧版本,要加 --oldpackage 参数;
[root@localhost RPMS]# rpm -qa gaim
gaim-1.5.0-1.fc4
[root@localhost RPMS]# rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# rpm -qa gaim
gaim-1.3.0-1.fc4
为软件包指定安装目录:要加 -relocate 参数;下面的举例是把gaim-1.3.0-1.fc4.i386.rpm指定安装在 /opt/gaim 目录中;
[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim
为软件包指定安装目录:要加 -relocate 参数;下面的举例是把lynx-2.8.5-23.i386.rpm 指定安装在 /opt/lynx 目录中;
[root@localhost RPMS]# rpm -ivh --relocate /=/opt/lynx --badreloc lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
我们安装在指定目录中的程序如何调用呢?一般执行程序,都放在安装目录的bin或者sbin目录中;看下面的例子;如果有错误输出,就做相应的链接,用 ln -s ;
[root@localhost RPMS]# /opt/lynx/usr/bin/lynx
Configuration file /etc/lynx.cfg is not available.
[root@localhost RPMS]# ln -s /opt/lynx/etc/lynx.cfg /etc/lynx.cfg
[root@localhost RPMS]# /opt/lynx/usr/bin/lynx www.linuxsir.org
2、删除一个rpm 包;
首先您要学会查询rpm 包 ;请看前面的说明;
[root@localhost beinan]#rpm -e 软件包名
举例:我想移除lynx 包,完整的操作应该是:
[root@localhost RPMS]# rpm -e lynx
如果有依赖关系,您也可以用--nodeps 忽略依赖的检查来删除。但尽可能不要这么做,最好用软件包管理器 systerm-config-packages 来删除或者添加软件;
[root@localhost beinan]# rpm -e lynx --nodeps
四、导入签名:
[root@localhost RPMS]# rpm --import 签名文件
举例:
[root@localhost fc40]# rpm --import RPM-GPG-KEY
[root@localhost fc40]# rpm --import RPM-GPG-KEY-fedora
关于RPM的签名功能,详情请参见 man rpm
五、RPM管理包管理器支持网络安装和查询;
比如我们想通过 Fedora Core 4.0 的一个镜像查询、安装软件包;
地址:
http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/
举例:
命令格式:
rpm 参数 rpm包文件的http或者ftp的地址
# rpm -qpi http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
# rpm -ivh http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
举一反三吧;
六、对已安装软件包查询的一点补充;
[root@localhost RPMS]# updatedb
[root@localhost RPMS]# locate 软件名或文件名
通过updatedb,我们可以用 locate 来查询一些软件安装到哪里了;系统初次安装时要执行updatedb ,每隔一段时间也要执行一次;以保持已安装软件库最新;updatedb 是slocate软件包所有;如果您没有这个命令,就得安装slocate ;
举例:
[root@localhost RPMS]# locate gaim
七、从rpm软件包抽取文件;
命令格式: rpm2cpio file.rpm |cpio -div
举例:
[root@localhost RPMS]# rpm2cpio gaim-1.3.0-1.fc4.i386.rpm |cpio -div
抽取出来的文件就在当用操作目录中的 usr 和etc中;
其实这样抽到文件不如指定安装目录来安装软件来的方便;也一样可以抽出文件;
为软件包指定安装目录:要加 -relocate 参数;下面的举例是把gaim-1.3.0-1.fc4.i386.rpm指定安装在 /opt/gaim 目录中;
[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim
这样也能一目了然;gaim的所有文件都是安装在 /opt/gaim 中,我们只是把gaim 目录备份一下,然后卸掉gaim;这样其实也算提取文件的一点用法;
八、RPM的配置文件;
RPM包管理,的配置文件是 rpmrc ,我们可以在自己的系统中找到;比如Fedora Core 4.0中的rpmrc 文件位于;
[root@localhost RPMS]# locate rpmrc
/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc
我们可以通过 rpm --showrc 查看;具体的还得我们自己来学习。呵。。。不要问我,我也不懂;只要您看了这篇文章,认为对您有用,您的水平就和我差不多;咱们水平是一样的,所以我不能帮助您了;请理解;
九、src.rpm的用法:
《file.src.rpm 使用方法的简介》
初学Linux的弟兄可能会看到file.src.rpm 格式的软件包,但不知道如何使用;现简单介绍一下,太详细的我也不太知道;我毕竟不是计算机科班出身的,简单一点的应用还算过得去,更深一点的,只能靠弟兄们了~
本文主要介绍file.src.rpm和file.spec 的简单用法;
源码包file.tar.gz、file.tar.bz2 或 file.src.rpm 包都可以编译出我们可安装执行的file.rpm包;有些软件开发者自己会写把软件包的源码包打包成file.src.rpm file.tar.gz file.tar.gz 等,也会写可执行file.rpm 编译的脚本文件file.spec;
如果我们技术可行,也是可以自己来写编译脚本file.spec文件;通过file.spec 文件,我们可以分享其它弟兄;也可以从他人那里得到file.spec 文件,然后我们自己修改修改,就可以编译出与自己系统适合的rpm 包;
一、通过file.src.rpm和file.spec 编译rpm 包为我所用;
我们在Fedora/Redhat或者其它基于RPM包管理的系统,可以看到 file.src.rpm 和file.rpm ;file.src.rpm 是源码包的rpm格式;我们也可以安装它,安装后出现在 /usr/src/redhat/SOURCE的目录;
举例:比如我们要用unrar-3.5.2-1.2.fc4.src.rpm和unrar.spec来编译出rpm包;
首先我们下载两个文件:unrar-3.5.2-1.2.fc4.src.rpm和unrar.spec
#wget http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/4/unrar/unrar-3.5.2-1.2.fc4.src.rpm
# wget http://svn.rpmforge.net/svn/trunk/rpms/unrar/unrar.spec
下载完成:
[root@localhost beinan]# ls unrar*
unrar-3.5.2-1.2.fc4.src.rpm unrar.spec
安装源码包unrar-3.5.2-1.2.fc4.src.rpm;看一看安装在哪了呢?
[root@localhost beinan]# rpm -ivh unrar-3.5.2-1.2.fc4.src.rpm
安装在这里:
[root@localhost beinan]# ls /usr/src/redhat/SOURCES/unrar
unrar.1 unrarsrc-3.5.2.tar.gz
然后我们通过unrar.spec 来执行,其实他是一个写好的编译脚本;
[root@localhost beinan]# rpmbuild --ba unrar.spec
编译完成:
[root@localhost beinan]# ls /usr/src/redhat/RPMS/i386/
unrar-3.5.2-1.i386.rpm unrar-debuginfo-3.5.2-1.i386.rpm
是不是可以安装呢?
[root@localhost beinan]# rpm -ivh /usr/src/redhat/RPMS/i386/unrar-3.5.2-1.i386.rpm
Preparing... ########################################### [100%]
1:unrar ########################################### [100%]
是不是可用?
[root@localhost beinan]# unrar x mydoc.rar
清理垃圾文件:如果您经常用这种办法编译RPM 包,主要清理一下 /usr/src/redhat内各个目录的内容;
二、通过file.tar.gz 、file.tar.bz2 和 file.sepc 来编译rpm ;
我们可以把file.tar.gz 或者 file.tar.bz2放到/usr/src/redhat/SOURCE 目录中,然后执行file.spec 文件;有时有些软件开发者会把file.spec 放在源码包中;这时我们就要解压后来查看是否是存在;如果有大多是用下面的办法:
[root@localhost beinan]# cp file.tar.gz /usr/src/redhat/SOURCES/
[root@localhost beinan]# tar zxvf file.tar.gz
[root@localhost beinan]# cd filedir
[root@localhost beinan]# rpmbuild --ba file.spec
三、如果没有spec 文件,我应该怎么办?
如果您只是想安装这个软件,可以用下面的办法;
[root@localhost beinan]# tar zxvf file.tar.gz 或者 tar file.tar.bz2
[root@localhost beinan]# cd filedir
[root@localhost beinan]# ./configure --help
注:可以用--help 来查看参数;如果您不懂如何加,一般就默认就好,试着编译几个就知道了;
[root@localhost beinan]# make
[root@localhost beinan]# make install
[root@localhost beinan]# make clean
有些软件只提供比较老的file.spec 文件,我们可以改造改造file.spec 文件,以适合软件的新版本;您也可以到 http://svn.rpmforge.net/svn/trunk/rpms 查找是不是有对应的file.spec 文件;
有些软件不提供file.spec 文件,并且您也在其实资源站上也找不到类似的文件,而且您还想从源码包打一个file.rpm 包和大家交流,那只好自己学习编写了;
我们可以把 http://svn.rpmforge.net/svn/trunk/rpms 当作学习资源,也是一件快乐的事;
后记:Fedora/Redhat 入门教程中的软件包管理篇,我已经写了很多了;目前还缺少通过源码包安装软件我方法以及一篇总结性的文档;我想在最近两天补齐,这两篇我以前写过;重新整理一下贴出来就行了;
以我的水平来看,写Fedora 入门教程是极为费力气的,只能一点一点的完善和补充;我所写的教程是面对的是对Linux一无所知新手;教程中实例应用占大部份;我发现没有实例的情况下,新手不如看man ;能看man了,当然也不是什么新手;
经常在论坛上看一些弟兄的提问,虽然一问话解说过去也能应付;但想让大家更方便一点,不如写系统入门教程;虽然所花的时间要长一点;
《Maximum RPM》
2、system-config-packages 本地软件包管理工具;
如果您在安装系统时,把有些必要的软件忘记安装了,我们可以通过 system-config-packages 来安装;system-config-packages 是一个管理本地软件包的工具;更直接一点system-config-packages是通过系统安装盘来安装、移除软件;这个工具极为有用,能解决软件包之间的依赖关系;Redhat 软件包管理工具应该是 redhat-config-packages ,用法是一样的;
请参考: 《Fedora 软件包管理器system-config-packages》
Fedora Core 软件包管理工具system-config-packages,这个工具主要是对系统安装盘中的软件管理,比如从安装盘中添加,有时我们在安装系统时没有安装的软件,可以通这个软件来补充;也可以通过软件包管理工具来删除通过系统安装盘已经安装的软件;功能上来说并不是特别强大;但对于补装软件还是有必要的;
一、system-config-packages的安装和使用;
1、首先确认是不已经安装 system-config-packages
[root@localhost beinan]# rpm -qa system-config-packages
system-config-packages-1.2.25-1
如果有上面的提示,就是已经安装;
如果没有安装,您可以通过如下的命令来安装:
[root@localhost beinan]# rpm -ivh system-config-packages*
2、运行system-config-packages
[beinan@localhost ~]# system-config-packages --help
Usage: system-config-packages [--help] [--tree=PATH] [--isodir=PATH]
我们可以看到 system-config-packages的帮助,可以看到system-config-packages支持iso补装或者删除软件包;
所以我们在运行这个命令时,要指定ISO的存放位置;
[beinan@localhost ~]# system-config-packages --isodir=存放ISO光盘映像的目录;
可能您的ISO映像存放于 Windows中的fat32分区,您可以用 mount 来加载分区;
比如我是把ISO存放在windows操作系统的fat32分区中,并且我根据请看《在Fedora core 4.0 加载NTFS和FAT32分区详述》 文档mount到/mnt/wind目录中;
并且我把Fedora 的四人ISO存在于fat32分区,并且直接放到fat32分区之下;所以mount到 /mnt/wind中,所以ISO的目录就是/mnt/wind
所以根据自己系统的情况,用软件包管理器来添加和删除软件的命令是:
[beinan@localhost ~]# system-config-packages --isodir=/mnt/wind
注意:如果您把四个ISO存放在某个目录,必须把四个ISO同时放在一个目录里;这样才不会出现让您播放某张光盘的情况;
二、如何在Linux中打开iso文件?
其实ISO也是一个打包文件,和rar以及zip文件类似,只是他们的格式不同罢了;我们除了用软件包管理器以外,我们还能用把iso 挂载到一个目录中;这样我们也可以用手工来安装我们所需要的包;
首先我们要把iso 加载到一个目录,用的是
mount -o loop ISO文件名 目的目录
比如我们要把 iso 临时加载到 /mnt/temp目录中,当然我们首先要建这个目录
[root@localhost beinan]# mkdir /mnt/temp
然后我们来加载FC4的第一张ISO文件;
[root@localhost beinan]# mount -o loop /mnt/wind/FC4-i386-disc1.iso /mnt/temp/
[root@localhost beinan]# ls /mnt/temp/
autorun GPL README RPM-GPG-KEY RPM-GPG-KEY-fedora-rawhide TRANS.TBL
eula.txt images README-Accessibility RPM-GPG-KEY-beta RPM-GPG-KEY-fedora-test
Fedora isolinux RELEASE-NOTES RPM-GPG-KEY-fedora RPM-GPG-KEY-rawhide
我们所需要的RPM包就位于 /mnt/temp/Fedora/RPMS 目录中;
如果我想把四个ISO的文件都提取出来,我们能一个一个的加载,然后每个ISO文件的内容都拷入同一个目录中;
[root@localhost beinan]# mkdir /mnt/hda10/fc40
[root@localhost beinan]# cp -R /mnt/temp/* /mnt/hda10/fc40/
然后我们再加载第二张ISO;
[root@localhost beinan]#umount /mnt/temp 注:先卸载第一个ISO;
我们加载第二个ISO;并和第一个ISO一样,把所有的文件提出来,放到和第一个ISO提出来的文件存放在同一个目录;如果遇到提示是不是覆盖文件,覆盖就行;第三张和第四张盘都是如此;
[root@localhost beinan]# cp -R /mnt/temp/* /mnt/hda10/fc40/
cp:是否覆盖‘/mnt/hda10/fc40/eula.txt’? y
通过这个例子,我们知道提取出四张ISO内的所有文件都存放在 /mnt/hda10/fc40目录中。所以我们想查看Fedora Core 4.0所有的RPM包,就可以到 /mnt/hda10/fc40/Fedora/RPMS目录中查看,一个都不少,四张盘的都在;
如果想安装什么,就用
[root@localhost beinan]#rpm -ivh file.rpm 注:file 是软件包的名字;
如果有依赖关系 ,要把依赖的包先安装上;
比如我们想安装 gaim
[root@localhost beinan]#rpm -ivh gaim*.rpm 注:可以用通配符
3、如何编译安装源码包软件;
对非file.rpm 软件包的安装,我们也应该有点了解,至少下面的文档能告诉您软件包中大多有README、INSTALL等帮助文档;本文还提到一些非file.rpm的软件的安装方法等;
请参考:《如何编译安装源码包软件》
一、什么是源码包软件;
顾名思义,源码包就是源代码的可见的软件包,基于Linux和BSD系统的软件最常见;在国内源可见的软件几乎绝迹;大多开源软件都是国外出品;在国内较为出名的开源软件有fcitx;lumaqq;Lumaqq及scim等;
但软件的源代码可见并不等于软件是开源的,我们还要以软件的许可为准;比如有些软件是源码可见的,但他约定用户只能按他约定的内容来修改;比如vbb论坛程序;所以一个软件是否是开源软件,得具备两个条件;一是源代码可见;二是要有宽松的许可证书,比如GPL证书等;
在GNU Linux或BSD社区中,开发人员在放出软件的二进制软件包的同时,也会为我们提供源代码软件包;
二、源代码有何用?
一个软件的如果有源码,是任何人都能看到他是怎么开发而来的,就像一个瓶子,比如瓶子制作的模具是什么;需要什么材料;具体的用途以及瓶子的详细说明书等等。软件的开放源码就是类似,开发者在给我们软件的同时,也会告诉我们软件是怎么开发出来的;只要我们的水平足够的高,所有的代码都在那里,我们就可以修改和定制软件,以适合我们的需要;如果Windows开放源代码,并以GPL发布,一样是有人能造出来N多的Windows发行版;遗憾的是Windows并不是开源系统;
所以软件的源代码的用处无非是以下两点;
1、软件根据用户的需要加以定制;
2、二次开发;注:要根据软件的许可证书约定为准,开发者许可二次开发才行;
三、怎样安装以源码包打包的软件;
1、源码包的打包格式;
源代码一般以file.tar.gz file.tar.bz2或file.src.rpm 打包;file.tar.gz和file.tar.bz2格式的解包命令如下;
[root@localhost beinan]# tar jxvf file.tar.bz2
[root@localhost beinan]# tar zxvf file.tar.gz
至于file.src.rpm 的用法,请参见:《file.src.rpm 使用方法的简介》
2、如何编译安装源码包;(大多数)
1)解开软件包查看帮助文档;
我们解开一个包后,进入解压包,一般都能发现README(或reame)和INSTALL( 或install);或doc(或DOC)目录;看名字就知道个差不多;
比如我们下载一个比较新的fcitx 的软件包,比如是 fcitx-3.2-050827.tar.bz2
我们在解开这个软件包会会发现如下的文件;
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ls
aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm
AUTHORS config.h.in configure.in depcomp install-sh missing THANKS
autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO
ChangeLog config.sub data fcitx.spec.in Makefile.am README tools
所以我们就可以看fcitx的INSTALL 和doc目录的安装文档了;里面都告诉我们如何安装;
有时安装文档也会在开发者的主页上有详细的说明,及常见问题的处理等;比如 LumaQQ
2)编译安装软件的条件;
首先我们在Linux系统中至少得把开发工具安装上,比如 gcc ;perl;python;glibc;gtk;make ;automake 等开发工具或基础包;还要安装一些相应的开发包,一般是文件名包括dev的,比如kernel-devel;还有一些开发库,比如以lib开头的;如果您在编译软件时,有时提示缺少什么东西之类的,大多少的是这些开发工具和开发库等;从光盘中找出安装就是了;有时光盘没有提供,请用google搜索相应的软件包,有时可能也会用到源码包编译安装所依赖的包;
有时本来系统中已经安装了所依赖的包,但系统提示找不到应该怎么办?这时需要我们设置一下PKG_CONFIG_PATH的环境变量就行了;
#export PKG_CONFIG_PATH=/usr/lib/pkgconfig
或
#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然后我们再来运行编译的./configure ;make ;make install ,尝试着来吧;
以java开发的工具开发的程序,要用到 jre或者jdk ;jdk已经包括jre了,所以如果我们只是要求有一个java程序运行的环境,只需要安装jre就行了;安装好jre,配置一下java的环境变量就可以用了。如果是图形界面的程序,点点鼠标就OK了;
用perl 开发的程序,是需要perl环境的,所以必须得把perl的包安装上,python 也同理;
3)编译安装软件的方法;
大多以tar.gz 和tar.bz2打包软件,大多是通过 ./configure ;make ;make install 来安装的;有的软件是直接make;make install ;
我们可以通过./configure --help 来查看配置软件的功能;大多软件是提供./configure 配置软件的功能的;少数的也没有,如果没有的就不用./configure ;直接make;make install 就行了;
./configure 比较重要的一个参数是 --prefix ,用--prefix 参数,我们可以指定软件安装目录;当我们不需要这个软件时,直接删除软件的目录就行了;
比如我们可以指定fcitx 安装到 /opt/fcitx 目录中;
[root@localhost fcitx]#./configure --prefix=/opt/fcitx
如果我们不需要fcitx 时,可以直接删除 /opt/fcitx 目录;
所以我们举这个例子中,fcitx如果定制安装到 /opt/fcitx目录中,完整的安装方法应该是:
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx
[root@localhost fcitx]# make
[root@localhost fcitx]# make install
调用fcitx ,应该是
[beinan@localhost ~]#/opt/fcitx/bin/fcitx
如果您想要让fcitx 只要执行fcitx ,就能调用,请配置环境变量,或者在/usr/bin 中做一个fcitx 的链接;
[root@localhost beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx
一般的情况下都有说,但大多软件没有提供源码包的卸载方法;我们可以找到软件的安装点删除。主要看你把它安装在哪了。
设置环境变量PATH,请参见:《在Fedora Core 中,有些常用命令怎么没有?解决办法设置PATH》
所以您的PATH可以设置成这样的;
export PATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"
当然这只是举个例子,fcitx 可以进入桌面自动运行的,请参看 http://www.fcitx.org 官方站上的安装说明;举个例子只是让大家好理解一点;
再举一个例子,比如我想安装mlterm ;并指定安装目录为/opt/mlterm中; http://mlterm.sourceforge.net
#./configure --prefix=/opt/mlterm
#make
#make install
把源码包安装的软件,都指定安装在 /opt目录中,这样不就知道了软件安装在哪里了;也方便卸载;
3.其它类型软件;
1)基于perl 和python 的程序的安装;
一般情况下,用 #perl file.pl安装;比如:VMware 的Linux版本的安装;
[root@localhost vmware-distrib]# perl vmware-install.pl
基于python 开发,也得用 python file.py 来安装
一般软件包都有README和INSTALL 或者 DOC 文档,看文档安装;
2)有些安装程序是脚本型的调用;要用 #sh 文件名
比如NVdia驱动的安装就是这样的;
[beinan@localhost ~]# sh NFORCE-Linux-x86-1.0-0306-pkg1.run
当然也能通过 chmod 755 NFORCE-Linux-x86-1.0-0306-pkg1.run ,然后 ./NFORCE-Linux-x86-1.0-0306-pkg1.run 来安装;
也有一些是以file.bin 文件
[beinan@localhost ~]# chmod 755 file.bin
[beinan@localhost ~]# ./file.bin
大抵如此。。。。。。。。
后记: 源码包及特殊格式的软件安装就写这么多,写的再多也是写不完。我们主要还是以软件的安装文档为准;安装软件时,如果只是简单的应用,如果有rpm包,尽可能的用rpm包;主要是方便和易于管理;
附录:
安装软件时,最好用各自发行版所提供的系统软件包管理工具,对于Fedora/Redhat 您可以参考如下文章;
0)RPM 基础 《RPM 的介绍和应用》
1)Fedora 系统管理软件包工具 system-config-packages,方便的添加和移除系统安装盘提供的软件包,详情请看 《Fedora 软件包管理器system-config-packages》
2)Redhat 系统管理软件包工具,新一点的系统应该是 redhat-config-packages ,用法和 《Fedora 软件包管理器system-config-packages》 一样;
3)apt + synaptic 软件包在线安装、移除、升级工具; 用法:《用apt+synaptic 在线安装或升级Fedora core 4.0 软件包》
4)yum 软件包在线安装、升级、移除工具;用法:《Fedora/Redhat 在线安装更新软件包,yum 篇》
目前 apt和yum 已经极为成熟了,建议我们安装软件时采用 apt或者yum ;如果安装系统盘提供的软件包,可以用 system-config-packages 或redhat-config-packages ;
4、file.src.rpm 是做什么用的?
file.src.rpm 是源码包以rpm 包格式打包,了解一下file.src.rpm 也是有用的;
请参考:
《file.src.rpm 使用方法的简介》
《fedora-rpmdevtools 工具介绍》
fedora-rpmdevtools 是一款Fedora的RPM包的开发工具,用于Fedora Core 2.0 以上版本;
一、fedora-rpmdevtools 介绍;
用于制作RPM包的工具,为开发者提供了极大的方便;比如创建rpmbuild开发树;MD5验证;spec 文件的生成;解压归档文件;归档文件前后版本对比diff 等;
二、fedora-rpmdevtools 的安装;
请用yum 或apt 在线安装;
[root@localhost ~]# yum install fedora-rpmdevtools
或
[root@localhost ~]# apt-get install fedora-rpmdevtools
软件包的安装和管理,请参见: 《Fedora / Redhat 软件包管理指南》
三、fedora-rpmdevtools 包含工具;
fedora-buildrpmtree Create RPM build tree within user's home directory
fedora-installdevkeys Install GPG keys in alternate RPM keyring
fedora-kmodhelper Helper script for building kernel module RPMs
fedora-md5 Display the md5sum of all files in an RPM
fedora-newrpmspec Creates new .spec from template
fedora-rmdevelrpms Find (and optionally remove) "development" RPMs
fedora-rpmchecksig Check package signatures using alternate RPM keyring
fedora-rpminfo Prints information about executables and libraries
fedora-rpmvercmp RPM version comparison checker
fedora-extract Extract various archives, "tar xvf" style
fedora-diffarchive Diff contents of two archives
fedora-wipebuildtree Erase all files within dirs created by buildrpmtree
spectool Expand and download sources and patches in specfiles
附录:
《Fedora / Redhat 软件包管理指南》
二、软件包管理工具;
1、system-config-packages ;
再重提一下这个工具,放在软件包基础中显示极重要性,放在这里再提一下也适合;
请参考: 《Fedora 软件包管理器system-config-packages》
2、yum 在线更新软件包,也能管理本地已经安装的软件包工具;
Fedora/Redhat 由于有yum 和apt,这两个强大的在线更新工具以及Fedora 扩充计划的推出,才使其有了第二生命力;yum和apt工具能自动解决依赖关系;常期以来由于软件包的依赖关系不能得到很好的解决,使很多Fedora / Redhat 用户投入到更容易解决软件包依赖的发行版;yum 和apt 无疑是Fedora / Redhat 强心剂;
本条目归类yum ,请参考相关yum的文档;
《Fedora/Redhat 在线安装更新软件包,yum 篇》
在本文中,我们主要解介绍 Fedora core 4.0 通过软件包管理工具yum来在线安装更新软件;关于apt工具应用,我们会在另外一篇中介绍;
一、 yum 的使用;
有些初学Linux的弟兄可能问,为什么不用系统自带的图形化工具up2date来升级,却要用 yum呢。其实大家用一用就知道了,up2date 真是奇慢无比,而且经常失去响应;造成机器假死的情况。所以我们还是试一试yum ;另外freshrpms.net 可能比官方站更快的更新升级源,也没有理由不用 yum;
1、首先我们要到下面的地址下载与自己系统相对应的版本的 yum;
http://ayo.freshrpms.net/
比如我用的是Fedora core 4.0 就下载如下的包安装;
[root@localhost beinan]# rpm -ivh freshrpms-release-1.1-1.fc.noarch.rpm
warning: freshrpms-release-1.1-1.fc.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e42d547b
Preparing... ########################################### [100%]
1:freshrpms-release ########################################### [100%]
2、安装软件举例;
比如我要安装能听mp3的 bmp-mp3,只要输入下面的命令行即可,系统就自己工作了;
[root@localhost beinan]# yum install bmp-mp3
内容全景如下:
[root@localhost beinan]# yum install bmp-mp3
Setting up Install Process
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 42 kB 00:03
freshrpms : ################################################## 122/122
Added 122 new packages, deleted 0 old in 0.72 seconds
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for bmp-mp3 to pack into transaction set.
bmp-mp3-0.9.7-1.2.fc4.i38 100% |=========================| 2.9 kB 00:00
---> Package bmp-mp3.i386 0:0.9.7-1.2.fc4 set to be updated
--> Running transaction check
--> Processing Dependency: libid3-3.8.so.3 for package: bmp-mp3
--> Processing Dependency: libbeep.so.2 for package: bmp-mp3
--> Processing Dependency: bmp >= 0.9.7 for package: bmp-mp3
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for id3lib to pack into transaction set.
id3lib-3.8.3-11.fc4.i386. 100% |=========================| 38 kB 00:05
---> Package id3lib.i386 0:3.8.3-11.fc4 set to be updated
---> Downloading header for bmp to pack into transaction set.
bmp-0.9.7-10.fc4.i386.rpm 100% |=========================| 14 kB 00:03
---> Package bmp.i386 0:0.9.7-10.fc4 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
bmp-mp3 i386 0.9.7-1.2.fc4 freshrpms 95 k
Installing for dependencies:
bmp i386 0.9.7-10.fc4 extras 912 k
id3lib i386 3.8.3-11.fc4 extras 752 k
Transaction Summary
=============================================================================
Install 3 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 1.7 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): id3lib-3.8.3-11.fc 100% |=========================| 752 kB 01:04
(2/3): bmp-0.9.7-10.fc4.i 100% |=========================| 912 kB 02:14
(3/3): bmp-mp3-0.9.7-1.2. 100% |=========================| 95 kB 00:05
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: bmp ######################### [1/3]
Installing: id3lib ######################### [2/3]
Installing: bmp-mp3 ######################### [3/3]
Installed: bmp-mp3.i386 0:0.9.7-1.2.fc4
Dependency Installed: bmp.i386 0:0.9.7-10.fc4 id3lib.i386 0:3.8.3-11.fc4
Complete!
注:yum优点:软件包依赖关系自行解决,比如上面的,我们可以看到本来我们只安装的是bmp-mp3,结果yum 安装也安装了 id3lib ;bmp
二、yum的一点小用法;
1、查询软件包;
面对成千上万的软件,我们可能无从下手,有时也不知道它的文件名;这时就要用到查询;我们可以用 yum list 来列出yum升级源上的包有文件;然后我们再来查看 info
有以下几个组合可以用;比如;
[root@localhost beinan]# yum list |more
加上一个管道 |,然后 more 一下,就能把所有的包分页显示出来。然后按一下空格键就能看下一页了。在显示的软件列表中,会有软件名称、版本、是否安装等;仔细的看一下吧。熟悉了就好了。也没有什么难的。
[root@localhost beinan]# yum list |more
Setting up repositories
Reading repository metadata in from local files
Installed Packages
4Suite.i386 1.0-8.b1 installed
Canna.i386 3.7p3-13 installed
Canna-devel.i386 3.7p3-13 installed
如果想知道软件的详细信息,可能得用上info参数了。比如:
用法:
[root@localhost beinan]# yum info 软件名
比如:
[root@localhost beinan]# yum info bmp-mp3
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
Installed Packages
Name : bmp-mp3
Arch : i386
Version: 0.9.7
Release: 1.2.fc4
Size : 234 k
Repo : freshrpms
Summary: MP3 playback plugin for the Beep Media Player
Description:
This package contains an MP3 playback plugin for BMP (Beep Media Player),
a media player that uses a skinned user interface based on Winamp 2.x skins,
and is based on ("forked off") XMMS.
在上面的例子中,如果Repo : freshrpms是这样的,表示您的系统没有安装这个软件,如果显示的是:Repo : installed,表示已经安装了。
查询软件包,也可以再加参数 grep ,比如我们想查询升级源上是否有内核的新版本,则我们可以用下面的命令查询;当然您也可以用 [root@localhost beinan]# yum search kernel |more ,也就是yum --help提供的参数,也是一样的;
[root@localhost beinan]# yum list |grep kernel
我们看一下机器工作的结果,如下:
[root@localhost beinan]# yum list |grep kernel
GFS-kernel.i686 2.6.11.8-20050601.1526 installed
cman-kernel.i686 2.6.11.5-20050601.1526 installed
dlm-kernel.i686 2.6.11.5-20050601.1526 installed
gnbd-kernel.i686 2.6.11.2-20050420.1331 installed
kernel.i686 2.6.11-1.1369_FC4 installed
kernel-devel.i686 2.6.11-1.1369_FC4 installed
kernel-doc.noarch 2.6.11-1.1369_FC4 installed
GFS-kernel.i586 2.6.11.8-20050601.1526 base
GFS-kernel-debuginfo.i686 2.6.11.8-20050601.1526 updates-released
GFS-kernel-debuginfo.i586 2.6.11.8-20050601.1526 updates-released
GFS-kernel-smp.i686 2.6.11.8-20050601.1526 base
GFS-kernel-xen0.i686 2.6.11.8-20050601.1526 base
GFS-kernel-xenU.i686 2.6.11.8-20050601.1526 base
cman-kernel.i586 2.6.11.5-20050601.1526 updates-released
cman-kernel.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-debuginfo.i586 2.6.11.5-20050601.1526 updates-released
cman-kernel-debuginfo.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-smp.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-xen0.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-xenU.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel.i586 2.6.11.5-20050601.1526 updates-released
dlm-kernel-debuginfo.i586 2.6.11.5-20050601.1526 updates-released
dlm-kernel-debuginfo.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel-smp.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel-xen0.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel-xenU.i686 2.6.11.5-20050601.1526 updates-released
gnbd-kernel.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel.i586 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-debuginfo.i586 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-debuginfo.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-smp.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-xen0.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-xenU.i686 2.6.11.2-20050420.1331 updates-released
kernel.i586 2.6.12-1.1398_FC4 updates-released
kernel.i686 2.6.12-1.1398_FC4 updates-released
kernel-debuginfo.i686 2.6.12-1.1398_FC4 updates-released
kernel-debuginfo.i586 2.6.12-1.1398_FC4 updates-released
kernel-devel.i586 2.6.12-1.1398_FC4 updates-released
kernel-devel.i686 2.6.12-1.1398_FC4 updates-released
kernel-doc.noarch 2.6.12-1.1398_FC4 updates-released
kernel-smp.i686 2.6.12-1.1398_FC4 updates-released
kernel-smp-devel.i686 2.6.12-1.1398_FC4 updates-released
kernel-xen0.i686 2.6.12-1.1398_FC4 updates-released
kernel-xen0-devel.i686 2.6.12-1.1398_FC4 updates-released
kernel-xenU.i686 2.6.12-1.1398_FC4 updates-released
kernel-xenU-devel.i686 2.6.12-1.1398_FC4 updates-released
上面的确显示出一大堆与内核有关的, installed表示我们的系统已经安装了;
咱们看前一列吧,看一下名字就能猜个差不多;比如 doc 肯定和内核文档有关了;smp是多处理器的内核;其它的我不懂了,请想知道的弟兄用 info来看吧。
比如我们用的机器是单处理器的X86机,想看一下是否有新内核可用。所以咱们试一下下面的这个。看是否已经有了新内核可以升级的;
[root@localhost beinan]# yum info kernel.i686
[root@localhost beinan]# yum info kernel.i686
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
Installed Packages
Name : kernel
Arch : i686
Version: 2.6.11
Release: 1.1369_FC4
Size : 37 M
Repo : installed
Summary: Linux 内核(Linux 操作系统的核心)。
Description:
kernel 软件包包含 Linux 内核 (vmlinuz),Red Hat Linux
操作系统的核心。内核处理操作系统的基本功能:
分配内存、处理分配、设备的输入和输出等等。
Available Packages
Name : kernel
Arch : i686
Version: 2.6.12
Release: 1.1398_FC4
Size : 14 M
Repo : updates-released
Summary: The Linux kernel (the core of the Linux operating system)
Description:
The kernel package contains the Linux kernel (vmlinuz), the core of any
Linux operating system. The kernel handles the basic functions
of the operating system: memory allocation, process allocation, device
input and output, etc.
通过上面的信息,我们可以看到 2.6.11的是已经安装了,因为已经显示的是Repo : installed ,下面还有一个Version: 2.6.12 ,告诉我们是Repo : updates-released,看来这个是升级用的了。
所以是否升级就看我们的了。
[root@localhost beinan]# yum update kernel
升级内核全景如下:
[root@localhost beinan]# yum update kernel
Setting up Upgrade Process
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for kernel to pack into transaction set.
kernel-2.6.12-1.1398_FC4. 100% |=========================| 174 kB 00:18
---> Package kernel.i686 0:2.6.12-1.1398_FC4 set to be installed
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
kernel i686 2.6.12-1.1398_FC4 updates-released 14 M
Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 14 M
Is this ok [y/N]:
是不是升级,只需要在 Is this ok [y/N]:行的后面输入y或者N;y是yes,就是点头同意的意思;N就是摇头No的意思。
对于软件包的查询,还有,比如:
[root@localhost beinan]# yum list available 列出所有升级源上的包;
[root@localhost beinan]# yum list updates 列出所有升级源上的可以更新包;
[root@localhost beinan]# yum list installed 列出已经安装的包;
yum 的命令支持通配符; 比如;
[root@localhost beinan]# yum list mp* |more
Setting up repositories
Reading repository metadata in from local files
Installed Packages
mpage.i386 2.5.4-5 installed
Available Packages
mpc.i386 0.11.2-3 extras
mpeg2dec.i386 0.4.0-5b.2.fc4 freshrpms
mpeg2dec-devel.i386 0.4.0-5b.2.fc4 freshrpms
mpg321.i386 0.2.10-6.2.fc4 freshrpms
mplayer.i386 1.0-0.16.pre7.2.fc4 freshrpms
mplayer-docs.i386 1.0-0.16.pre7.2.fc4 freshrpms
mplayer-fonts.noarch 1.1-3.fc freshrpms
mplayer-skins.noarch 1.7-1.fc freshrpms
[root@localhost beinan]#
2.安装和升级软件包;
安装和升级分别是 install 和 update 参数;比如;
[root@localhost beinan]# yum update firefox
这样我们就可以升级 firefox了。
[root@localhost beinan]# yum update firefox
Setting up Update Process
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:03
freshrpms 100% |=========================| 951 B 00:02
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package firefox.i386 0:1.0.6-1.1.fc4 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Updating:
firefox i386 1.0.6-1.1.fc4 updates-released 18 M
Transaction Summary
=============================================================================
Install 0 Package(s)
Update 1 Package(s)
Remove 0 Package(s)
Total download size: 18 M
Is this ok [y/N]:
如果不加参数的 update 会是什么呢??
[root@localhost beinan]# yum update
试着运行一下看看?会好长时间,对系统进行全面更新,我们要进行y和N了。
3.移除软件包要用到remove参数;比如;
[root@localhost beinan]# yum remove bmp-mp3
内容全景如下:
[root@localhost beinan]# yum remove bmp-mp3
Setting up Remove Process
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package bmp-mp3.i386 0:0.9.7-1.2.fc4 set to be erased
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Removing:
bmp-mp3 i386 0.9.7-1.2.fc4 installed 234 k
Transaction Summary
=============================================================================
Install 0 Package(s)
Update 0 Package(s)
Remove 1 Package(s)
Total download size: 0
Is this ok [y/N]:
按y就移除了;
三、yum的图形工具;
请参见: 《软件在线升级更新yum 图形工具介绍》
四、yum的帮助;
在论坛中有好多,有兴趣的弟兄自己找找看吧;但也不要忘记了自救;呵。。。。
[root@localhost beinan]# yum --help
Usage: yum [options] < update | install | info | remove | list |
clean | provides | search | check-update | groupinstall |
groupupdate | grouplist | groupinfo | groupremove |
makecache | localinstall | shell >
Options:
-c [config file] - specify the config file to use
-e [error level] - set the error logging level
-d [debug level] - set the debugging level
-y - answer yes to all questions
-R [time in minutes] - set the max amount of time to randomly run in
-C run from cache only - do not update the cache
--installroot=[path] - set the install root (default '/')
--version - output the version of yum
--exclude=package to exclude
--disablerepo=repository id to disable (overrides config file)
--enablerepo=repository id to enable (overrides config file)
-h, --help - this screen
还有更厉害的帮助;
[root@localhost beinan]#man yum
yum 是Fedora/Redhat 软件包管理工具,包括文本命令行模式和图形模式;图形模式的yum也是基于文本模式的;目前yum图形前端程序主要有 yumex和kyum ;
一、yum 在线安装、移除、更新及管理rpm软件包工具;
我们除了系统提供的软件包管理工具 system-config-packages ,但这个软件包管理工具,只能用于系统安装盘提供的软件的管理;
Fedora也提供了 up2date升级工具,但这个工具明显无任何优势;升级速度慢,效率低下,大多人是忍受不了 up2date折磨的;
yum 工具是Fedora 推荐使用的在线升级更新软件包的工具,在安装系统时,一般都是默认安装;yum 是一个命令行式的工具,如果您不习惯命令行式的yum,您可以用yumex和kyum;
yumex和kyum并不是独立于yum的,而是yum的图形前端,也就是说,我们在安装和使用yumex和kyum同时,都是以yum的安装和配置为基础;您在用yumex或kyum 时,必须先安装配置yum ;
做为初学者,如何使用yum及yum的资源,拜请您读以下文档;
1、《Fedora/Redhat 在线安装更新软件包,yum 篇》
二、安装yumex;
注:您在用yumex或kyum 时,必须先安装配置yum ;请看前面提到的文章;
如果您用 kde桌面,您可以用kyum,yunex和kyum二者任选其一,找一个自己习惯的就行;
1、yumex 的安装和使用;
首先确认系统是不是有yumex
[root@localhost beinan]# rpm -q yumex
yumex-0.42-3.0.fc4
如果没有类似的输出,请用下面的命令安装,前提是您已经完成了前面说的yum的配置;
[root@localhost beinan]# yum install yumex
2、yumex的调用:
[beinan@localhost ~]# yumex
3、yumex的操作;会点鼠标就会用 yumex
三、安装kyum ;
注:yumex 和kyum您只需选择一个适合您的就行,没有必要两个都安装,不过尝试一下再做选择也好;
1、安装kyum ;
[root@localhost beinan]# yum install kyum
2、调用kyum ;
[root@localhost beinan]# kyum
3、用法图示;
四、关于yum补充:
如果您想要深入了解yum ,您必须到查看yum主页上的文档;
yum主页地址:
http://www.linux.duke.edu/projects/yum
后记:至此yum基础文档就差不多完成了,我写了一系列的教程;软件包管理基础的东西差不多就这些;如果您在教程发现您所要的东西没有,就看man;
附录一:
安装软件时,最好用各自发行版所提供的系统软件包管理工具,对于Fedora/Redhat 您可以参考如下文章;
0)RPM 基础 《RPM 的介绍和应用》
1)Fedora 系统管理软件包工具 system-config-packages,方便的添加和移除系统安装盘提供的软件包,详情请看 《Fedora 软件包管理器system-config-packages》
2)Redhat 系统管理软件包工具,新一点的系统应该是 redhat-config-packages ,用法和 《Fedora 软件包管理器system-config-packages》 一样;
3)apt + synaptic 软件包在线安装、移除、升级工具; 用法:《用apt+synaptic 在线安装或升级Fedora core 4.0 软件包》
4)yum 软件包在线安装、升级、移除工具;用法:《Fedora/Redhat 在线安装更新软件包,yum 篇》
5)所有的yum和apt 教程 《apt and yum》
提示:目前 apt和yum 已经极为成熟了,建议我们安装软件时采用 apt或者yum ;如果安装系统盘提供的软件包,可以用 system-config-packages 或redhat-config-packages ;
《Fedora Extras(Fedora 计划的扩充资源) rpm.livna.org软件仓库的介绍和应用》
在Red Hat或者其它基于RPM的操作系统中安装或者更新软件时,我们经常会被一些莫名其妙的错误提示所困扰。即便是使用Red Hat提供的基于GUI的管理工具,这个问题也没有彻底解决。事实上,绝大部分的问题,都出在了各个软件包的关联性问题上。很显然,这是RPM软件包管理工具存在着一些不足。
Yum是一个针对RPM操作系统的非常方便的自动升级和软件包管理工具。Yum会自动计算出程序之间的相互关联性,并且计算出完成软件包的安装需要哪些步骤。对于那些管理着大量机器的系统管理员来说,这意味着不需要通过RPM手工来升级每一台机器。在安装软件时,也不会再被那些关联性问题所困扰。
在Red Hat中,有一个专门用于软件包升级的工具—Up2Date。在缺省情况下,它也是Fedora Core1中的RPM软件包管理工具。这是一个很直观的,基于GUI的软件包管理工具。遗憾的是,它在使用过程中经常会出错,并且也不够灵活。
Yum可以代替Up2Date,或者作为其一个补充。实践发现,Yum不仅速度更快,更加可靠,而且还提供了很多其它工具所没有提供的功能,比如:
◆ 多个软件仓库
◆ 简单的配置文件
◆ 正确的依赖性检查
◆ somps.xml组支持
◆ 简单的界面
如前所述,Yum不仅可以让系统上已经安装的软件包处于最新状态,也可用于直接安装软件包。现实中,经常会碰到的问题之一就是,无法找到足够的光盘存储一些需要的软件包。而使用Yum,可以直接从网上下载安装软件包。
缺省情况下,Yum已经被安装到了Fedora Core 1中,如果系统没有安装这个工具,可以直接从光盘安装,也可以从以下位置下载Yum的RPM包,并安装:
http://mirrors.kernel.org/fedora/core/1/i386/os/Fedora/RPMS/
配置Yum
在使用Yum之前,我们要编辑/etc/yum.conf配置文件,更改其中指明所使用的软件仓库服务器的位置。下面是缺省情况下该文件的内容:
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=fedora-release
tolerant=1
exactarch=1
[base]
name=Fedora Core $releasever - $basearch - Base
baseurl=http://fedora.redhat.com/releases/fedora-core-$releasever
[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://fedora.redhat.com/updates/released/fedora-core-$releasever
#[updates-testing]
#name=Fedora Core $releasever - $basearch - Unreleased Updates
#baseurl=http://fedora.redhat.com/updates/testing/fedora-core-$releasever
缺省情况下,Yum使用的是Fedora Core1主下载服务器。因为使用这个服务器的人实在是太多,所以速度比较慢。如果需要的话,我们可以将Yum设置成其它的镜像站点。请到http://fedora.redhat.com/download/mirrors.html查看可用的镜像站点。
一般来说,我们都会选择在地理上与自己比较接近的站点,这通常有利于加快下载的速度(当然情况也并不总是如此)。
在本例中,我选择mirrors.kernel.org作为升级站点。以root身份编辑/etc/yum.conf文件,将[base]和[updates-released]章节的内容改成下面的内容:
[base]
name=Fedora Core $releasever - $basearch - Base
baseurl=http://mirrors.kernel.org/fedora/core/$releasever/$basearch/os
[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://mirrors.kernel.org/fedora/core/updates/$releasever/$basearch
当然,根据所选择的站点不同,上述章节的内容也不同。对于文件中的[updates-testing]部分则不用对其进行更改,因为一般来说,在升级和安装软件包时并不需要使用它。
除了编辑yum.conf文件外,还需要更改/etc/sysconfig/rhn/sources文件,使用所选择的镜像站点来代替文件的内容:
yum fedora-core-1 http://mirrors.kernel.org/fedora/core/1/i386/os
yum updates-released http://mirrors.kernel.org/fedora/core/updates/1/i386
使用Yum
使用Yum要做的第一件事情是更新其RPM header(文件头)列表。每一个RPM都有一个header,其中包含了完整的文件列表、软件包描述、实现的功能和提供的库、所需要的东西以及有什么冲突。Yum正是使用这些信息来决定如何升级和安装软件包的。
下面就来解决这个问题,输入以下命令:
yum check-update
运行这个命令,Yum将从yum.conf文件中指定的软件包服务器上下载当前的完整header文件列表。这个过程通常需要花费一定的时间,并且会有如下的一些显示信息:
Gathering header information file(s) from server(s)
Server: Fedora Core 1 - i386 - Base
Server: Fedora Core 1 - i386 - Released Updates
Finding updated packages
Downloading needed
headers
getting /var/cache/yum/updates-released
/headers/pango-0-1.2.5-4.i386.hdr
pango-0-1.2.5-4.i386.hdr
100% |=======| 6.5 kB 00:02
......
当上述的步骤完成之后,说明Yum已经下载完了所有的header文件。如果想让现在系统上安装的所有软件都处于最新的状态,只需使用以下命令:
yum update
Yum会将现在系统上安装的所有软件和目前的软件仓库服务器上的软件进行比较,比较完成后,它会给出一个有关细节的信息列表让用户确认,列表的内容如下所示:
Gathering header information file(s) from server(s)
Server: Fedora Core 1 - i386 - Base
Server: Fedora Core 1 - i386 - Released Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
Dependencies resolved
I will do the following:
[install: kernel 2.4.22-1.2188.nptl.i686]
[update: pango 1.2.5-4.i386]
......
[update: XFree86-font-utils 4.3.0-55.i386]
Is this ok [y/N]:y
在本例中,Yum告诉我有76个可用更新(因为我进行测试的系统在安装完Fedora以后还从来没有更新过)。要安装所有这些更新,所要做的只是输入“y”即可。如果想更新的只是某一个特定的软件,可以将上述命令稍做修改:
yum update nmap
会看到如下所述的内容:
Gathering header information file(s) from server(s)
Server: Fedora Core 1 - i386 - Base
Server: Fedora Core 1 - i386 - Released Updates
Finding updated packages
Downloading needed headers
No Packages Available for Update
No actions to take
在上述的例子中,Yum告诉我,我的系统上的nmap已经是最新版本了,因此无需进行任何升级。下面我们来看一看如何安装一个机器上没有的软件包,比如要安装的是XChat IRC客户端,只需要输入以下命令即可:
yum install xchat
可能会看到如下信息:
Gathering header information file(s) from server(s)
Server: Fedora Core 1 - i386 - Base
Server: Fedora Core 1 - i386 - Released Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
Dependencies resolved
I will do the following:
[install: xchat 1:2.0.7-1.FC1.0.i386]
Is this ok [y/N]:
按“y”就可以进行软件的安装,会出现下列内容提示安装成功:
Getting xchat-2.0.7-1.FC1.0.i386.rpm
xchat-2.0.7-1.FC1.0.i386.
100% |==========| 1.1 MB 01:51
Running test transaction:
Test transaction complete, Success!
xchat 100 % done 1/1
Installed: xchat 1:2.0.7-1.FC1.0.i386
Transaction(s) Complete
虽然我的机器上的namp已经不需要再进行升级,不过我还想为其安装一个GUI界面,但又不知道需要什么软件包,这时只需要输入以下命令:
yum search nmap gui
可能看到的内容如下:
Gathering header information file(s) from server(s)
Server: Fedora Core 1 - i386 - Base
Server: Fedora Core 1 - i386 - Released Updates
Finding updated packages
Downloading needed headers
Looking in available packages for a providing package
Available package: redhat-config-printer-gui.i386
0:0.6.79.5-1 from updates-released matches with
redhat-config-printer-gui
Available package: nmap.i386 2:3.48-1
from base matches with nmap
Available package: nmap-frontend.i386
2:3.48-1 from base matches with
Available package: nmap-frontend.i386
2:3.48-1 from base matches with nmap-frontend
......
2 results returned
如
《Freshrpms.net 资源介绍,及yum 和apt 的应用》
Freshrpms.net 是Fedora 、Redhat及Yellowdog的重要补充资源;也是我们安装完成系统后,重要软件升级资源和补充;面对初学Linux的弟兄,我们有必要把这个极为重要的资源做以简要介绍,并对软件包管理工具apt和yum 在 Freshrpms.net 的运用作一介绍;有些内容也有必要翻译过来,虽然翻译量并不是太大。
一、Freshrpms.net 上对应的发行版附加扩展资源导航;
1、软件仓库
Fedora Linux 4.0 附加软件包仓库
Fedora Linux 3.0 附加软件包仓库
Fedora Linux 2.0 附加软件包仓库
Fedora Linux 1.0 软件包附加仓库
Yellow Dog Linux 附加软件包仓库;
Redhat Linux 附加软件包仓库
RPM包测试版本仓库
Freshrpms.net 的FTP,包括所有的软件包
特别说明:YellowDog 是一个在Redhat/Fedora 为基础开发的发行版本,是Powerpc架构机器运行的版本;
2、Freshrpms.net 的GPG签名;
GPG签名是用来验证软件包的完整性和安全性, 对于系统安全比较重要,在使用Freshrpms.net 的软件包时,需要把站上的GPG签名导入;
http://freshrpms.net/RPM-GPG-KEY-freshrpms
导入方法:
[root@localhost beinan]# rpm --import http://freshrpms.net/RPM-GPG-KEY-freshrpms
3、Freshrpms.net 提供由源码包file.tar.gz、file.tar.bz2 或 file.src.rpm 编译file.rpm包的file.spec 脚本文件;
地址在:http://svn.rpmforge.net/svn/trunk/rpms
file.src.rpm 和file.spec 文件的用法,请参见《src.rpm 使用方法的简单介绍》
二、Freshrpms.net 软件仓库通过apt和yum的应用;
Freshrpms.net 不仅提供了我们多种的查询方式,比如直接到其站上查询,当然也可以通过yum和apt软件包管理工具来查询安装;
1、针对发行版本不同,Freshrpms.net 提供了各版本的apt和yum包;我们通过在自己的系统上安装yum或apt就能直接在本地机上安装和升级软件包;
yum和apt是两个完全不同的工具,但达到的目的是相同的;哪个工具好用,我们就用哪个;有人喜欢用yum,也有人喜欢用apt ,这一切决定权在您的手中;
2、下载apt和yum软件包管理工具的提示:你需要的是最好的软件包管理工具,无需两个都下载安装;
1]apt的安装和使用:
A)apt的安装;
如果没有rpm -q apt的任何输出,请根据自己所用的系统和版本,点击下面的链接来查找下载;比如我用Fedora 4.0 ,并且我的机器是普通的X86机,而不是x86_64,更不是POWERPC,我就应该在i386的目录中查看;我们会发现有apt-0.5.15cnc7-6.fc4.i386.rpm ,不要下载devel的;更不要到SRPMS目录下载,前面说过了src.rpm 是源码包的rpm格式;
[root@localhost beinan]# rpm -q apt apt-0.5.15cnc7-6.fc4
安装方法:
[root@localhost beinan]# rpm -vih apt*.rpm
B)导入签名:安装好后apt要导入GPG签名,方法前面有提到;
添加源到/etc/apt/sources.lst ;
rpm http://rpm.livna.org/ fedora/4/i386 lvn rpm http://ayo.freshrpms.net/ fedora/linux/4/i386 core extras updates freshrpms rpm-src http://rpm.livna.org/ fedora/4/i386 lvn
注:这是Fedora 4.0的,如果您用的是以前的版本,请看《apt的sources.list》
C) apt的用法实例:
注:如果您也想用 apt的图形界面工具 synaptic ,请到下面列出的发行版的地址去找,自己安装上就行了;
D)各发行版本所对应的apt包,自己点几下鼠标就找到了;
下载针对Fedora Core 的apt包;
- Fedora Linux 4 (rpm 4.4.x) - not pre-configured
- Fedora Linux 3 (rpm 4.3.x)
- Fedora Linux 2 (rpm 4.3.x)
- Fedora Linux 1 (rpm 4.2.x)
下载针对Redhat 针对的apt软件包;
- Red Hat Linux 9 (rpm 4.2.x)
- Red Hat Linux 8.0 (rpm 4.1.x)
- Red Hat Linux 7.3 (rpm 4.0.4)
- Red Hat Linux 7.2 (rpm 4.0.4 - updated) (rpm 4.0.3 - original)
- Red Hat Linux 7.0 (rpm 4.1.x - updated) (rpm 4.0.4 - last official update)
- Red Hat Linux 6.2 (rpm 4.0.2 - updated)
下载针对Yellow Dog Linux的apt软件包;
- Yellow Dog Linux 4.0 (rpm 4.3.x)
- Yellow Dog Linux 3.0 (rpm 4.1.x)
- Yellow Dog Linux 2.3 (rpm 4.1.x - updated)
注意:
如果您用的系统版本低于Redhat 7.2,上面的列表中有的提到的 rpm 版本的,如果您的rpm 版本与上面的不符合,还得升级rpm 软件包;方法是点击他所提到的地址,下载文件名以 rpm 开始的,然后 rpm -Uvh rpm*.rpm ;
如果您用的版本高于Redhat 7.2,就没有必要升级rpm 的版本;
2]yum的安装和使用;
1)yum 的安装和应用;
[root@localhost beinan]# rpm -q yum yum-2.3.2-7
如果yum的任何提示,请到下面的地址下载与自己系统相对应的yum来安装;
安装方法:
[root@localhost beinan]#rpm -ivh yum*.rpm
2)导入Freshrpms.net 的仓库地址:
下载安装:可以到下面所提到的地址下载相应的包;比如我用的是Fedora 4.0 ,应该到如下地址:
http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/4/freshrpms-release
下载这个包:
freshrpms-release-1.1-1.fc.noarch.rpm
安装:
[root@localhost beinan]#rpm -ivh freshrpms-release-1.1-1.fc.noarch.rpm
安装好后,会在/etc/yum.repos.d/ 出现 freshrpms.repo 文件;自己列一下目录就明白了;
[beinan@localhost ~]$ ls /etc/yum.repos.d/
3) 导入GPG签名:
[root@localhost beinan]# rpm --import http://freshrpms.net/RPM-GPG-KEY-freshrpms
4) yum用法的实例:《Fedora/Redhat 在线安装更新软件包,yum 篇》
下载针对Fedora Core 的yum包;
- Fedora Linux 4 - Included, just install freshrpms-release
- Fedora Linux 3 - Included, just install freshrpms-release
- Fedora Linux 2 (rpm 4.3.x, python 2.3.x)
- Fedora Linux 1 (rpm 4.2.x, python 2.2.x)
下载针对Redhat 针对的yum软件包;
- Red Hat Linux 9 (rpm 4.2.x, python 2.2.x)
- Red Hat Linux 8.0 (rpm 4.1.x, python 2.2.x)
- Red Hat Linux 7.3 (rpm 4.0.4, python 1.5.2)
- Red Hat Linux 7.0 (rpm 4.1.x - updated, python 2.2.x)
下载针对Yellow Dog Linux的yum软件包;
- Yellow Dog Linux 3.0 (rpm 4.1.x, python 2.2.x)
- Yellow Dog Linux 2.3 (rpm 4.0.x - original, python 1.5.x)
- Yellow Dog Linux 2.3 (rpm 4.1.x - updated, python 2.2.x)
注意:如果您用的系统版本低于Redhat 7.2,上面的列表中有的提到的 rpm 版本的,如果您的rpm 版本与上面的不符合,还得升级rpm 软件包;方法是点击他所提到的地址,下载文件名以 rpm 开始的,然后 rpm -Uvh rpm*.rpm ;
如果您用的版本高于Redhat 7.2,就没有必要升级rpm 的版本;
后记:纯正入门教程,为初学者而写,希望对初学Linux的弟兄有所帮助;既使大家认为没有用,我就算当休闲娱乐;请弟兄们指正,谢谢~~
2、apt 在线更新软件包,也能管理本地已经安装的软件包工具;
apt+synaptic 小巧轻快,反应速度快,是最佳的搭档;
请参考下列文档;
《用apt+synaptic 在线安装或升级Fedora core 4.0 软件包》
apt是轻量级的在线安装升级的软件包管理系统,synaptic 是图形化的apt软件包管理工具。能够管理Fedora core 4.0 系统及升级源的所有的软件包;是一个极为方便的软件包管理工具;两者配合,效果最佳,最适合我等一无所知的菜鸟弟兄;
可能有的弟兄介绍过这个软件,我也把自己的使用经验和大家分享一下;主要是想为新手弟兄写一个一步到位的文档,最好对Linux一无所知的弟兄,也能一路OK 。
一、apt的安装和简单用法;
1、apt的安装;
#rpm -ivh http://ftp.freshrpms.net/pub/fedora/linux/extras/4/i386/apt-0.5.15cnc7-6.fc4.i386.rpm
2、导入GPG签名;
#rpm --import http://svn.rpmforge.net/svn/branches/rpms/matthias/apt/RPM-GPG-KEY.freshrpms
rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY
3、加Fedora core 4.0的源;
在/etc/apt/目录中找到 sources.list,在里面加如下的两行;
rpm http://ayo.freshrpms.net fedora/linux/4/i386 core extras updates freshrpms
rpm http://rpm.livna.org/ fedora/4/i386 lvn
4.apt 简单的应用;
1]安装和配置好apt的第一步是执行 apt-get update ,目的是来从apt源中取回软件包的列表;也就是我们上面说的那个sources.list提到的源;
[root@localhost beinan]# apt-get update
You don't seem to have one or more of the needed GPG keys in your RPM database.
Importing them now...
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386 release [1834B]
Fetched 1834B in 8s (222B/s)
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386/core pkglist [518kB]
Get:2 http://ayo.freshrpms.net fedora/linux/4/i386/core release [151B]
Get:3 http://ayo.freshrpms.net fedora/linux/4/i386/extras pkglist [1262kB]
Get:4 http://ayo.freshrpms.net fedora/linux/4/i386/extras release [155B]
Get:5 http://ayo.freshrpms.net fedora/linux/4/i386/updates pkglist [1107kB]
Get:6 http://ayo.freshrpms.net fedora/linux/4/i386/updates release [157B]
Get:7 http://ayo.freshrpms.net fedora/linux/4/i386/freshrpms pkglist [65.3kB]
Get:8 http://ayo.freshrpms.net fedora/linux/4/i386/freshrpms release [161B]
Fetched 2952kB in 59s (49.9kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done
2]安装、升级、移除软件包的用法;
a)软件包的安装;
[root@localhost beinan]# apt-get install 软件包名称
注:不要加版本号,软件名就好;
比如我们想安装或者升级firefox ,就可以直接用 apt-get install firefox ;
[root@localhost beinan]# apt-get install firefox
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be upgraded
firefox (1.0.4-4 => 1.0.6-1.1.fc4)
1 upgraded, 0 newly installed, 0 removed and 234 not upgraded.
Need to get 19.2MB of archives.
After unpacking 17.0kB of additional disk space will be used.
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386/updates firefox 0:1.0.6-1.1.fc4 [19.2MB]
Fetched 19.2MB in 6m25s (49.8kB/s)
Checking GPG signatures... ########################################### [100%]
Committing changes...
Preparing... ########################################### [100%]
1:firefox ########################################### [100%]
Done.
b)移除软件包;
[root@localhost beinan]# apt-get remove 软件包名
举例:
[root@localhost beinan]# apt-get remove firefox
c)对系统全面升级;
[root@localhost beinan]# apt-get upgrade
[root@localhost beinan]# apt-get dist-upgrade
这两个功能差不多;
d)常用的参数选项;
[root@localhost beinan]# apt-get install -y 软件包名
比如:
[root@localhost beinan]# apt-get install -y gaim
注:如果意外中断的包下载和安装,可以用-y参数来继续下载安装,如上面gaim我下载到10%,可以用上面的命令接着来下载安装或者升级;
[root@localhost beinan]# apt-get install -d 软件包名
比如:
[root@localhost beinan]# apt-get install -d
注:只是下载软件包,不解包,也不安装,下载到本地机的目录为 /var/cache/apt/archives
3]清理apt-get 后下载下来的包和未完成的包;
[root@localhost beinan]# apt-get clean
通过apt-get下载下来的包存放在 /var/cache/apt/archives目录中;有时我们中断一些正在apt-get 的包,这样的包没有完全下载下来;我们也可以清理掉;也可以用继续接着下载安装,也可以清理掉;
这样apt-get clean 就会删除 已经下载完成的位于/var/cache/apt/archives目录的所有包;也会清理掉下载未完成的包位于/var/cache/apt/archives/partial/
这个功能还是比较有用的,因为apt-get 下载和安装量极大,要定期清理;
二、synaptic的安装和用法;
相对 apt-get的命令行操作来说,synaptic的操作还是极为简单的;synaptic全是点鼠标可视化操作;我等菜鸟不必知道什么原理不原理的,原理是早早晚晚都会知道,这有个时间的过程;但我们得把自己想要安装的东西得安装上,好在LinuxSir.Org 灌水啊,哈哈;
1]安装:
[root@localhost beinan]# apt-get install synaptic
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
synaptic (0.57.2-1.fc4)
0 upgraded, 1 newly installed, 0 removed and 234 not upgraded.
Need to get 1682kB of archives.
After unpacking 4311kB of additional disk space will be used.
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386/extras synaptic 0.57.2-1.fc4 [1682kB]
Fetched 1682kB in 46s (36.2kB/s)
Checking GPG signatures... ########################################### [100%]
Committing changes...
Preparing... ########################################### [100%]
1:synaptic ########################################### [100%]
Done.
2]用法;简单吧;
想安装点什么就安装点什么吧;
建议:新手不要大规模的升级系统,要先安装和升级几个你想用的包;比如 xmms等;等手熟了,我们再大规模的升级和安装,但最好还是不要这样做,毕竟图形化的工具,有时会出现崩溃。所以还是小批量的比较好;
《Freshrpms.net 资源介绍,及apt 和yum 的应用》
fedora-rpmdevtools 是一款Fedora的RPM包的开发工具,用于Fedora Core 2.0 以上版本;
一、fedora-rpmdevtools 介绍;
用于制作RPM包的工具,为开发者提供了极大的方便;比如创建rpmbuild开发树;MD5验证;spec 文件的生成;解压归档文件;归档文件前后版本对比diff 等;
二、fedora-rpmdevtools 的安装;
请用yum 或apt 在线安装;
[root@localhost ~]# yum install fedora-rpmdevtools
或
[root@localhost ~]# apt-get install fedora-rpmdevtools
软件包的安装和管理,请参见: 《Fedora / Redhat 软件包管理指南》
三、fedora-rpmdevtools 包含工具;
fedora-buildrpmtree Create RPM build tree within user's home directory
fedora-installdevkeys Install GPG keys in alternate RPM keyring
fedora-kmodhelper Helper script for building kernel module RPMs
fedora-md5 Display the md5sum of all files in an RPM
fedora-newrpmspec Creates new .spec from template
fedora-rmdevelrpms Find (and optionally remove) "development" RPMs
fedora-rpmchecksig Check package signatures using alternate RPM keyring
fedora-rpminfo Prints information about executables and libraries
fedora-rpmvercmp RPM version comparison checker
fedora-extract Extract various archives, "tar xvf" style
fedora-diffarchive Diff contents of two archives
fedora-wipebuildtree Erase all files within dirs created by buildrpmtree
spectool Expand and download sources and patches in specfiles
总结;
如果您是初学者,对Linux一无所知,读完上面的一些文档,我感觉软件包管理,您可能就差不多入门了;至于对Linux系统管理的其它方面,还得慢慢来,比如用户、磁盘、网络、服务器等等;
后记:
对于软件包管理,可能没有后记可写了,我把初学者遇到的软件管理写的差不了;以后我会不定期的更新和维护这些文档;如果我的水平有所提高,可能会写一点关于软件包管理的新内容;至少目前没有这种能力 ;