linux程序包管理之rpm
- 格式:docx
- 大小:26.39 KB
- 文档页数:10
详解linux下安装软件tar.gz,rpm,deb的⽅法在Linux系统中,软件安装程序⽐较纷繁复杂,不过最常见的有两种:1)⼀种是软件的源代码,您需要⾃⼰动⼿编译它。
这种软件安装包通常是⽤gzip压缩过的tar包(后缀为.tar.gz)。
2)另⼀种是软件的可执⾏程序,你只要安装它就可以了。
这种软件安装包通常被是⼀个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm。
当然,也有⽤rpm格式打包的源代码,⽤gzip压缩过的可执⾏程序包。
只要您理解了以下的思路,这两种形式的安装包也不在话下了。
下⾯,我们就分成两个部分来说明软件安装思路:第⼀部分:搞定.tar.gz1.⾸先,使⽤tar -xzvf来解开这个包,如:#tar -xzvf apache_1_3_6_tar.gz这样就会在当前⽬录中创建了⼀个新⽬录(⽬录名与.tat.gz包的⽂件名类似),⽤来存放解压了的内容。
如本例中就是apache_1.3.62.进⼊这个⽬录,再⽤ls命令查看⼀下所包含的⽂件,如:#拟定cd apache_1.3.6#ls你观察⼀下这个⽬录中包含了以下哪⼀个⽂件:configure、Makefile还是Imake。
1)如果是configure⽂件,就执⾏:#./configure#make#make install2)如果是Makefile⽂件,就执⾏:#make#make install3)如果是Imake⽂件,就执⾏:#xmkmf#make#make install3.如果没有出现什么错误提⽰的话,就搞定了。
⾄于软件安装到什么地⽅,通常会在安装时出现。
否则就只能查阅⼀下README,或者问问我,:-)如果遇到错误提⽰,也别急,通常是⼗分简单的问题:1)没有安装C或C++编译器;确诊⽅法:执⾏命令gcc(C++则为g++),提⽰找不到这个命令。
解决⽅法:将Linux安装光盘mount上来,然后进⼊RPMS⽬录,执⾏命令:#rpm -ivh gcc* (哈哈,我们⽤到了第⼆种安装⽅式)2)没有安装make⼯具;确诊⽅法:执⾏命令make,提⽰找不到这个命令。
Linux的软件包管理Linux是一种自由软件和开放源代码的操作系统,由众多的开发者和爱好者共同开发和维护。
Linux发行版(distribution)是Linux操作系统的具体实现,它包含了许多工具和软件。
由于Linux开放的特性,用户可以根据自己的需要安装、更新和管理软件包。
本文将介绍Linux的软件包管理。
软件包是一组文件,它们共同构成了一个应用程序或一项服务,这些文件通常包括可执行文件,库文件,及其他用于安装时必需的文件。
Linux的软件包管理系统将许多应用程序打包到一个文件中,使得安装和卸载都变得容易。
Linux上的软件包管理系统主要有两种,分别是RPM和DEB。
1. RPMRPM(Red Hat Package Manager)是一种用于Red Hat和Fedora发行版的软件包管理系统,也被其他很多主流的Linux发行版所采用。
它是一种二进制软件包管理系统,可以让用户快速、轻松地安装、更新、升级、删除软件。
RPM会把程序文件、库文件等打包成一个文件,让用户可以方便地安装和管理软件。
在RPM中,软件包用rpm命令安装,该命令接受rpm文件名作为参数。
要安装软件包,必须拥有root权限。
同时,执行安装程序后,rpm会自动安装所需的依赖项,这使得软件包的安装更为方便和简单。
在安装过程中,用户也可以设置软件包的安装路径、升级方式等选项。
2. DEBDEB是Debian的软件包格式,用于安装软件包。
Debian是一种流行的Linux发行版,被广泛地应用于服务器和桌面领域。
DEB软件包用dpkg命令进行安装和管理。
与RPM不同的是,它会检查依赖关系并安装所有必需的软件包,同时还可以告诉用户软件包中包含了哪些文件和目录。
DEB包常常被构建成从源代码编译而成的二进制文件,即deb-src文件。
这些文件可以在用户的机器上进行编译,以生成可安装的deb文件。
Debian社区维护一个软件包存储库,称为Debian软件包,包含了Debian发行版中所有可用的软件包。
Linux的软件安装和管理使用RPM管理包1 什么是RPMRPM是一个开放的软件包管理系统,最初的全称是Red Hat Package Manager。
它工作于Red Hat Linux以及其它Linux系统,成为了Linux中公认的软件包管理标准。
红帽子软件公司鼓励其他厂商来了解RPM并在自己的产品中使用它。
RPM的发布基于GPL协议。
随着RPM 在各种发行版本的广泛使用,如今RPM的全称是RPM Package Manager。
RPM由RPM社区负责维护,可以登录到RPM的官方站点http://www.rpm .org/查询最新的信息。
2 为什么使用RPM使用RPM最大的好处在于它提供快速之安装,减少编译安装之侦错困扰。
对于最终用户来说,RPM所提供的众多功能使维护系统要比以往容易的多。
安装、卸载和升级RPM软件包均只需一条命令即可完成,所有烦琐的细节问题无须您费心。
RPM维护一个所有已安装的软件包和文件的数据库,可以让您进行功能强大的软件包查询和验证工作。
在软件包升级过程中,RPM会对配置文件进行特别处理,因此您绝对不会丢失以往的定制信息——这对于直接使用.tar.gz文件是不可能的。
对于程序员,RPM可以让您连同软件的源代码打包成源代码和二进制软件包供最终用户使用。
这个过程十分简单,整个过程由一个主文件和可能的补丁程序组成。
RPM在软件的新版本发布时,这种“原始”源代码,补丁程序和软件生成指令的清晰描述简化了软件包的维护工作。
3 RPM的功能简言之,RPM具有如下五大功能:安装——将软件从包中解出来,并且安装到硬盘。
卸载——将软件从硬盘清除。
升级——替换软件的旧版本。
查询——查询软件包的信息。
验证——检验系统中的软件与包中软件的区别。
4 RPM包的名称格式RPM包的名称有其特有的格式,如某软件的RPM包名称由如下部分组成:name-version.type.rpm其中:name为软件的名称version为软件的版本号type为包的类型i[3456]86:表示在Inte l x 86计算机平台上编译的sparc:表示在sparc计算机平台上编译的alpha:表示在alpha计算机平台上编译的src:表示软件源代码rpm 为文件扩展名例如:bind-9.2.1-16.i386.rpm:是bind(9.2.1-16)的Intel 386平台编译版本包bind-9.2.1-16.sparc.rpm:是bind(9.2.1-16)的sparc平台编译版本包bind-9.2.1-16.alpha.rpm:是bind(9.2.1-16)的alpha平台编译版本包bind-9.2.1-16.src.rpm:是bind(9.2.1-16)的源代码版本包因此,看到一个RPM包的文件名之后就可以获得该软件包的大致信息了。
linux中的rpm命令的详细解释linxu下的rpm命令其实是一个软件包管理程序。
下面由店铺为大家整理了linux的rpm命令的详细解释的相关知识,希望对大家有帮助!一、linux中的rm命令的详细解释1.什么是rpmRPM 是Red hat Package Manager 的缩写,本意是Red Hat软件包管理,由RedHat开发出来的一种软件包管理程序,后来被LSB(Linux规范标准)会正式吸纳为Linux的标准包格式,命名为RPM Package Manager,现在所说的RPM即使 RPM Package Manager的缩写。
2.为什么要使用RPM软件包管理器RPM软件包管理器简化了用户在Linux系统上对软件进行安装、卸载、升级或更新的过程,只需要简短的命令就可以完成,从而省去了对对源代码进行编译、安装的复杂过程,从而大大提高了管理人员的工作效率3.RPM命名格式命名格式:appname-VERSION-RELEASE.ARCH.rpmVERSION:magior:主版本号minor:次版本号release:发行号RELEASE:包自身的修订号,有时候会包含适用的OS信息:eg: bash-4.3.2-2.centos6.x86_64.rpm中 2.centos6 就是RELEASE号ARCH:适用平台x86: i386, i486, i586, i686x86_64: x86_64, amd64powerpc: ppcnoarch: 跟平台无关;(perl,python,ruby等编译的程序)RPM分包机制:核心包,主包:命名与源项目名称一致;eg: bash-4.3.2-2.centos6.x86_64.rpm子包(支包):命令为源项目名称后附加支包中的文件提供的功能组成eg: bash-devel-4.3.2-2.centos6.x86_64.rpmRPM包获取途径1、系统的发行光盘镜像或官方站点2、程序包官方站点3、第三方组织:epel4、搜索RPM包的搜索引擎建议:生产过程中对rpm软件包安装之前需要验证程序包的来源合法性及包的完整性二、Linux中的rpm命令的安装方法安装语法格式:rpm {-i|--install} [install-options] PACKAGE_FILE1...安装时常用选项:-h: hash,以#来表示安装进度;每个# 号表示2%的安装进度-v, --verbose:显示安装过程中的详细信息;-vv: 能显示更加详细信息-vvv:--test:测试安装,不执行真正的安装过程,而仅报告依赖关系及冲突信息等;--nodeps :忽略依赖关系安装,【能安装成功,但未必能成功运行;】--replacepkgs:覆盖安装--重新安装并覆盖原有的文件--force:强制安装--olepackage:降级到旧版本--relocate 指明安装位置--replacefiles 指明安装时替换某个文件--replacepkgs 指明安装时替换整个包安装时常用组合: -ivh --ivvh三、Linux中rpm命令的升级步骤升级语法格式:rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...-U: 升级或安装rpm {-F|--freshen} [install-options] PACKAGE_FILE ...-F:升级【只进行升级】升级常用选项-v, --verbose:显示升级过程中的详细信息;-vv: 能显示更加详细信息-vvv:--test:测试升级安装,不执行真正的升级安装过程,而仅报告依赖关系及冲突信息等;--nodeps :忽略依赖关系进行升级,--force:强制升级--olepackage:降级到旧版本升级时常用组合: -Uvh --Uvvh注意1:一定不要对内核执行升级;Linux允许多内核共存,所以,可以直接安装多个不同版本内核;注意2:如果程序包的配置文件安装后曾被修改,升级时,新版本的文件不会覆盖老版本的配置文件,而把新版本的配置文件重命名(加后缀.rpmnew)后保存;。
linux命令之rpm(软件的安装卸载)rpm⼯作原理:当我们使⽤rpm⼯具安装软件包时,它会⾸先找到软件包中的⼀个记录⽂件,该⽂件记录了这个软件安装时需要的依赖包,如果包已经存在,则可以顺利安装,如果不存在,则提⽰缺少相应的依赖。
rpm 执⾏安装包⼆进制包(Binary)以及源代码包(Source)两种。
⼆进制包可以直接安装在计算机中,⽽源代码包将会由RPM⾃动编译、安装。
源代码包经常以src.rpm作为后缀名。
rpm优点:l 软件包安装的环境必须与打包时的环境⼀致l 必须安装了软件的依赖软件RPM包管理的⽤途;1、可以安装、删除、升级和管理软件;当然也⽀持在线安装和升级软件;2、通过RPM包管理能知道软件包包含哪些⽂件,也能知道系统中的某个⽂件属于哪个软件包;3、可以在查询系统中的软件包是否安装以及其版本;4、作为开发者可以把⾃⼰的程序打包为RPM 包发布;5、软件包签名GPG和MD5的导⼊、验证和签名发布6、依赖性的检查,查看是否有软件包由于不兼容⽽扰乱了系统;rpm常见命令参数⽤法: rpm [选项...]-a:查询所有套件;-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的⽂件名称;-c:只列出组态配置⽂件,本参数需配合"-l"参数使⽤;-d:只列出⽂本⽂件,本参数需配合"-l"参数使⽤;-e<套件档>或--erase<套件档>:删除指定的套件;-f<⽂件>+:查询拥有指定⽂件的套件;-h或--hash:套件安装时列出标记;-i:显⽰套件的相关信息;-i<套件档>或--install<套件档>:安装指定的套件档;-l:显⽰套件的⽂件列表;-p<套件档>+:查询指定的RPM套件档;-q:使⽤询问模式,当遇到任何问题时,rpm指令会先询问⽤户;-R:显⽰套件的关联性信息;-s:显⽰⽂件状态,本参数需配合"-l"参数使⽤;-U<套件档>或--upgrade<套件档>:升级指定的套件档;-v:显⽰指令执⾏过程;-vv:详细显⽰指令执⾏过程,便于排错。
Linux2 RPM包管理RPM包发布的时候都有特定的命名方式,一般是由软件名称、版本号、发布版本号,运行的体系结构和类型后缀组成,他们之间使用“-”分隔。
下面以gzip软件的RPM安装包文件gzip-1.3.5-6.i386.rpm为例说明各部分的含义。
●“gzip”是软件的名称●“1.3.5”是软件的版本号版本号的格式通常为“主版本号.次版本号.修正号”。
主版本号和次版本号在项目计划中便已经指定,标志重要的功能变动。
修正号表示小的功能变更或用来管理项目的分支。
●“6”是发布版本号。
表示编译的次数,同样一个版本源程序,如果编译过程中使用了不同的参数,会有不同的行为。
发布版本号就是表示这个RPM包是第几次生成的,每次编译可以使用不同的参数。
●“i386”是RPM包软件能在什么样的体系结构运行。
现在,RPM支持的体系结构有Intelx86(i386,i586,i686),Sun RISC SPARC(spa rc)和alpha。
Intelx86体系结构的i386表示这个软件在Intel 80386以上的计算机上运行;i586直这个软件包能在Intel Pentium以上的计算机运行;i686表示这个软件包在Intel Pentium II 以上的计算机运行。
有于i686这个软件包软件通常针对CPU 进行了优化,所以最好还是使用i686这个软件包。
需要注意的还有一种noarch的R PM包,表示这个软件包于体系结构无关,可一在不同的CPU中使用。
可以查看文件/proc/cpuinfo来判断当前体系结构。
●“rpm”是RPM包类型的后缀RPM包有rpm和src.rpm两种类型后缀。
“rpm”类型后缀是将软件编译后打包成二进制文件的格式。
“src.rpm”类型后缀是源程序RPM包类型(srpm)的后缀,不能直接安装运行,需要安装时进行本地编译。
在系统中并不是所有的软件都能独立运行的,可能软件运行中需要使用其他的软件提供相应的功能,这样各个软件就构成了互相依赖的关系,使的软件的安装,卸载和升级变得非常复杂。
LINUX软件包的一般安装方法 在LINUX的世界里,软件的安装主要的是有两种方式,一种是rpm包,还有一种就是tar包。
对于这两种包,一般的安装方法是这样的: 1)rpm包的安装 安装rpm包时需要一个参数就是-i.也就是就是可以用这样的命令来安装: rpm -i *.rpm 但是我们在安装时总是希望能看到一些信息,这时就可以用这样的命令: rpm -ivh *.rpm 这时就会显示出软件包的安装进度以及安装中的信息等。
如果想要安装的软件包系统中已经存在而只需要升级安装一下的话可以这样来做: rpm -U *.rpm 这样就会升级系统中已经存在软件包了。
而御载一个已安装的软件包的命令是这样的: rpm -e packagename 要想列出系统已经安装的rpm包的清单可以输入下面的命令: rpm -qa 但是此时列出的清单会是很长的,而我们所需要的只是其中的一个,这时我们可以用下列的命令来达到我们的目的: rpm -qa |grep -i 'name' 在软件包的安装过程中我们有可能用到的参数如下: --force 强行安装 -v 用符号“#”来显示安装进度 --percent 用百分比来显示安装进度 -nodeps 忽视已丢失的依赖性文件强行进行安装 -test 这个参数并不进行实际的安装,而只是检查软件包能否成功安装 -v 告诉RPM报告每一步的情况 2)tar包 tar包有两种格式,一种是.tar.gz,另一种就是tar.bz2.这两种包的安装方法一般是这样的: 解压:这两种包要有用两个不同的命令来解包,分别是: tar -xzvf *.tar.gz tar -xvjf *.tar.bz2 解压以后进入解压出来的目录,看一下里面的东西,一般而言这样的包里会有README文件的,打开看一下的他的安装方法。
一般来说这样的包安装一般是下面的步骤: make make install 这样就会将软件包安装上了。
RPM(Red Hat Package Manager)是Red Hat发行版中使用的包管理工具,它用于安装、卸载、更新和查询已安装的软件包。
RPM使用二进制包进行软件分发,这些包包含了预编译的程序和相关的配置文件。
以下是对RPM工作原理和作业过程的详细介绍:1. 打包:RPM使用.spec文件来描述软件包的元数据,如软件包名称、版本、描述等。
开发人员使用rpmbuild工具根据源码和.spec 文件构建RPM包。
RPM包包含了预编译的程序和相关的配置文件,以便在目标系统上安装。
2. 安装:要安装一个RPM包,用户可以使用rpm命令或者通过图形界面工具(如Yum或DNF)进行安装。
RPM会检查系统中的依赖关系,确保所有必需的软件包都已安装。
然后,RPM会将软件包文件复制到目标系统上,并执行安装脚本以完成安装过程。
3. 卸载:要卸载一个RPM包,用户可以使用rpm命令或者通过图形界面工具进行卸载。
RPM会执行卸载脚本,删除软件包文件,并处理任何依赖关系。
4. 查询:用户可以使用rpm命令或者通过图形界面工具查询已安装或可用的软件包信息。
例如,可以查询软件包的详细描述、版本号、安装状态等。
5. 验证:RPM提供了验证机制,以确保软件包的完整性和真实性。
通过使用数字签名,RPM可以验证软件包的来源和完整性,防止篡改。
6. 依赖管理:RPM能够自动处理软件包的依赖关系。
当安装或卸载一个软件包时,RPM会检查该软件包所依赖的其他软件包是否已安装,并自动处理依赖关系,以确保系统的正常运行。
7. 软件仓库管理:RPM支持多个软件仓库的管理,以便用户可以从多个源获取软件包。
图形界面工具如Yum或DNF提供了方便的界面来管理软件仓库,包括添加、删除或配置仓库。
8. 安全性:RPM本身不提供安全性功能,但它是基于Linux操作系统的安全机制之上的。
Linux操作系统提供了用户权限管理、文件系统权限和防火墙等安全机制,以确保系统的安全性和隔离性。
Linux中RPM包安装查询卸载命令⼩结及yum命令详解之前⼀直在⽤ubuntu,安装卸载软件基本上是使⽤apt-get 这个⾮常的简单,⽽且过程中遇到的软件依赖会⾃动帮我们处理,类似于傻⽠式安装。
另外在 Linux 操作系统下,⼏乎所有的软件都可以通过RPM 进⾏安装、卸载及管理等操作。
RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,⽤于管理Linux 下软件包的软件。
Linux 安装时,除了⼏个核⼼模块以外,其余⼏乎所有的模块均通过RPM 完成安装。
RPM 有五种操作模式,分别为:安装、卸载、升级、查询和验证。
RPM 安装操作命令:rpm -i 需要安装的包⽂件名举例如下:rpm -i example.rpm 安装 example.rpm 包;rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显⽰正在安装的⽂件信息;rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显⽰正在安装的⽂件信息及安装进度;RPM 查询操作命令:rpm -q …附加查询命令:a 查询所有已经安装的包以下两个附加命令⽤于查询安装包的信息;i 显⽰安装包的信息;l 显⽰安装包中的所有⽂件被安装到哪些⽬录下;s 显⽰安装版中的所有⽂件状态及被安装到哪些⽬录下;以下两个附加命令⽤于指定需要查询的是安装包还是已安装后的⽂件;p 查询的是安装包的信息;f 查询的是已安装的某⽂件信息;举例如下:rpm -qa | grep tomcat4 查看 tomcat4 是否被安装;rpm -qip example.rpm 查看 example.rpm 安装包的信息;rpm -qif /bin/df 查看/bin/df ⽂件所在安装包的信息;rpm -qlf /bin/df 查看/bin/df ⽂件所在安装包中的各个⽂件分别被安装到哪个⽬录下;RPM 卸载操作命令:rpm -e 需要卸载的安装包在卸载之前,通常需要使⽤rpm -q …命令查出需要卸载的安装包名称。
Linux学习之CentOS(二十三)--Linux软件管理之源代码以及RPM软件包管理在Linux系统下,对于软件包的管理有多种机制,有源代码方式、RPM软件包管理方式以及YUM软件管理方式,本篇随笔将详细讲解CentOS下源代码形式安装软件以及RPM软件包管理机制一、源代码形式首先我们先来看一下源代码的方式。
我们知道,在开源的环境下,大多数的开源软件都是以源代码的形式来发布,通常将源代码打包成tar.gz的归档压缩文件发布到网上供我们下载使用。
但是我们下载下来的源代码方式我们还不能够直接使用,不像在windows系统上直接下载下来可执行的二进制文件,我们需要将下载好的源码编译成可执行的二进制文件才能运行使用,源代码形式安装流程一般如下:①./configure检查编译环境、相关库文件以及配置参数并生成makefile②make将源代码编译成可执行的二进制文件③make install安装编译好的可执行文件基本上所有以源代码形式发布的软件都是按照以上流程来进行安装,大家可能觉得其实步骤就这三个,安装过程非常简单!其实不然,通常以源代码形式发布的软件,在对其进行①、②步操作时往往会出很多很多的问题,比如说编译过程中缺少所需的库文件,或者说编译源码时又需要依赖A文件,编译A文件时可能又需要用到B文件,这样我们需要花大量时间去找这些依赖的问题,同时如果一个软件特别大的话,我们在将其编译过程中要等待非常久的时间。
所以说其实源代码形式的安装软件并不是我们想象的那么简单,但是为什么源代码形式的软件管理还一直存在呢?必然也有其优点,因为我们的源码都要通过编译成可执行的二进制文件才行,所以说它适用于各种操作系统平台,我只需要在各个操作系统平台上对其源码进行编译即可运行起来了。
总结一下:源代码形式的缺点:操作复杂、编译时间长、极易出现错误源代码形式的优点:适用于所有的操作系统、可定制二、RPM软件包管理因为源代码方式安装软件终究还是比较麻烦,所以说现在出现了许多代替源码方式安装的软件管理机制。
Linux程序包安装rpm、yum、apt-get命令RPM程序包命名格式:⽂件名-版本号-修订号.产品类型.硬件平台.rpm常⽤选项说明:-i 安装新软件包。
-U 升级已有的软件包。
若不存在,则不安装该软件包。
-e 卸载已安装的软件包。
-v 显⽰详细的安装过程。
-h 使⽤“###”显⽰安装进度条。
-q 查询已安装的软件的数据库。
--initdb 初始化数据库,如果数据库不存在,则新建,否则不执⾏任何操作。
rebuilddb 重建,⽆论当前存在与否,直接新建数据库。
常见参数⽤法:安装: -ivh ,--nodeps,--replacepkgs卸载: -ev , --nodeps升级:-Uvh,-Fvh,--nodeps,--oldpackage查询:-qa,-qf,-qi,-qd,-qc,-q --scripts,-q --changlog,-q --requires校验;-V注意:rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时,需要先安装对应的依赖性软件包,⽅可继续安装。
导⼊GPG密钥:--import,-K,--nodigest,--nosidnature实例:1、查看vsftpd软件包的安装情况。
rpm -qa|grep vsftpd如果显⽰结果包含“vsftpd-2.2.2-6.e16.i686”,则说明系统已经安装了vcftpd软件包。
2、如果系统没有安装vsftpd软件包,可进⼊安装光盘的Pachages⽬录,输⼊下⾯命令安装:rpm -ivh vsftpd-2.2.2-6.e16.i686.rpm3、vsftpd软件包验证。
rpm -V vsftpdYUM管理Yum(全称为 Yellow dog Updater, Modified)是⼀个在和RedHat以及中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器⾃动下载RPM包并且安装,根据依赖性关系,⼀次安装所有依赖的软体包。
RPMRPM是Red Hat Package Manager(Red Hat包管理器)的简称,是最早由Red Hat提出的在Linux下的安装软件包,现在已经被广泛应用到其它公司发行的Linux系统中。
RPM软件包有二进制包和源代码包之分,二进制包可以直接安装,但只能正确安装到特定体系结构的计算机上;源代码包首先在要安装的计算机上进行编译,编译完成后再进行安装,源代码包适合任何体系结构的计算机。
RPM软件包的命名有一定的规律,它遵循名称-版本-修正版-类型的规则,方便用户辨别RPM软件包。
例如某个RPM软件包的名称为:MySoftware-1.2-1.i386.rpm,表示该软件包名称为MySoftware、版本为1.2、第1次修订、适合Intel386体系结构计算机的二进制包。
若某个软件包的名称为ipvsadm-1.24-6.src.rpm,表示该软件包名称为ipvsadm、版本为1.24、第6次修订、是一个源代码包。
RPM软件包的安装、卸载可以通过rpm命令进行,rpm命令中有命令参数、详细选项、信息选项和通用选项,其中,命令参数代表rpm命令要执行的功能;详细选项是对命令参数所代表功能的进一步详细说明;信息选项使命令在执行过程中输出相应的信息;通用选项主要是设置路径、显示附加信息。
下面主要以命令参数为主,对rpm命令进行介绍。
1.安装RPM软件包命令格式为:rpm -i ( or --install) 选项file1.rpm ... fileN.rpm,其中file1.rpm ... fileN.rpm表示要安装的RPM软件包,选项分详细选项和通用选项,介绍如下。
(1)详细选项-h (or --hash):安装时输出hash记号(#)。
--test:只对安装进行测试,并不实际安装。
--percent:以百分比的形式输出安装的进度。
--excludedocs:不安装软件包中的文档文件。
--includedocs:安装文档文件。
Linux操作系统rpm包安装方式详细步骤Linux操作系统rpm包安装方式详细步骤安装包(Install pack),即软件安装包,是可自行解压缩文件的集合,其中包括软件安装的所有文件。
运行这个安装包(可执行文件),可以将此软件的所有文件释放到硬盘上,完成修改注册表、修改系统设置、创建快捷方式等工作。
安装包文件多为exe格式。
以下是店铺帮大家整理的Linux操作系统rpm包安装方式详细步骤,仅供参考,大家一起来看看吧。
Linux操作系统rpm包安装方式详细步骤篇1在Windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续“下一步”即可,然而linux系统下安装一个软件似乎并不那么轻松了,因为我们不是在图形界面下。
所以你要学会如何在linux 下安装一个软件。
在前面的内容中多次提到的yum,这个yum是RedHat所特有的安装RPM程序包的工具,使用起来相当方便。
因为使用RPM安装某一个程序包有可能会因为该程序包依赖另一个程序包而无法安装。
而使用yum工具就可以连同依赖的程序包一起安装。
当然CentOS同样可以使用yum工具,而且在CentOS中你可以免费使用yum,但Redhat中只有当你付费后才能使用yum,默认是无法使用yum的。
在介绍yum之前先说一说RPM相关的东西。
【RPM工具】RPM是”Redhat Package Manager”的缩写,根据名字也能猜到这是Redhat公司开发出来的。
RPM 是以一种数据库记录的方式来将你所需要的套件安装到你的Linux 主机的一套管理程序。
也就是说,你的linux系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间依赖相关性。
RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。
但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在着相互依赖的情况;卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。
rpm包的简单制作及其他操作RPM包的简单制作及其他操作●简单介绍RPM(Redhat Package Manager)是以⼀种数据库记录的⽅式将所需要的套件安装到Linux主机的⼀套管理程序。
它可以使得⽤户可以从源码构建⼀个⼆进制的软件发⾏包和利⽤补丁包给软件打补丁。
因其灵活易⽤,所以很多Linux发⾏版的默认软件安装包都采⽤此打包格式。
●制作RPM包的流程1.准备打包环境在CentOS系统下创建rpmbuild的⼯作⽬录:~/rpmbuild/SOURCES~/rpmbuild/SPECS~/rpmbuild/BUILD~/rpmbuild/RPMS~/rpmbuild/BUILDROOT~/rpmbuild/SRPMS如果你的⽤户⽬录主⽬录下没有类似⽬录结构,你可以通过⼀个⼯具软件来⾃动配置和⽣成,如下:#yum install rpmdevtools运⾏⾃动配置命令⾃动⽣成如上⽬录,并配置⼀些必要操作。
#rpmdev-setuptreerpmdev-setuptree命令默认将再当前⽤户主⽬录下创建⼀个RPM构建根⽬录结构,如果需要改变默认位置,可以修改配置⽂件:~/.rpmmacros中变量_topdir对应的值即可。
如将rpmbuild⽬录配置到/home⽬录下:echo …%_topdir %(echo $HOME) /rpmbuild?>~/.rpmmacrosrpmbuild⼯作⽬录功能简介:2.SPEC⽂档的撰写是制作RPM包的核⼼,也是最难的⼀步。
制作RPM包就是根据SPEC⽂件⾥⾯的配置信息来构建RPM包。
SPEC⽂档分为如下⼏个部分:1)SPEC⽂档的头部Name: myapp <===软件包的名字(后⾯会⽤到)Version: 0.1.0 <===软件包的版本(后⾯会⽤到)Release: 1%{?dist} <===发布序号Summary: my first rpm <===软件包的摘要信息Group: <===软件包的安装分类,参见/usr/share/doc/rpm-4.x.x/GROUPS这个⽂件License: GPL <===软件的授权⽅式URL: <===这⾥本来写源码包的下载路径或者⾃⼰的博客地址或者公司⽹址之类Source0: %{name}-%{version}.tar.gz <===源代码包的名称(默认时rpmbuid回到SOURCES⽬录中去找),这⾥的name和version就是前两⾏定义的值。
第三章安装软件3.1 RPMRPM(RedHat Package Manager):RPM软件包管理器是一种用于Internet下载包的打包及安装工具,为二进制已编译文件,与之对应的开源代码的格式为SRPM。
RPM命令中,长命令格式--query与缩写命令格式-q相对应。
下面是简单的命令说明:命令行选项--install 安装一个软件包--upgrade 升级或将当前已安装软件更新到最新版本--erase 移出或删除一个已安装软件包--query 查询软件信息--force 强制进行安装。
-h 使用符号“#”指示安装进度,与-v参数同时显示效果更好。
--percent 显示已完成百分比进度。
-nodeps 不进行依赖关系检查--test 测试安装是否能成功完成。
-V 检验系统中的RPM包或文件。
-v(/--verbose,详细的) 通知RPM报告每一步操作的详细信息。
例:rpm -qi bash,显示bash包详细信息rpm -ql bash,列出bash包包含的所有文件rpm -qc bash,列出bash包中配置文件rpm -q --qf “[%{INSTALLTIME:date}% \n]” bash,查找bash包安装至系统中的时间使用RPM安装软件包1)# mount /media/cdrom,插入Fedora光盘,将在CDReadOnlyMeida中的文件挂载至/media/cdrom/中;2)# cd /media/cdrom/Fedora/RPMS/,并#ls joe*确定文件是否在其目录下;3)# rpm –install –verbose –hash –test joe*,测试软件依赖关系;4)# rpm –ivh joe*,安装软件;5)# rpm –q joe,查询命令以确认应用安装至系统中。
删除RPM软件包# rpm –e –vvv joe,删除joe软件包并显示详细信息。
linux程序的源码编译安装方式毕竟比较繁琐,安装后也不易管理,为此linux 官方提供了专门的程序包管理器来解决这些问题一、程序包管理器程序包管理器:将源程序编译并打包成一个或有限的几个文件,可用于实现安装、查询、升级、卸载等功能程序包管理器的管理实现:①数据库,用于记录:程序名及版本程序之间的依赖关系功能性说明安装生成的各文件路径及校验码②程序的组成清单:文件清单安装卸载时运行的脚本常用程序包管理器:Redhat:rpm(redhat package manager),其对应的程序包后缀为.rpm,对应的前端工具为yumDebian:dpkg,其对应的程序包后缀为.deb,对应的前端工具为apt-getrpm包的制作需要rpmbuild工具,其制作过程这里不作说明,以下详解一下rpm包的管理二、rpm程序包2.1、rpm包命名格式:name-version-release.arch.rpm,如httpd-2.2.15-45.el6.centos.x86_64.rpmversion:major.minor.release,同源码release:rpm自身发行号,与源码的发行号无关,仅用于标识对rpm包不同制作的修订,同时release还包含此包适用的OSarch:适用的硬件平台x86: i386, i486, i586, i686等x86_64: x86_64powerpc: ppcnoarch: 依赖于虚拟机2.2、rpm分包机制一个程序体积可能很大,为了方便管理,rpm包管理器依据功能性差异,将一个程序打包成若干个包主包(核心包):其name与源程序一致,如httpd-2.2.15-45.el6.centos.x86_64.rpm子包:httpd-devel-2.2.15-45.el6.centos.x86_64.rpmhttpd-tools-2.2.15-45.el6.centos.x86_64.rpm区别:程序x依赖于y和z,若x是基于rpm包安装,则x依赖的是y和z的核心包;若x基于源码编译安装,则x依赖的是y和z的开发包2.3、获取rpm包的途径①官方发行的光盘、官方站点、镜像站点②项目的官网:源代码、rpm包③第三方机构或个人制作并公开发布许多rpm包④额外程序包的可靠途径:EPEL,为Federa所维护2.4、rpm包的合法性验证rpm包的合法性包括来源合法性和包的完整性两个方面包的制作者使用单向加密算法提取出原始数据的特征码,并使用自己的私钥加密这段特征码,附加在原始数据之后验证过程:前提:必须有可靠机制获取到包制作者的公钥①使用包制作者的公钥解密那段加密的特征码,能解密则说明来源合法②使用与制作者同样的单向加密算法提取数据的特征码,并与解密得到的特征码比对,相同则说明包完整性没问题2.5、rpm 包管理器的使用㈠验证程序包的合法性我们在安装rpm 程序包之前,一般要检验其合法性,尤其是从非官方或非权威站点获得的包。
当然,不检验包的合法性并不影响包的安装①导入制作者的公钥rpm --import /path/to/key_file②若已导入公钥,rpm 安装程序包的过程中会自动检查其合法性③手动检查:rpm -K /path/to/pkg_namerpm --checksig /path/to/pkg_name不检查包完整性:rpm -K --nodigest /path/to/pkg_name不检查包的来源合法性:rpm -K --nosignature /path/to/pkg_name④rpm -qa gpg-pubkey* #显示所有已导入的gpg 格式的公钥rpm -qi gpg-pubkey-NAME #显示密钥的详细信息?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@localhost ~]# mount /dev/cdrom /media #挂载centos 官网发行的光盘[root@localhost ~]# ls /media #centos 光盘中自带了许多rpm 包,位于Packages 目录中CentOS_BuildTag EULA imagesPackagesrepodata RPM-GPG-KEY-CentOS-Debug-6 RPM-GPG-KEY-CentOS-Testing-6EFI GPL isolinux RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6 TRANS.TBL[root@localhost ~]# cd /media/Packages/[root@localhost Packages]# ls...libreoffice-langpack-et-4.0.4.2-9.el6.x86_64.rpm zlib-devel-1.2.3-29.el6.x86_64.rpmlibreoffice-langpack-eu-4.0.4.2-9.el6.x86_64.rpm zsh-4.3.10-7.el6.x86_64.rpm16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 [root@localhost Packages]# rpm -ivh --test samba-3.6.9-164.el6.x86_64.rpm #测试安装warning: samba-3.6.9-164.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY#警告:没有公钥,无法验证包的合法性Preparing...########################################### [100%] [root@localhost Packages]# rpm --import ../RPM-GPG-KEY-CentOS-6 #导入光盘中提供的公钥[root@localhost Packages]# rpm -ivh --test samba-3.6.9-164.el6.x86_64.rpm #可以看到警告信息已消除,验证通过Preparing...########################################### [100%] [root@localhost Packages]# rpm -K samba-3.6.9-164.el6.x86_64.rpm #还可手动检查samba-3.6.9-164.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK[root@localhost Packages]# rpm -qa gpg-pubkey* #查看已导入的所有公钥gpg-pubkey-c105b9de-4e0fd3a3[root@localhost Packages]# rpm -qi gpg-pubkey-c105b9de-4e0fd3a3 #查看指定公钥的详细信息Name : gpg-pubkey Relocations: (not relocatable)Version : c105b9de Vendor: (none)Release : 4e0fd3a3Build Date: Wed 28 Oct 2015 08:31:40 PM CSTInstall Date: Wed 28 Oct 2015 08:31:40 PM CSTBuild Host: localhost Group : Public Keys Source RPM: (none)Size : 0 License: pubkeySignature : (none)Summary : gpg(CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@>)Description :-----BEGIN PGP PUBLIC KEY BLOCK-----Version: rpm-4.8.0 (NSS-3)mQINBE4P06MBEACqn48FZgYkG2QrtUAVDV58H6LpDYEcTcv4CIFSkgs6dJ9TavCW ...㈡安装程序包rpm -i [option] /path/to/package_file常用选项:-i :install-h :安装时显示hash 码,用来表示安装进度-v :显示执行过程-vv :详细显示执行过程--test :仅作测试,并不真正安装--nodeps :忽略依赖关系--replacepkgs :重新安装。
如果原有的配置文件作了修改,重装可能不执行替换,而是将新生成的配置文件重命名为X.rpmnew常用组合选项:-ivh如果依赖于其它包:①解决依赖关系②使用--nodeps 选项忽略依赖关系,能安装上,但可能无法运行?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@localhost Packages]# rpm -ivh samba-3.6.9-164.el6.x86_64.rpm Preparing...########################################### [100%] 1:samba########################################### [100%][root@localhost Packages]# rpm -ivh --test mysql-5.1.71-1.el6.x86_64.rpm error: Failed dependencies:提示需要先解决依赖关系 libmysqlclient.so.16()(64bit) is needed by mysql-5.1.71-1.el6.x86_64 libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by mysql-5.1.71-1.el6.x86_64 libmysqlclient_r.so.16()(64bit) is needed by mysql-5.1.71-1.el6.x86_64 libmysqlclient_r.so.16(libmysqlclient_16)(64bit) is needed by mysql-5.1.71-1.el6.x86_64 mysql-libs = 5.1.71-1.el6 is needed by mysql-5.1.71-1.el6.x86_64 [root@localhost Packages]# rpm -ivh mysql-libs-5.1.71-1.el6.x86_64.rpm #安装被依赖的包 Preparing...########################################### [100%] 1:mysql-libs ########################################### [100%][root@localhost Packages]# rpm -ivh mysql-5.1.71-1.el6.x86_64.rpm Preparing...########################################### [100%] 1:mysql########################################### [100%]㈢卸载程序包rpm -e [option] pkg_name常用选项:-e :erase-v ,-vv ,--test ,--nodeps如果被其它包依赖:①将依赖于此包的所有包都卸载②忽略依赖关系,能卸载,但可能造成其它包无法正常使用如果包的配置文件被修改,卸载时此文件将会被重命名(X.rpmsave )并保留?1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@localhost Packages]# rpm -e mysql-libs #卸载指定的包 error: Failed dependencies: #提示该包被mysql 包依赖,无法卸载 libmysqlclient.so.16()(64bit) is needed by (installed) mysql-5.1.71-1.el6.x86_64 libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) mysql-5.1.71-1.el6.x86_64 libmysqlclient_r.so.16()(64bit) is needed by (installed) mysql-5.1.71-1.el6.x86_64 libmysqlclient_r.so.16(libmysqlclient_16)(64bit) is needed by (installed) mysql-5.1.71-1.el6.x86_64 mysql-libs = 5.1.71-1.el6 is needed by (installed) mysql-5.1.71-1.el6.x86_64 [root@localhost Packages]# rpm -e --nodeps mysql-libs #忽略依赖关系强制卸载 [root@localhost Packages]# mysql #可以看到mysql 已无法使用了 mysql: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory [root@localhost Packages]# vim /etc/samba/smbusers[root@localhost Packages]# rpm -e samba #卸载sambawarning: /etc/samba/smbusers saved as /etc/samba/smbusers.rpmsave #可以看到,修改后的配置文件在程序卸载后会保留㈣升级程序包:新版本取代老版本rpm -U/-F [option] /path/to/package_file常用选项:-U :升级或安装。