Linux系统下软件包管理
xuejin38
|
1#
xuejin38 发表于 2007-08-01 14:08
Linux系统下软件包管理
Linux系统下软件包管理
提要: 在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础;只有我们学会软件包的管理才能谈得上其它的应用;软件包的安装、更新、查询,以及几个常用的软件包管理工具,比如 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、安装软件时,最好用各自发行版所提供的系统软件包管理工具; 1)Fedora 系统管理软件包工具 system-config-packages,方便的添加和移除系统安装盘提供的软件包; 2)Redhat 系统管理软件包工具,新一点的系统应该是 redhat-config-packages ,用法system-config-packages一样; 3)apt + synaptic 软件包在线安装、移除、升级工具; 4)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 后缀结尾的才行; 一)初始化rpm 数据库; 通过rpm 命令查询一个rpm 包是否安装了,也是要通过rpm 数据库来完成的;所以我们要经常用下面的两个命令来初始化rpm 数据库; [root@localhost]# rpm --initdb [root@localhost]# rpm --rebuilddb 注:这个要花好长时间; 注:这两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题; 二)RPM软件包管理的查询功能: 命令格式 rpm {-q|--query} [select-options] [query-options] RPM的查询功能是极为强大,是极为重要的功能之一; 1、对系统中已安装软件的查询; 1)查询系统已安装的软件; 语法:rpm -q 软件名 举例: [root@localhost]# 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 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]# 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 6)查看一个软件包的依赖关系 语法: 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]#rpm -vih file.rpm 注:这个是用来安装一个新的rpm 包; [root@localhost]#rpm -Uvh file.rpm 注:这是用来升级一个rpm 包; 如果有依赖关系的,请解决依赖关系,其实软件包管理器能很好的解决依赖关系,请看前面的软件包管理器的介绍;如果您在软件包管理器中也找不到依赖关系的包;那只能通过编译他所依赖的包来解决依赖关系,或者强制安装; 语法结构: [root@localhost]# rpm -ivh file.rpm --nodeps --force [root@localhost]# 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 ; 2、删除一个rpm 包; 首先您要学会查询rpm 包 ; [root@localhost]#rpm -e 软件包名 举例:我想移除lynx 包,完整的操作应该是: [root@localhost RPMS]# rpm -e lynx 如果有依赖关系,您也可以用--nodeps 忽略依赖的检查来删除。但尽可能不要这么做,最好用软件包管理器 systerm-config-packages 来删除或者添加软件; [root@localhost]# 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 九、src.rpm的用法: 可能会看到file.src.rpm 格式的软件包,但不知道如何使用;现简单介绍一下, 源码包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 文件,我们自己修改修改,就可以编译出与自己系统适合的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包; [root@localhost]# ls unrar* unrar-3.5.2-1.2.fc4.src.rpm unrar.spec 安装源码包unrar-3.5.2-1.2.fc4.src.rpm;看一看安装在哪了呢? [root@localhost]# rpm -ivh unrar-3.5.2-1.2.fc4.src.rpm 安装在这里: [root@localhost]# ls /usr/src/redhat/SOURCES/unrar unrar.1 unrarsrc-3.5.2.tar.gz 然后我们通过unrar.spec 来执行,其实他是一个写好的编译脚本; [root@localhost]# rpmbuild --ba unrar.spec 编译完成: [root@localhost]# ls /usr/src/redhat/RPMS/i386/ unrar-3.5.2-1.i386.rpm unrar-debuginfo-3.5.2-1.i386.rpm [root@localhost]# rpm -ivh /usr/src/redhat/RPMS/i386/unrar-3.5.2-1.i386.rpm Preparing... ########################################### [100%] 1:unrar ########################################### [100%] [root@localhost]# 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]# cp file.tar.gz /usr/src/redhat/SOURCES/ [root@localhost]# tar zxvf file.tar.gz [root@localhost]# cd filedir [root@localhost]# rpmbuild --ba file.spec 三、如果没有spec 文件,我应该怎么办? 如果您只是想安装这个软件,可以用下面的办法; [root@localhost]# tar zxvf file.tar.gz 或者 tar file.tar.bz2 [root@localhost]# cd filedir [root@localhost]# ./configure --help 注:可以用--help 来查看参数;如果您不懂如何加,一般就默认就好,试着编译几个就知道了; [root@localhost]# make [root@localhost]# make install [root@localhost]# make clean 有些软件只提供比较老的file.spec 文件,我们可以改造改造file.spec 文件,以适合软件的新版本;您也可以到 http://svn.rpmforge.net/svn/trunk/rpms 查找是不是有对应的file.spec 文件; 有些软件不提供file.spec 文件,并且您也在其实资源站上也找不到类似的文件,而且您还想从源码包打一个file.rpm 包和大家交流,那只好自己学习编写了; 2、system-config-packages 本地软件包管理工具; 如果您在安装系统时,把有些必要的软件忘记安装了,我们可以通过 system-config-packages 来安装;system-config-packages 是一个管理本地软件包的工具;更直接一点system-config-packages是通过系统安装盘来安装、移除软件;这个工具极为有用,能解决软件包之间的依赖关系;Redhat 软件包管理工具应该是 redhat-config-packages ,用法是一样的; 一、system-config-packages的安装和使用; 1、首先确认是不已经安装 system-config-packages [root@localhost]# rpm -qa system-config-packages system-config-packages-1.2.25-1 如果有上面的提示,就是已经安装; 如果没有安装,您可以通过如下的命令来安装: [root@localhost]# rpm -ivh system-config-packages* 2、运行system-config-packages [root@localhost]# system-config-packages --help Usage: system-config-packages [--help] [--tree=PATH] [--isodir=PATH] 我们可以看到 system-config-packages的帮助,可以看到system-config-packages支持iso补装或者删除软件包; 所以我们在运行这个命令时,要指定ISO的存放位置; [root@localhost]# system-config-packages --isodir=存放ISO光盘映像的目录; 所以根据自己系统的情况,用软件包管理器来添加和删除软件的命令是: [root@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]# mkdir /mnt/temp 然后我们来加载FC4的第一张ISO文件; [root@localhost]# mount -o loop /mnt/wind/FC4-i386-disc1.iso /mnt/temp/ [root@localhost]# 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 [root@localhost]# mkdir /mnt/hda10/fc40 [root@localhost]# cp -R /mnt/temp/* /mnt/hda10/fc40/ 然后我们再加载第二张ISO; [root@localhost]#umount /mnt/temp 注:先卸载第一个ISO; 我们加载第二个ISO;并和第一个ISO一样,把所有的文件提出来,放到和第一个ISO提出来的文件存放在同一个目录;如果遇到提示是不是覆盖文件,覆盖就行;第三张和第四张盘都是如此; 通过这个例子,我们知道提取出四张ISO内的所有文件都存放在 /mnt/hda10/fc40目录中。所以我们想查看Fedora Core 4.0所有的RPM包,就可以到 /mnt/hda10/fc40/Fedora/RPMS目录中查看,一个都不少,四张盘的都在; 如果想安装什么,就用 [root@localhost]#rpm -ivh file.rpm 注:file 是软件包的名字; 三、其它软件包管理器,具有在线升级、安装、移除软件包功能; 在Fedora 中,还有很两个软件包管理器yum 和apt; 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]# tar jxvf file.tar.bz2 [root@localhost]# tar zxvf file.tar.gz 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目录的安装文档了;里面都告诉我们如何安装; 2)编译安装软件的条件; 首先我们在Linux系统中至少得把开发工具安装上,比如gcc ;perl;python;glibc;gtk;make ;automake 等开发工具或基础包;还要安装一些相应的开发包,一般是文件名包括dev的,比如kernel-devel;还有一些开发库,比如以lib开头的;如果您在编译软件时,有时提示缺少什么东西之类的,大多少的是这些开发工具和开发库等;从光盘中找出安装就是了;有时可能也会用到源码包编译安装所依赖的包; 有时本来系统中已经安装了所依赖的包,但系统提示找不到应该怎么办?这时需要我们设置一下PKG_CONFIG_PATH的环境变量就行了; #export PKG_CONFIG_PATH=/usr/lib/pkgconfig 或 #export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 然后我们再来运行编译的./configure ;make ;make install 用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 ,应该是 [root@localhost]#/opt/fcitx/bin/fcitx 如果您想要让fcitx 只要执行fcitx ,就能调用,请配置环境变量,或者在/usr/bin 中做一个fcitx 的链接; 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驱动的安装就是这样的; [root@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 文件 [root@localhost]# chmod 755 file.bin [root@localhost]# ./file.bin 源码包及特殊格式的软件安装主要还是以软件的安装文档为准;安装软件时,如果只是简单的应用,如果有rpm包,尽可能的用rpm包;主要是方便和易于管理; 目前 apt和yum 已经极为成熟了,建议我们安装软件时采用 apt或者yum ;如果安装系统盘提供的软件包,可以用 system-config-packages 或redhat-config-packages ; 4、file.src.rpm 是做什么用的? file.src.rpm 是源码包以rpm 包格式打包,了解一下file.src.rpm 也是有用的; 上面有简单的介绍; 二、软件包管理工具; 1、system-config-packages ; 再重提一下这个工具,放在软件包基础中显示极重要性,放在这里再提一下也适合; 2、yum 在线更新软件包,也能管理本地已经安装的软件包工具; Fedora/Redhat 由于有yum 和apt,这两个强大的在线更新工具以及Fedora 扩充计划的推出,才使其有了第二生命力;yum和apt工具能自动解决依赖关系;常期以来由于软件包的依赖关系不能得到很好的解决,使很多Fedora / Redhat 用户投入到更容易解决软件包依赖的发行版;yum 和apt 无疑是Fedora / Redhat 强心剂; 我们用的是Redhat/Fedora通过在线安装更新软件包,除了系统自带的up2date以外,我们还有更为强大的在线升级工具 yum 和 apt-get 可用。主要资源有 freshrpms.net和 rpm.livna.org ; 一、 yum 的使用; 不用系统自带的图形化工具up2date来升级,却要用 yum是因为up2date 真是奇慢无比,而且经常失去响应;造成机器假死的情况。所以我们还是试一试yum ;另外freshrpms.net 可能比官方站更快的更新升级源,也没有理由不用 yum; 1、首先我们要到下面的地址下载与自己系统相对应的版本的 yum; http://ayo.freshrpms.net/ 比如我用的是Fedora core 4.0 就下载如下的包安装; [root@localhost]# 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]# yum install bmp-mp3 内容全景如下: [root@localhost]# 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]# yum list |more 在显示的软件列表中,会有软件名称、版本、是否安装等;仔细的看一下吧。熟悉了就好了。也没有什么难的。 [root@localhost]# 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]# yum info 软件名 比如: [root@localhost]# 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]# yum search kernel |more ,也就是yum --help提供的参数,也是一样的; [root@localhost]# yum list |grep kernel 我们看一下机器工作的结果,如下: [root@localhost]# 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 比如我们用的机器是单处理器的X86机,想看一下是否有新内核可用。所以咱们试一下下面的这个。看是否已经有了新内核可以升级的; [root@localhost]# 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]# yum update kernel 升级内核全景如下: [root@localhost]# 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; 对于软件包的查询,还有,比如: [root@localhost]# yum list available 列出所有升级源上的包; [root@localhost]# yum list updates 列出所有升级源上的可以更新包; [root@localhost]# yum list installed 列出已经安装的包; yum 的命令支持通配符; 比如; [root@localhost]# 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]# 2.安装和升级软件包; 安装和升级分别是 install 和 update 参数;比如; [root@localhost]# yum update firefox 这样我们就可以升级 firefox了。 [root@localhost]# 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]# yum update 试着运行一下看看?会好长时间,对系统进行全面更新,我们要进行y和N了。 3.移除软件包要用到remove参数;比如; [root@localhost]# yum remove bmp-mp3 内容全景如下: [root@localhost]# 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 在线安装、移除、更新及管理rpm软件包工具; 我们除了系统提供的软件包管理工具 system-config-packages ,但这个软件包管理工具,只能用于系统安装盘提供的软件的管理; Fedora也提供了 up2date升级工具,但这个工具明显无任何优势;升级速度慢,效率低下,大多人是忍受不了 up2date折磨的; yum 工具是Fedora 推荐使用的在线升级更新软件包的工具,在安装系统时,一般都是默认安装;yum 是一个命令行式的工具,如果您不习惯命令行式的yum,您可以用yumex和kyum; yumex和kyum并不是独立于yum的,而是yum的图形前端,也就是说,我们在安装和使用yumex和kyum同时,都是以yum的安装和配置为基础;您在用yumex或kyum 时,必须先安装配置yum ; 二、安装yumex; 注:您在用yumex或kyum 时,必须先安装配置yum ; 如果您用 kde桌面,您可以用kyum,yunex和kyum二者任选其一,找一个自己习惯的就行; 1、yumex 的安装和使用; 首先确认系统是不是有yumex [root@localhost]# rpm -q yumex yumex-0.42-3.0.fc4 如果没有类似的输出,请用下面的命令安装,前提是您已经完成了前面说的yum的配置; [root@localhost]# yum install yumex 2、yumex的调用: [root@localhost]# yumex 3、yumex的操作;会点鼠标就会用 yumex 三、安装kyum ; 注:yumex 和kyum您只需选择一个适合您的就行,没有必要两个都安装,不过尝试一下再做选择也好; 1、安装kyum ; [root@localhost]# yum install kyum 2、调用kyum ; [root@localhost]# kyum 3、用法图示; 四、关于yum补充: yum主页地址: http://www.linux.duke.edu/projects/yum 四、yum的帮助; [root@localhost]# 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]#man yum 3、apt 在线更新软件包,也能管理本地已经安装的软件包工具; apt+synaptic 小巧轻快,反应速度快,是最佳的搭档; apt是轻量级的在线安装升级的软件包管理系统,synaptic 是图形化的apt软件包管理工具。能够管理Fedora core 4.0 系统及升级源的所有的软件包;是一个极为方便的软件包管理工具;两者配合,效果最佳; 一、apt的安装和简单用法; 1、apt的安装; #rpm -ivh http://ftp.freshrpms.net/pub/fed ... cnc7-6.fc4.i386.rpm 2、导入GPG签名; #rpm --import http://svn.rpmforge.net/svn/bran ... M-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]# 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]# apt-get install 软件包名称 注:不要加版本号,软件名就好; 比如我们想安装或者升级firefox ,就可以直接用 apt-get install firefox ; [root@localhost]# 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]# apt-get remove 软件包名 举例: [root@localhost]# apt-get remove firefox c)对系统全面升级; [root@localhost]# apt-get upgrade [root@localhost]# apt-get dist-upgrade 这两个功能差不多; d)常用的参数选项; [root@localhost]# apt-get install -y 软件包名 比如: [root@localhost]# apt-get install -y gaim 注:如果意外中断的包下载和安装,可以用-y参数来继续下载安装,如上面gaim我下载到10%,可以用上面的命令接着来下载安装或者升级; [root@localhost]# apt-get install -d 软件包名 比如: [root@localhost]# apt-get install -d 注:只是下载软件包,不解包,也不安装,下载到本地机的目录为 /var/cache/apt/archives 3]清理apt-get 后下载下来的包和未完成的包; [root@localhost]# 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全是点鼠标可视化操作; 1]安装: [root@localhost]# 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]用法 想安装点什么就安装什么; |