linux环境下 RPM使用详解

Linux rpm命令详解 rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。rpm (选项)(参数) 包名[root@localhost ~]# rpm -ivh 包全名 #注意一定是包全名。如果是跟包全名的命令,则要注意路径,因为软件包在光盘当中 选项:-i:安装(install);-v:显示更详细的 阅读详情

1、 RPM包方式安装   找对应的包官网

1.1 RPM包管理工具介绍
      RPM是Red Hat Package Manager的缩写,本意就是Redhat软件包管理,是最先由Redhat公司开发出来的linux下软件包管理工具,由于这种软件管理方式非常方便,逐渐被其它linux发行商所借用,现在已经成为linux平台下通用的软件包管理方式,例如Fedora 、Redhat、suse、Mandrake等主流linux发行版本都默认采用了这种软件包管理方式。
      RPM包管理类似于windows下的“添加/删除程序”但是功能却比“添加/删除程序”强大很多。在Linux的系统安装光盘中,有很多以“.rpm”结尾的软件包,这些包文件就是我们所说的RPM文件。每个RPM文件中包含了已经编译好的二进制可执行文件,其实就是将软件源码文件进行编译安装,然后进行封装,就成了RPM文件,类似与windows安装包中的“.exe”文件。
      此外RPM文件中还包含了运行可执行文件所需的其它文件,这点也和windows下的软件包类似,windows程序的安装包中,除了“exe”可执行文件,还有其它依赖运行的文件。
      RPM包管理方式的优点是:安装简单方便,因为软件已经编译完成打包完毕,安装只是个验证环境和解压的过程。此外通过RPM方式安装的软件,RPM工具都会记录软件的安装信息,这样方便了软件日后的查询,升级和卸载。
RPM包管理方式的缺点是对操作系统环境的依赖很大,它要求RPM包的安装环境必须与RPM包封装时的环境相一致或相当。还需要满足安装时与系统某些软件包的依赖关系,例如需要安装A软件,但是A软件需要系统有B和C软件的支持,那么就必须先安装B和C软件,然后才能安装A软件。这也是我们在用RPM包方式安装软件需要特别注意的地方。


1.2 RPM包种类和命令

      RPM包的封装格式一般有两种,分别是RPM和SRPM,SRPM包也是一种RPM,但是它包含了编译时的源码文件和一些编译指定的参数文件,因而在使用的时候需要重新进行编译,通常SRPM对应的RPM文件类似与“xxxxxxxx.src.rpm”格式。
下面我们讲述一下两种RPM包对应的文件名含义:
例如一个rpm文件:nxserver-2.1.0-22.i386.rpm
其中“nxserver”表示软件的名称,“2.1.0”表示软件的版本号,“22”表示软件更新发行的次数,“i386”表示适合硬件的平台,最后的“.rpm”是rpm软件包的标识。
      一般的RPM封装包的命名格式都有这五个部分组成,由于SRPM包是需要编译才能使用的,因此没有上面显示项中对应的平台选项,其它与RPM包命令格式完全一样。
      对于RPM包的五个组成部分,我们下面介绍一些它们更详细的含义和异同:
软件名称:是对软件包的标识;
软件的版本号:每个软件都有自己的版本号,版本号可以说明软件从开始到现在发行了多少了,软件是否是新的等等。
软件更新发行次数:由于一个版本的软件在发行后可能出现bug或者漏洞,那么就需要修复和重新封装,每修复封装一次,软件的名称就要更新一次。
适合的硬件平台:由于RPM包要在各种不同的linux硬件平台上使用,但是由于每个不同的硬件平台RPM打包封装的参数也各不相同,这样就出现了针对i386、i686、x86_64、noarch等的平台名称标识。
i386指这个软件包适用于intel 80386以后的x86架构的计算机。
i686指这个软件包适用于intel 80686以后(奔腾pro以上)的x86架构的计算机。
x86_64指这个软件包适用于x86架构64为处理器的计算机。
noarch表示这个软件包与硬件构架无关,可以通用。
      需要注意的是:i386软件包可以在任意x86平台下使用,无论是i686或是x86_64的机器,相反,i686的软件包不一定能在i386硬件上面使用,由于i686软件包一般都是对cpu进行了优化,所有具有向后兼容性,但是不具有先前兼容的特性。


2.3 RPM工具的使用
      RPM工具的使用分为安装、查询、验证、更新、删除等操作,下面我们分别介绍。
