2024年10月Linux软件如何安装及管理指南(3)

发布时间:

  ⑴User Interface/X Hardware Support (用户界面/X硬件支持例如:查看当前系统属于“开发/调试器”类别的包有多少,使用以下命令:

  ⑵[rootserver ~]# rpm -qg “Development/Debuggers”lsof-.-.crash-.-

  ⑶sysreport-..-

  ⑷ltrace-..-.EL

  ⑸strace-..-.EL.

  ⑹valgrind-..-.EL

  ⑺valgrind-callgrind-..-

  ⑻gdb-...-.

  ⑼pstack-.-

  ⑽l -d:显示软件包中的说明文件列表,RPM将软件包中的文件分为三类,一类是配置文件,一类是说明文件,一类是可执行文件。后面跟完整的包名,切忌不是以“.rpm”为后缀的rpm包。

  ⑾例如:查看file软件包中的说明文件,使用以下命令:

  ⑿[rootserver cicro]# rpm -qd file-.-/usr/share/doc/file-./LEGAL.NOTICE/usr/share/doc/file-./README

  ⒀/usr/share/man/man/file..gz

  ⒁/usr/share/man/man/libmagic..gz

  ⒂/usr/share/man/man/magic..gz

  ⒃l -s:与“-l“选项类似,除了显示软件包中的所有文件列表信息,而且还显示每个文件的状态。RPM已安装的软件包中各个文件拥有四种状态,分别是normal(正常状态,表示文件没有被其它软件包修改过、not installed(未安装状态,表示文件没有安装、replaced(已替换状态,表明此文件已经被其它软件包修改替换过了、 shared(网络共享状态,表示此文件处于网络共享状态。

  ⒄例如:查看ipvsadm-.-包中每个文件的状态,使用以下命令:

  ⒅[rootlocalhost ~]# rpm -i --excludedocs ipvsadm-.-.i.rpm[rootlocalhost ~]# rpm -qs ipvsadm-.-normal /etc/rc.d/init.d/ipvsadmnormal /sbin/ipvsadm

  ⒆normal /sbin/ipvsadm-restore

  ⒇normal /sbin/ipvsadm-save

  ⒈not installed /usr/share/doc/ipvsadm-.not installed /usr/share/doc/ipvsadm-./READMEnot installed /usr/share/man/man/ipvsadm-restore..gznot installed /usr/share/man/man/ipvsadm-save..gznot installed /usr/share/man/man/ipvsadm..gz从上面可以看到,我们在安装ipvsadm-.-.i.rpm的时候指定不安装说明文档,然后通过“-s”命令查看文件状态时,软件包的说明文档状态均为“not installed”。

  ⒉l -R (或--requires:显示软件包所需的功能,所谓功能,可以是软件包标识,也可以是共享动态库文件等等,软件包的依赖关系就是依靠功能来实现的,如果所需的功能不存在,则依赖关系一定得不到满足,软件安装就会失败。

  ⒊l --provides:显示软件包提供的功能,这个功能可以是动态库文件,也可以是虚拟软件的包名等等。

  ⒋例如:查看nxclient-..-.i.rpm提供的功能,使用以下命令:

  ⒌[rootlocalhost ~]# rpm -qp --provides nxclient-..-.i.rpmnxclient = ..-可以看到这个软件提供了nxclient的功能。

  ⒍验证已经安装的软件包

  ⒎校验软件包比较的是某软件包安装的文件和原始软件包中的同一文件的信息是否一致。它校验每个文件的大小、权限、MD 值、类型、所有者、以及组群。

  ⒏命令格式:rpm -V [辅助选项] package……packageN主选项说明:

  ⒐-V:verify的意思,也可以用“--verify”代替。此参数主要校验已经安装的软件包内的文件和最初安装时是否一致。

  ⒑参数说明:package……packageN 表示需要校验的且已经安装的软件包名。

  ⒒l -p:验证软件包文件

  ⒓例如:下面是验证rsh包的安装状态,操作过程如下:

  ⒔[rootlocalhost ~]# rpm -V rsh-.-.

  ⒕package rsh-.-. is not installed

  ⒖[rootlocalhost ~]# rpm -Vp rsh-.-..i.rpmwarning: rsh-.-..i.rpm: V DSA signature: NOKEY, key ID dbaemissing /usr/bin/rcpmissing /usr/bin/rexec

  ⒗missing /usr/bin/rlogin

  ⒘missing /usr/bin/rsh

  ⒙missing d /usr/share/man/man/rcp..gz

  ⒚missing d /usr/share/man/man/rexec..gzmissing d /usr/share/man/man/rlogin..gzmissing d /usr/share/man/man/rsh..gz[rootlocalhost ~]# rpm -ivh rsh-.-..i.rpmwarning: rsh-.-..i.rpm: V DSA signature: NOKEY, key ID dbaePreparing.。。 ########################### [%]

  ⒛:rsh ######################## [%]

  ①[rootlocalhost ~]# rpm -Vp rsh-.-..i.rpmwarning: rsh-.-..i.rpm:V DSA signature: NOKEY, key ID dbae[rootlocalhost ~]# rpm -V rsh-.-.#上面操作中,我们首先验证rsh,可以知道rsh没有在系统中安装,接着我们安装了rsh软件包,再次查看rsh包状态时,没有任何输出了,表示软件包文件全部正常。

  ②l -f:校验文件在所属的软件包的状态,此选项后面跟相应的文件名。

  ③例如:检查mysqlclient包中各个文件的状态,我们的操作如下:

  ④[rootlocalhost ~]# rpm -ql mysqlclient-..-.RHEL./etc/ld.so.conf.d/mysqlclient-i.conf/usr/lib/mysql/libmysqlclient.so./usr/lib/mysql/libmysqlclient.so...

  ⑤/usr/lib/mysql/libmysqlclient_r.so.

  ⑥/usr/lib/mysql/libmysqlclient_r.so...[rootlocalhost ~]# mv 》/usr/lib/mysql/libmysqlclient.so. /usr/lib/mysql/libmysqlclient.so..d[rootlocalhost ~]# rpm –V mysqlclient-..-.RHEL.missing /usr/lib/mysql/libmysqlclient_r.so.[rootlocalhost ~]# rpm -Vf /usr/lib/mysql/libmysqlclient_r.so.missing /usr/lib/mysql/libmysqlclient_r.so.#这里我们首先检查了mysqlclient包中包含的所有文件,然后模拟删除mysqlclient包中一个文件,然后查看这个文件的状态,可以看到显示为“missing”,如果我们通过“-Vf”选项检查某个文件,没有任何输出时,表示这个文件状态正常。

  ⑦l -a:检验所有的软件包。

  ⑧l -g:检验所有属于组的软件包。

  ⑨验证未安装的软件包文件

  ⑩发行的RPM格式的软件包是否值得信任,是否损坏,我们可以通过RPM提供的选项进行验证。RPM软件包一般使用 Gnu 隐私卫士(或称 GPG来签名,从而帮助使用者肯定下载软件包的可信任性。

  Ⅰ命令格式:rpm -K file.rpm……fileN.rpm

  Ⅱ-K: checksig的意思,也可以用“--checksig”代替。这个选项用来检查 RPM 软件包文件的md校验和GPG签名。

  Ⅲ参数说明:file.rpm……fileN.rpm表示需要校验软件包名。

  Ⅳ例子:如果想要校验某个软件包是否被篡改或者是否损坏,可以使用如下命令检查:

  Ⅴ[rootlocalhost ~]# rpm -K nxserver-..-.i.rpmnxserver-..-.i.rpm: md OK这里的“md OK”表示文件在下载中没有被损坏或者没有被篡改。即这个文件是安全的。

  Ⅵ[rootlocalhost ~]# rpm -K ipvsadm-.-.i.rpmipvsadm-.-.i.rpm: (SHA DSA sha md (GPG NOT OK (MISSING KEYS: GPG#e上面的输出表示这个软件没有被授权签名,在安装未被linux发行商授权的软件包时,请务必谨慎,因为这些软件包内可能包含有害的代码。

  Ⅶ命令格式:rpm -U [辅助选项] file.rpm……fileN.rpm主选项说明:

  Ⅷ-U:upgrade的意思,可以使用“--upgrade”代替。

  Ⅸ参数说明:file.rpm……fileN.rpm表示需要升级的rpm文件包。

  Ⅹ--oldpackage 表示允许“升级”到一个老版本,即软件版本降级。

  ㈠其它选项与安装RPM软件包辅助参数完全相同,这里不再讲述。

  ㈡例子:我们将rsh从rsh-.-.升级到rsh-.-.el,步骤如下:

  ㈢[rootlocalhost ~]# rpm -q rsh

  ㈣[rootlocalhost ~]# rpm -Uvh rsh-.-.el.i.rpmwarning: rsh-.-.el.i.rpm: V DSA signature: NOKEY, key ID Preparing.。。 ######################### [%]

  ㈤:rsh ########################### [%]

  ㈥[rootlocalhost ~]# rpm -q rsh

  ㈦rsh-.-.el

  ㈧命令格式:rpm -e [辅助选项] package……packageN主选项说明:

  ㈨-e:erase的意思,也可以用“--erase”代替。

  ㈩参数说明:package……packageN表示已经安装的软件包名称。

  l --test:只执行删除的测试。

  l --nodeps:不检查依赖性。

  ( 删除rsh软件包,使用以下命令:

  [rootlocalhost ~]# rpm -q rsh

  rsh-.-.el

  [rootlocalhost ~]# rpm -e rsh-.-.el[rootlocalhost ~]# rpm -q rshpackage rsh is not installed

  (删除g软件包,但是存在依赖关系,操作过程如下:

  [rootserver ~]# rpm -e g

  error: Failed dependencies:

  g = ..- is needed by (installed g-c++-..-.ig = ..- is needed by (installed g-g-..-.ig = ..- is needed by (installed g-java-..-.ig = .. is needed by (installed libtool-..-.EL..ig is needed by (installed systemtap-.-.EL.i这里又出现了删除依赖性了,根据上面的提示可知,要删除g软件包,必须删除与g相互依赖的五个软件包,这个操作要非常慎重,除非知道删除后对系统没有影响,否则一定不要盲目执行删除操作,因为这样可能导致系统的崩溃。

  其实我们也可以加入“--nodeps”参数,忽略依赖关系,但是这样可能会导致相关依赖软件的不可用。

  三、二进制软件安装方式

  Linux下二进制格式的软件是指事先已经在各种平台编译安装好相关软件,然后压缩打包,在安装时只需解压或者执行安装可执行文件即可。这种软件发行格式类似与windows系统,这样做的原因是保护源代码程序不对外泄露,保护知识产权。二进制软件包的优点是安装简单、容易,缺点是缺乏灵活性,相应的软件包执行在对应平台下安装,离开这个环境软件就无法运行。

  二进制软件包提供了很多类型的打包方式,最常见的就是我们上节讲到的RPM格式的包,还有以“*.tar.gz、*.tgz、*.bz“等形式的二进制软件包,最后还有一个就是提供安装程序进行安装的二进制软件包。下面分别介绍:

  . 安装“*.tar.gz、*.bz”二进制软件包

  这种格式的软件包,安装其实就是简单的解压过程,根据不同的软件打包格式,我们用相应的解压命令解压即可。

  对于*.tar.gz软件格式解压:tar –zxvf xxxxxx.tar.gz对于*.bz软件格式解压: tar -jxvf xxxxxx.tar.gz这类软件的卸载,对于解压后只有单一目录的软件,可以直接删除对应软件目录即可,如果解压后文件分散在几个目录中,需要一一手动删除目录。

  例如:我们常用的应用服务器容器tomcat软件就是基于这种打包压缩格式发行的。我们只需下载后解压即可完成安装,如果需要卸载,直接删除对应的tomcat目录即可。

  . 提供安装程序的软件包

  这种软件包都提供了安装脚本或者安装向导程序,只需在下载此类软件包后解压,然后进入安装目录,找到类似的setup、install、install.sh之类的可执行文件运行即可,然后根据提示(比如安装路径,参数设置等等进行相应的设置,接着安装就自动完成。

  这类软件的卸载也提供了相应的卸载脚本或者卸载向导,根据提示即可完成软件卸载。

  例如:经常使用的sun jdk就是这种安装方式,从网络下载下来的jdk是个二进制可执行文件,首先设置文件的可执行权限(例如chmod jdk.._.bin,权限操作本书后面会有详细讲述 ,然后运行软件(也即是。/ jdk.._.bin即可完成安装。安装完成会在当前目录产生一个对应的jdk程序目录。

  Linux下一些大型的软件安装,比如weblogic、oracle等软件都提供了安装向导程序,用户可以根据安装提示,顺利完成此类软件的安装。

  上面就是Linux系统安装软件的方法介绍了,如果你习惯了windows系统,那么在使用Linux系统的时候多少会有些不适应,习惯后安装Linux软件也没有那么难了。