1. 安装软件包
命令格式:rpm -i [辅助选项] file1.rpm file2.rpm…..fileN.rpm  
主选项说明:
-i:install的意思,就是安装软件。也可以使用“--install”。
参数说明:file1.rpm file2.rpm…..filen.rpm是指定将要安装RPM包的文件名,可以多个文件一起安装。
辅助选项说明:这里的选项很多,我们只列出常用选项,详细解释如下:
 -v:显示附加信息。
 -h:安装时输出标记“#”。
 --test:只对安装进行测试,并不实际安装。
 --nodeps:不检查软件之间的依赖关系。加入此选项可能会导致软件不可用。
 --force:忽略软件包以及软件冲突。
 --replacepkgs:强制重新安装已经安装的软件包。
 --prefix:将软件包安装到由 指定的路径下。
 --percent:以百分比的形式输出安装的进度。
 --excludedocs:不安装软件包中的说明文件
 --includedocs:安装软件包,包含说明文件。
举例:
(1)我们安装ipvsadm-1.24-6.i386.rpm,使用下面命令:
[root@localhost ~]# rpm -ivh ipvsadm-1.24-6.i386.rpm 
执行结果如下:
warning:ipvsadm-1.24-6.i386.rpm:V3 DSA signature: NOKEY, key ID 44e181
Preparing...    ############################ [100%]
   1:ipvsadm  ############################[100%]
(2)下面操作显示了安装gcc-3.4.4-2.i386.rpm包过程,在安装过程中,出现了安装包依赖问题,我们的处理过程是这样的:
[root@server ~]# rpm -ivh gcc-3.4.4-2.i386.rpm 
执行结果如下:
warning: gcc-3.4.4-2.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
error: Failed dependencies:
        glibc-devel >= 2.2.90-12 is needed by gcc-3.4.4-2.i386
    Suggested resolutions:
        glibc-devel-2.3.4-2.13.i386.rpm
这里显示在安装gcc编译器之前需要安装glibc-devel包的支持,这个包详细的版本是glibc-devel-2.3.4-2.13.i386.rpm,因此,我们需要先安装这个软件包。
[root@server ~]# rpm -ivh glibc-devel-2.3.4-2.13.i386.rpm 
执行结果如下:
warning: glibc-devel-2.3.4-2.13.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
error: Failed dependencies:
        glibc-headers is needed by glibc-devel-2.3.4-2.13.i386
        glibc-headers = 2.3.4-2.13 is needed by glibc-devel-2.3.4-2.13.i386
    Suggested resolutions:
        glibc-headers-2.3.4-2.13.i386.rpm
这里又出现依赖关系,上面的错误提示是说安装glibc-devel包需要先安装glibc-headers软件包,并且给出了安装建议版本,于是我们就先安装glibc-headers包。
[root@server ~]# rpm -ivh glibc-headers-2.3.4-2.13.i386.rpm 
执行结果如下:
warning: glibc-headers-2.3.4-2.13.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
error: Failed dependencies:
        kernel-headers is needed by glibc-headers-2.3.4-2.13.i386
        kernel-headers >= 2.2.1 is needed by glibc-headers-2.3.4-2.13.i386
    Suggested resolutions:
        glibc-kernheaders-2.4-9.1.98.EL.i386.rpm
依然报错,信息与上面相同,意思是说在安装kernel-headers包之前,需要glibc-kernheaders包的支持,并且给出了建议版本,我们先安装glibc-kernheaders包。
[root@server ~]# rpm -ivh glibc-kernheaders-2.4-9.1.98.EL.i386.rpm 
执行结果如下: 
warning: glibc-kernheaders-2.4-9.1.98.EL.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################### [100%]
   1:glibc-kernheaders ###################### [100%]
这次依赖终于解除了,按照相反的顺序开始安装,下面显示安装步骤。
[root@server ~]# rpm -ivh glibc-headers-2.3.4-2.13.i386.rpm       
warning: glibc-headers-2.3.4-2.13.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...  ########################### [100%]
   1:glibc-headers  ######################## [100%]
[root@server ~]# rpm -ivh glibc-devel-2.3.4-2.13.i386.rpm 
warning: glibc-devel-2.3.4-2.13.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################### [100%]
   1:glibc-devel  ######################## [100%]
[root@server ~]# rpm -ivh gcc-3.4.4-2.i386.rpm 
warning: gcc-3.4.4-2.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...  ############################## [100%]
   1:gcc      ########################### [100%]
(3) 在上例中,如果我们在安装gcc第一步加入“--nodeps”参数,gcc由于不检查依赖关系,即可安装成功:
[root@server ~]# rpm -ivh gcc-3.4.4-2.i386.rpm –nodeps
执行结果如下:
warning: gcc-3.4.4-2.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...  ############################## [100%]
   1:gcc      ########################### [100%]
这里加入了忽略依赖关系的参数,虽然可以安装成功,但是我们不建议这么做,因为这样安装的软件很有可能是不可用的,或者使用过程中出现问题,除非我们知道忽略依赖关系对软件本身没有影响的话,才可使用此参数。
(4)安装xxxxxx.src.rpm的方法,这里我们以my-package.src.rpm名称为例,在redhat linux i386平台下进行介绍,常用的有两种方法,操作步骤如下:
方法一: 
1)执行rpm -i my-package.src.rpm 
2) cd /usr/src/redhat/SPECS 
3) rpmbuild -bp my-package.specs 一个和软件包同名的specs文件。 
4) cd /usr/src/redhat/BUILD/my-package/ 一个软件包同名的目录 
5) ./configure 这一步和编译普通的源码软件一样,可以加上参数 
6) make
7) make install
方法二: 
1)执行rpm -i my-package.src.rpm 
2)cd /usr/src/redhat/SPECS 
前两步和方法一相同 
3)rpmbuild -bb my-package.specs 一个和软件包同名的specs文件。
此时,在/usr/src/redhat/RPM/i386/ (这里的路径根据具体包的不同,也可能是i686、noarch等等)
在这个目录下,有一个或者两个新的rpm包,这个是编译好的二进制文件。 
4)执行rpm -i new-package.rpm,安装完成。
例如:利用xxxx.src.rpm格式的包安装rsh软件,操作方法如下:
[root@localhost ~]# rpm -i rsh-0.17-25.3.src.rpm
[root@localhost ~]#cd /usr/src/redhat/SPECS/
rsh.spec
[root@localhost SPECS]#rpmbuild  -bb rsh.spec
[root@localhost SPECS]# cd /usr/src/redhat/RPMS/i386/
rsh-0.17-25.3.i386.rpm  
rsh-debuginfo-0.17-25.3.i386.rpm  
rsh-server-0.17-25.3.i386.rpm
[root@localhost i386]#rpm -ivh rsh-*
Preparing...  ############################ [100%]
   1:rsh-server  ########################## [ 33%]
   2:rsh   ############################## [ 67%]
   3:rsh-debuginfo  ######################## [100%]
[root@localhost i386]#


2. 查询软件包

命令格式:rpm -q [辅助选项] package1……packageN
主选项说明:
-q:query的意思,也可以使用“--query”。
参数说明:package1……packageN为已经安装的软件包名称。
辅助选项说明:
-f:查询操作系统中某个文件属于哪个对应的rpm软件包。
例如:
[root@localhost ~]# rpm -qf /bin/bash
bash-3.0-19.2
-p:查询以“.rpm”为后缀的软件包安装后对应的包名称。
例如:
[root@server ~]# rpm -qp gcc-3.4.4-2.i386.rpm 
gcc-3.4.4-2
从这里的查询可以得知,“gcc-3.4.4-2.i386.rpm”安装到系统以后,对应的包名为gcc-3.4.4-2。
-l:显示软件包中的所有文件列表。此选项后面跟软件包安装后对应的包名,切记不是以“.rpm”为后缀的rpm包。
例如:
[root@server ~]# rpm –ql gcc-3.4.4-2
/usr/bin/c89
/usr/bin/c99
/usr/bin/cc
/usr/bin/gcc
/usr/bin/gcov
………(以下省略)………
-i:显示软件包的概要信息,例如软件名称、版本、适应平台、大小等等。此选项后面跟完整的包名,切忌不是以“.rpm”为后缀的rpm包。
例如:在得到一个软件,安装之前一般都需要看下软件包有什么内容,可以使用以下命令:
[root@server ~]# rpm -qi gcc-3.4.4-2.i386
或者使用
[root@server ~]# rpm -qpi gcc-3.4.4-2.i386.rpm
这里由于用到了“-p”选项,首先显示出了安装后的软件包名,所以“-i”选项后可跟“.rpm”结尾的软件包。
-g:查询系统有哪些软件包属于指定的类别,RPM工具根据软件功能的不同,将软件分了很多种类,分别如下,括弧内为注释说明:
Amusements/Games (娱乐/游戏)
  Amusements/Graphics(娱乐/图形)
  Applications/Archiving (应用/档案)
  Applications/Communications (应用/通讯)
  Applications/Databases (应用/数据库)
  Applications/Editors (应用/编辑器)
  Applications/Emulators (应用/仿真器)
  Applications/Engineering (应用/工程)
  Applications/File (应用/文件)
  Applications/Internet (应用/因特网)
  Applications/Multimedia (应用/多媒体)
  Applications/Productivity (应用/产品)
  Applications/Publishing (应用/印刷)
  Applications/System (应用/系统)
  Applications/Text (应用/文本)
  Development/Debuggers (开发/调试器)
  Development/Languages (开发/语言)
  Development/Libraries (开发/函数库)
  Development/System (开发/系统)
  Development/Tools (开发/工具)
  Documentation (说明文档)
  System Environment/Base (系统环境/基础)
  System Environment/Daemons (系统环境/守护)
  System Environment/Kernel (系统环境/内核)
  System Environment/Libraries (系统环境/函数库)
  System Environment/Shells (系统环境/接口)
  User Interface/Desktops (用户界面/桌面)
  User Interface/X (用户界面/X窗口)
  User Interface/X Hardware Support (用户界面/X硬件支持)
例如:查看当前系统属于“开发/调试器”类别的包有多少,使用以下命令:
[root@server ~]# rpm -qg "Development/Debuggers"     
lsof-4.72-1.1
crash-4.0-2
sysreport-1.3.15-5
ltrace-0.3.36-2.EL4
strace-4.5.13-0.EL4.1
valgrind-2.2.0-5.EL4
valgrind-callgrind-0.9.9-1
gdb-6.3.0.0-1.63
pstack-1.2-6
-d:显示软件包中的说明文件列表,RPM将软件包中的文件分为三类,一类是配置文件,一类是说明文件,一类是可执行文件。后面跟完整的包名,切忌不是以“.rpm”为后缀的rpm包。
例如:查看file软件包中的说明文件,使用以下命令:
[root@server108 cicro]# rpm -qd  file-4.10-2
/usr/share/doc/file-4.10/LEGAL.NOTICE
/usr/share/doc/file-4.10/README
/usr/share/man/man1/file.1.gz
/usr/share/man/man3/libmagic.3.gz
/usr/share/man/man5/magic.5.gz
-s:与“-l“选项类似,除了显示软件包中的所有文件列表信息,而且还显示每个文件的状态。RPM已安装的软件包中各个文件拥有四种状态,分别是normal(正常状态,表示文件没有被其它软件包修改过)、not installed(未安装状态,表示文件没有安装)、replaced(已替换状态,表明此文件已经被其它软件包修改替换过了)、net shared(网络共享状态,表示此文件处于网络共享状态)。
例如:查看ipvsadm-1.24-6包中每个文件的状态,使用以下命令:
[root@localhost ~]# rpm -i --excludedocs ipvsadm-1.24-6.i386.rpm 
[root@localhost ~]# rpm -qs ipvsadm-1.24-6                         
normal        /etc/rc.d/init.d/ipvsadm
normal        /sbin/ipvsadm
normal        /sbin/ipvsadm-restore
normal        /sbin/ipvsadm-save
not installed /usr/share/doc/ipvsadm-1.24
not installed /usr/share/doc/ipvsadm-1.24/README
not installed /usr/share/man/man8/ipvsadm-restore.8.gz
not installed /usr/share/man/man8/ipvsadm-save.8.gz
not installed /usr/share/man/man8/ipvsadm.8.gz
      从上面可以看到,我们在安装ipvsadm-1.24-6.i386.rpm的时候指定不安装说明文档,然后通过“-s”命令查看文件状态时,软件包的说明文档状态均为“not installed”。
-R (或--requires):显示软件包所需的功能,所谓功能,可以是软件包标识,也可以是共享动态库文件等等,软件包的依赖关系就是依靠功能来实现的,如果所需的功能不存在,则依赖关系一定得不到满足,软件安装就会失败。
--provides:显示软件包提供的功能,这个功能可以是动态库文件,也可以是虚拟软件的包名等等。
例如:查看nxclient-2.1.0-17.i386.rpm提供的功能,使用以下命令:
[root@localhost ~]# rpm -qp --provides nxclient-2.1.0-17.i386.rpm                   
nxclient = 2.1.0-17
可以看到这个软件提供了nxclient的功能。

3. 验证软件包
      验证已经安装的软件包
      校验软件包比较的是某软件包安装的文件和原始软件包中的同一文件的信息是否一致。它校验每个文件的大小、权限、MD5 值、类型、所有者、以及组群。
命令格式:rpm -V [辅助选项] package1……packageN
主选项说明:
-V:verify的意思,也可以用“--verify”代替。此参数主要校验已经安装的软件包内的文件和最初安装时是否一致。
参数说明:package1……packageN 表示需要校验的且已经安装的软件包名。
辅助选项说明:
-p:验证软件包文件
例如:下面是验证rsh包的安装状态,操作过程如下:
[root@localhost ~]# rpm -V rsh-0.17-25.3 
package rsh-0.17-25.3 is not installed
[root@localhost ~]# rpm -Vp rsh-0.17-25.3.i386.rpm
warning: rsh-0.17-25.3.i386.rpm: V3 DSA signature: NOKEY, key ID db2a6e
missing     /usr/bin/rcp
missing     /usr/bin/rexec
missing     /usr/bin/rlogin
missing     /usr/bin/rsh
missing   d /usr/share/man/man1/rcp.1.gz
missing   d /usr/share/man/man1/rexec.1.gz
missing   d /usr/share/man/man1/rlogin.1.gz
missing   d /usr/share/man/man1/rsh.1.gz
[root@localhost ~]# rpm -ivh rsh-0.17-25.3.i386.rpm    
warning: rsh-0.17-25.3.i386.rpm: V3 DSA signature: NOKEY, key ID db2a6e
Preparing...   ########################### [100%]
   1:rsh     ######################## [100%]
[root@localhost ~]# rpm -Vp rsh-0.17-25.3.i386.rpm  
warning: rsh-0.17-25.3.i386.rpm:V3 DSA signature: NOKEY, key ID db2a6e
[root@localhost ~]# rpm -V rsh-0.17-25.3
#上面操作中,我们首先验证rsh,可以知道rsh没有在系统中安装,接着我们安装了rsh软件包,再次查看rsh包状态时,没有任何输出了,表示软件包文件全部正常。
-f:校验文件在所属的软件包的状态,此选项后面跟相应的文件名。
例如:检查mysqlclient包中各个文件的状态,我们的操作如下:
[root@localhost ~]# rpm -ql mysqlclient10-3.23.58-4.RHEL4.1 
/etc/ld.so.conf.d/mysqlclient10-i386.conf
/usr/lib/mysql/libmysqlclient.so.10
/usr/lib/mysql/libmysqlclient.so.10.0.0
/usr/lib/mysql/libmysqlclient_r.so.10
/usr/lib/mysql/libmysqlclient_r.so.10.0.0
[root@localhost ~]# mv \
>/usr/lib/mysql/libmysqlclient.so.10  /usr/lib/mysql/libmysqlclient.so.10.d
[root@localhost ~]# rpm –V mysqlclient10-3.23.58-4.RHEL4.1
missing     /usr/lib/mysql/libmysqlclient_r.so.10
[root@localhost ~]# rpm -Vf  /usr/lib/mysql/libmysqlclient_r.so.10
missing     /usr/lib/mysql/libmysqlclient_r.so.10 
#这里我们首先检查了mysqlclient包中包含的所有文件,然后模拟删除mysqlclient包中一个文件,然后查看这个文件的状态,可以看到显示为“missing”,如果我们通过“-Vf”选项检查某个文件,没有任何输出时,表示这个文件状态正常。
-a:检验所有的软件包。
-g:检验所有属于组的软件包。
验证未安装的软件包文件
发行的RPM格式的软件包是否值得信任,是否损坏,我们可以通过RPM提供的选项进行验证。RPM软件包一般使用 Gnu 隐私卫士(或称 GPG)来签名,从而帮助使用者肯定下载软件包的可信任性。
命令格式:rpm -K file1.rpm……fileN.rpm
主选项说明:
-K: checksig的意思,也可以用“--checksig”代替。这个选项用来检查 RPM 软件包文件的md5校验和GPG签名。
参数说明:file1.rpm……fileN.rpm表示需要校验软件包名。
例子:如果想要校验某个软件包是否被篡改或者是否损坏,可以使用如下命令检查:
 [root@localhost ~]# rpm -K nxserver-2.1.0-22.i386.rpm 
nxserver-2.1.0-22.i386.rpm: md5 OK
这里的“md5 OK”表示文件在下载中没有被损坏或者没有被篡改。即这个文件是安全的。
[root@localhost ~]# rpm -K ipvsadm-1.24-6.i386.rpm 
ipvsadm-1.24-6.i386.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#443e1821) 
上面的输出表示这个软件没有被授权签名,在安装未被linux发行商授权的软件包时,请务必谨慎,因为这些软件包内可能包含有害的代码。

4. 更新软件包
命令格式:rpm -U [辅助选项] file1.rpm……fileN.rpm
主选项说明:
-U:upgrade的意思,可以使用“--upgrade”代替。
参数说明:file1.rpm……fileN.rpm表示需要升级的rpm文件包。
辅助选项说明:
--oldpackage 表示允许"升级"到一个老版本,即软件版本降级。
其它选项与安装RPM软件包辅助参数完全相同,这里不再讲述。
例子:我们将rsh从rsh-0.17-25.3升级到rsh-0.17-37.el5,步骤如下:
[root@localhost ~]# rpm  -q rsh
rsh-0.17-25.3
[root@localhost ~]# rpm  -Uvh rsh-0.17-37.el5.i386.rpm    
warning: rsh-0.17-37.el5.i386.rpm: V3 DSA signature: NOKEY, key ID 37017186
Preparing... ######################### [100%]
   1:rsh    ########################### [100%]
[root@localhost ~]# rpm  -q rsh

rsh-0.17-37.el5
5. 删除软件包
命令格式:rpm -e [辅助选项] package1……packageN
主选项说明:
-e:erase的意思,也可以用“--erase”代替。
参数说明:package1……packageN表示已经安装的软件包名称。
辅助选项说明:
--test:只执行删除的测试。
--nodeps:不检查依赖性。
举例:
(1) 删除rsh软件包,使用以下命令:
[root@localhost ~]# rpm  -q rsh    
rsh-0.17-37.el5
[root@localhost ~]# rpm  -e rsh-0.17-37.el5
[root@localhost ~]# rpm  -q rsh
package rsh is not installed
(2)删除gcc软件包,但是存在依赖关系,操作过程如下:
[root@server ~]# rpm -e gcc                    
error: Failed dependencies:
gcc = 3.4.4-2 is needed by (installed) gcc-c++-3.4.4-2.i386
gcc = 3.4.4-2 is needed by (installed) gcc-g77-3.4.4-2.i386
gcc = 3.4.4-2 is needed by (installed) gcc-java-3.4.4-2.i386
gcc = 3.4.3 is needed by (installed) libtool-1.5.6-4.EL4.1.i386
gcc is needed by (installed) systemtap-0.4-0.EL4.i386
这里又出现了删除依赖性了,根据上面的提示可知,要删除gcc软件包,必须删除与gcc相互依赖的五个软件包,这个操作要非常慎重,除非知道删除后对系统没有影响,否则一定不要盲目执行删除操作,因为这样可能导致系统的崩溃。
其实我们也可以加入“--nodeps”参数,忽略依赖关系,但是这样可能会导致相关依赖软件的不可用。

Linux环境下使用rpm包安装GitLab 1.安装依赖环境 [root@gitlab ~]# yum install curl openssh-server postfix cronie 2.下载安装GitLab包 我安装的环境是Red Hat Enterprise Linux Server release 7.4 (Maipo) GitLab下载地址:https://mirrors.tuna.tsinghua.edu.cn/gi... 阅读详情

相关推荐

Linux软件安装-rpm详解

在Linux系统中,软件安装是非常基本的操作。本文将详细介绍rpm软件包管理器的使用,包括如何安装、升级、卸载和查询软件包等操作,让你快速上手rpm的使用。无论你是Linux初学者还是有经验的管理员,本文都会是一个非常有用的参考。

鹅不糊涂的博客 1万+

Linux系统中rpm命令用法详解

Linux系统中rpm命令用法详解

IT之一小佬的博客 1万+

libmysqlclient.so.10

装mysql时候提示需要libmysqlclient.so.10 找了好久没有找到,安装下面这个包就可以了libmysql10-3.23.56-1.4mdk.i586.rpm

Linux rpm命令详解,Linux安装、卸载、更新软件

作用:Linux系统的软件包管理工具,负责安装、更新、卸载软件,生成 .rpm 扩展名的文件 参数: -i 安装 -v 显示执行过程 -h 显示安装进度(打印#) -U 升级到新版本 -q 查询(常配合其他参数使用) -a 查询所有软件 -l 查看软件的安装位置 -f 查看拥有指定文件的软件 -V 校验

wangyuxiang946的博客 1万+

QMT中ContextInfo的使用注意

QMT中ContextInfo下声明的全局变量的使用注意事项

路在何方 2807

保姆级教程:用Cesium的Primitive API实现火箭发射全流程动画(含代码避坑)

本文详细介绍了如何使用Cesium的Primitive API实现火箭发射全流程动画,包括模型控制、关节动画和精细时序管理。通过实战代码示例和性能优化技巧,帮助开发者高效构建高复杂度航天仿真系统,显著提升三维可视化效果与运行效率。

weixin_42565652的博客 212

运维之道 | Linux环境安装配置JDK(rpm、源码)

Linux环境安装配置JDK(rpm、源码) RPM包安装 一、下载jdk包 JDK官网下载地址,下载需要的Linux版本rpm包:jdk-8u231-linux-x64.rpm 二、清理系统自带的jdk 1、检查系统是否自带jdk,如果系统自带jdk,需要先将它卸载掉,然后安装我们需要的jdk 检查是否安装jdk: [root@localhost ~]# rpm -qa | grep j...

VillianTsang 、运维之道 386

PCB板质量测试和PCB板

PCB板质量测试和板厂

weixin_51370842的博客 515

linux环境安装JDK*.rpm.bin

linux环境安装JDK详解 Linux安装JDK步骤 1. 先从网上下载jdk(jdk-6u21-linux-x64-rpm.bin) ,推荐SUN的官方网站www.sun.com,下载后放在/home目录中,当然其它地方也行。 进入安装目录 (注:“#”:表示root用户;) #cd /home #cp jdk-6u21-linux-x64-rpm.bin /usr/loc

北冥 2019

Jaspersoft Studio 6.20.0 免注册安装指南(附下载链接)

本文提供了Jaspersoft Studio 6.20.0社区版的免注册安装详细指南。文章介绍了绕过官网注册获取安装包的多种可靠途径,并逐步详解了从启动安装器到首次运行的全过程,帮助用户快速完成安装与基础配置,高效开启报表设计工作。

mars5的博客 1689

在 SAP BTP 中通过 MTA 自动创建 Service Broker 的原理与实战

本文探讨了如何在SAP BTP的Cloud Foundry环境中通过MTA部署自动创建和注册Service Broker。传统手动注册方式存在依赖管理员、环境一致性差等问题。通过MTA部署可实现自动化Broker注册,利用占位符生成安全凭证,并确保平台端与应用端认证一致。文章详细解析了关键配置参数,包括create-service-broker标志、Broker名称、认证凭据和访问URL的设置方法。这种基础设施即代码(IaC)方式能提升DevOps实践水平,使服务注册成为应用部署流水线的有机组成部分。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 200

Linux环境rpm yum与dnf详解

yum dnf rpm 详解 区别 常用命令

m0_64496909的博客 3039

华为OD机试真题2025双机位A卷 Python&JavaScript 实现【采购订单】

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

MISAYAONE的博客 1457

linux格式rpm,linux环境下deb格式 转换成rpm格式

linux环境下deb格式 转换成rpm格式使用alien工具转换deb格式到rpm格式alien_8.87.tar.gz下载alien_8.87.tar.gz[root@mysqlnode2 ~]# tar zxvf alien_8.87.tar.gz[root@mysqlnode2 ~]# cd alien[root@mysqlnode2 alien]# perl Makefile.PL[ro...

weixin_35343226的博客 325

c\c++: Identifiers, modifier, qualifier, specifier, decorator; systemtap

文章目录参考英语含义在c、C++ 参考 c++ 标准 https://blog.youkuaiyun.com/tyronne/article/details/44016621 英语含义 modifier word or phrase that modifies (modify 2) another word or phrase 修饰语. qualifier (grammar) word, esp an adjective or adverb, that qualifies another word 修饰词; (尤指)形

mzhan017的博客 2427

高质量文献综述原来这么写!借助Gemini 3 Pro+四步法,手把手教你写出有逻辑深度的综述

总结与展望先总结现状,说明前人已经做到什么地步了,再指出缺口,前人没解决什么问题、方法有什么局限等等,最后再在这个缺口的基础上,提出你的未来研究方向。当你有个复杂的研究题目,但没办法拆解出关键词,就可以让Gemini 3 Pro来辅助帮你拆解,并帮你写专业的检索式,若是找英文文献,还能帮你将中文关键词翻译成地道的专业术语。做文献笔记,可以建立文献笔记矩阵,可以用Excel建个表格,横向是文献,纵向是关键要素,包括作者/年份、研究问题/假设、理论框架/模型、研究方法/数据来源、核心结论、局限性/Gap。

智能AI让学术科研更容易 991

Linux通过rpm安装Java运行环境

Linux环境下安装jdk8.rpm的方式

z2014ypd的博客 1314

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

基于Mock的Linux RPM包构建环境配置指南

本文详细介绍了如何使用Mock工具在Linux系统中配置隔离的RPM包构建环境。通过创建chroot沙盒,Mock能确保打包过程的纯净与一致性,避免污染宿主机环境。指南涵盖了从基础安装、配置文件定制(如接入阿里云镜像加速)、环境初始化到实际构建RPM包的全流程,并提供了依赖管理、多环境配置等高级调优技巧,是Linux打包开发者提升效率和可靠性的必备实践。

php55的博客 568

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Linux通过RPM安装搭建LAMP环境

LAMP就是Linux+Apache+MySql+PHP搭建的动态网站环境,是目前互联网上非常流行的一个网页服务组合。 网上有很多教程搭建LAMP环境,基本上都是编译安装的,其实对新手来说只需要了解LAMP环境的一些特性,RMP安装相对来说容易上手点,只需要安装几个光盘上的安装

540

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

linux环境安装rpm格式的jdk,安装 linux jdk rpm格式

1.下载JDK www.sun.com,一般为 .bin文件2,给文件加上权限 #chmod 777 jdk1.6-linux-i586.rpm.bin3.执行 #. /jdk1.6-linux-i586.rpm.bin4.解压后有rpm文件安装 #rpm -ivhjdk1.6-linux-i586.rpm5.配置环境变量#vi /etc/profile 打开文件添加 ...

weixin_34364310的博客 240

java rpm 安装_Linux环境下RPM方式JDK安装及配置

文章目录[隐藏]jdk下载rpm安装配置环境变量jdk下载这个到java的官方网站下载自己需要的版本就好了,这里下载了jdk1.7版本的,选择下载了rpm包jdk-7u79-linux-x64.rpm。rpm安装rpm -ivh jdk安装包的目录/jdk-7u79-linux-x64.rpm解释一下:-i,—install 表示安装软件包 install package(s)-v,—verbo...

weixin_28901327的博客 256

java rpm 安装路径_linux 安装jdk环境(rpm或tar安装)

linux安装jdk可以安装rpm文件或者tar.gz压缩包文件,两者都行,区别不大,tar.gz需要多一步解压而已,我们先介绍rpm,后介绍tar.gz仅供参考,我们不需要下载,我们一会用linux直接在服务器下载。 一、准备工作1.安装wget,为后续下载安装包做准备(如果linux已经安装,跳过此步) [root@localhost ~]# yum -y install wget2.清理jd...

weixin_29054399的博客 1641

Linux离线安装gcc环境一整套rpm包:快速搭建编译环境

Linux离线安装gcc环境一整套rpm包:快速搭建编译环境 【下载地址】Linux离线安装gcc环境一整套rpm包 本项目提供了一套完整的rpm包资源,专为在Linux系统上离线安装gcc编译环境而设计。这些rpm包经过精心挑选和严格测试,确保您能够在没有网络连接的情况下顺利安装gcc环境。项目包含了从cpp到gcc-...

gitblog_06705的博客 373

Linux系统rpm命令安装jdk并配置环境变量

一、安装jdk-8u60-linux-x64.rpm 准备 jdk-8u60-linux-x64.rpm 安装包 安装jdk, -ivh 在安装过程中显示正在安装的文件信息及安装进度 rpm -ivh jdk-8u60-linux-x64.rpm 二、配置环境变量 利用vi /etc/profile编辑profile文件:加入如下内容:(jdk文件夹名称根据实际的填写) #set...

兵强码壮 1424
上一篇: centos7版本下mysql 用户与权限管理
下一篇: 报错 "java.lang.NoClassDefFoundError:'' 问题的详解
gzXIN007
博客等级 码龄9年 5粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值