Linux如何安装rpm格式的文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux如何安装rpm格式的文件?相关的知识,希望对你有一定的参考价值。
cd linuxqq-v1.0.2-beta1.i386.rpm所在目录 这句话到底什么意思啊
1、cd到你存放rpm文件包的目录
rpm -ivh linuxqq-v1.0.2-beta1.i386.rpm
安装时可能会遇到缺少包的错误。
rpm -ivh --replacepkgs webmin-1.290-1.noarch.rpm
软件包重复安装将会失败,若仍需要安装必须加--replacepkgs
rpm -ivh --replacefiles webmin-1.290-1.noarch.rpm
软件包的某个文件已在安装其他软件包时安装过,则安装将会失败,若仍需要安装必须加--replacefiles
rpm -ivh --nodeps webmin-1.290-1.noarch.rpm
软件包所依赖的软件包未安装,则安装将会失败,若仍需要安装必须加—nodeps
rpm -ivh --force webmin-1.290-1.noarch.rpm 强制安装指定软件包
2、学习Linux的方法:
1、先了解基础,找一本薄一点的,浅一点的书,了解一下什么是linux。不建议马上看《鸟哥的Linux私房菜》,这本书很不错,如果了解linux基础之后再看,不受益匪浅。没基础看《鸟哥的Linux私房菜》比较痛苦,内容很多。
2、了解之后,在自己电脑上弄个虚拟机,装上linux系统。专攻《鸟哥的Linux私房菜》。当你把这本书攻下来时,才知道原来命令行并不可怕。
备注:学linux最主要靠实践,不实践,只看书没好处。
linux常用命令:
1、man 对你熟悉或不熟悉的命令提供帮助解释
eg:man ls 就可以查看ls相关的用法
注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行。
2、 ls 查看目录或者文件的属*,列举出任一目录下面的文件
eg: ls /usr/man
ls -l
a.d表示目录(directory),如果是一个”-”表示是文件,如果是l则表示是一个连接文件(link)
b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x)。
3、 cp 拷贝文件
eg: cp filename1 filename2 //把filename1拷贝成filename2
cp 1.c netseek/2.c //将1.c拷到netseek目录下命名为2.c
4、rm 删除文件和目录
eg: rm 1.c //将1.c这个文件删除
5、 mv 移走目录或者改文件名
eg: mv filename1 filename2 //将filename1 改名为filename2
mv qib.tgz ../qib.tgz //移到上一级目录
6、 cd 改变当前目录 pwd 查看当前所在目录完整路径
eg: pwd //查看当前所在目录路径
cd netseek //进入netseek这个目录
cd //退出当前目录
7、 cat,more命令
将某个文件的内容显示出来。两个命令所不同的是:cat把文件内容一直打印出来,而 more则分屏显示
eg; cat>1.c //就可以把代码粘帖到1.c文件里,按ctrl+d 保存代码。
cat 1.c 或more 1.c //都可以查看里面的内容。
gcc -o 1 1.c //将1.c编译成.exe文件,我们可以用此命编译出代码。
8、chmod 命令 权限修改 用法:chmod 一位8进制数 filename。
eg: chmod u+x filenmame //只想给自己运行,别人只能读
//u表示文件主人, g 表示文件文件所在组。 o 表示其他人 ;r 表可读,w 表可写,x 表可以运行
chmod g+x filename //同组的人来执行
9、clear,date命令
clear:清屏,相当与DOS下的cls;date:显示当前时间。
10、 mount 加载一个硬件设备
用法:mount [参数] 要加载的设备 载入点
eg: mount /dev/cdrom
cd /mnt/cdrom //进入光盘目录
rpm -ivh linuxqq-v1.0.2-beta1.i386.rpm
安装时可能会遇到缺少包的错误。
rpm -ivh --replacepkgs webmin-1.290-1.noarch.rpm
软件包重复安装将会失败,若仍需要安装必须加--replacepkgs
rpm -ivh --replacefiles webmin-1.290-1.noarch.rpm
软件包的某个文件已在安装其他软件包时安装过,则安装将会失败,若仍需要安装必须加--replacefiles
rpm -ivh --nodeps webmin-1.290-1.noarch.rpm
软件包所依赖的软件包未安装,则安装将会失败,若仍需要安装必须加—nodeps
rpm -ivh --force webmin-1.290-1.noarch.rpm 强制安装指定软件包
(忽略软件包依赖性和文件冲突,不建议)本回答被提问者采纳 参考技术D 首先要明确一点:rpm包,用于redhat、centos、fedora以及Oracle Enterprise Linux等发行版。如果是ubuntu、debian是不能用rpm的,要用deb包。所以,先检查一下自己下载的安装包合不合适。要是不合适,赶快换。
如果说确信没错。rpm包的安装是rpm -i,然后是空格,空格的后面紧跟着你要安装的那个rpm包的完整的名称。
就是rpm -i xxxx.rpm。
还有两个参数,可写可不写。一个是v,有它,电脑会提示安装成功与否。一个是h,所谓h是hash,就是井字号。有这个h以后,安装rpm包的时候,会出现一对方括号,括号里面是一串井字号。它起到一个进度条的作用。有些时候,安装软件会遇到等了很长时间仍然没有任何提示的情况。用户就会有想法,这个软件到底安装的怎么样?进展到什么程度了?安装成功没有?而v和h就是起到一个提示安抚的作用。说明白点,就是给用户吃所谓定心丸的。v还有h对电脑没用。属于有它不多没它不少的参数。但是对于提高用户使用感受是有正面意义的。
所以,安装rpm包,也可写作rpm -ivh xxxx.rpm。
但是rpm包用依赖性问题。所以,最好的办法使用yum。现在一些新的发行版开始推行dnf。就是用yum install或dnf install安装rpm包。yum怎么用,dnf怎么用自行百度。
16Linux软件管理工具rpm详解
1 Linux软件安装概述
安装程序的方式:
软件包概述
RPM
RPM的缺点
RPM包
RPM分包
RPM命令的使用
rpm 包管理
升级注意项
如何安装rpm软件包
如何卸载rpm软件包
如何升级rpm软件包
如何查询rpm软件包
如何查看与rpm包相关的文件和其他信息
如何校验rpm包
RPM的数据库
1 Linux软件安装概述
安装程序的方式:
通用二进制格式:直接解压压缩文件,就可以使用。但一定要注意安装平台。
软件包管理器:如RPM。
软件包管理器的前端工具:如YUM。
源代码编译。
软件包概述
软件包的组成部分:
二进制程序
,位于 /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin 等目录中。库文件
,位于 /lib, /usr/lib, /usr/local/lib 等目录中。Linux中库文件以 .so(动态链接库)或 .a(静态链接库)作为文件后缀名。配置文件
,位于 /etc 目录中。帮助文件
:手册, README, INSTALL (/usr/share/doc/)
在没有软件包管理器之前,安装程序,卸载程序是非常繁杂的。
软件包管理工具的特性:
文件清单
文件放置路径
提供的功能说明
依赖关系
软件包管理器内部有一个数据库,其中记载着程序的基本信息,校验信息,程序路径信息等。
RPM
RPM早期被称为RedHat Package Manager,但由于目前RPM非常流行,且已经成为Linux工业标准。所以RPM现在又被称为RPM is Package Manager。
RPM管理支持事务机制。增强了程序安装卸载的管理。
RPM的功能:打包、安装、查询、升级、卸载、校验、数据库管理。
RPM的缺点
由于Linux中的程序大多是小程序。程序与程序之间存在非常复杂的依赖关系。RPM无法解决软件包的依赖关系。
RPM包
用RPM工具可以将二进制程序进行打包,包被称为RPM包。RPM包并不是跨平台的。RedHat的RPM包与SUSE的RPM包不能混用。实际上RedHat的安装,初始软件也都是使用RPM包进行安装的。
源程序的命名规范:name-version.tar.{gz|bz2|xz}
版本号
:major.minor.release
例:bash-4.3.1.tar.xz
RPM包的命名规范:name-version-release.os.arch.rpm
name
:程序名称。version
:程序版本号。release
(发行号):用于标识RPM包本身的发行号,与源程序的release号无关。os
:即说明RPM包支持的操作系统版本。如el6(即rhel6)、centos6、el5、suse11。arch
:主机平台。如i686、x86_64、amd64、ppc(power-pc)、noarch(即不依赖平台)
例:bash-4.3.2-5.el6.x86_64.rpm
RPM分包
在把二进制文件打包时,将主要功能打入主包。将辅助功能打入分包。分包在需要的情况下安装,若不需要就可以不安装。
Application-VERSION-ARCH.rpm //主包
Application-devel-VERSION-ARCH.rpm //开发子包
Application-utils-VERSION-ARHC.rpm //其它子包
Application-libs-VERSION-ARHC.rpm //其它子包
//包之间:可能存在依赖关系,甚至循环依赖
获取需要的RPM包
互联网中RPM常用站点:
http://mirrors.sohu.com
http://rpmfind.net
http://rpm.pbone.net/
RPM命令的使用
RPM常用选项:
-i:表示安装。
-v, -vv, -vvv:表示详细信息。
-h:以"#"号显示安装进度。
-q:查询指定包名。
-e:卸载指定包名。
-U:升级软件,若未软件尚未安装,则安装软件。
-F:升级软件。
-V:对RPM包进行验证。
--nodeps:忽略依赖关系。
--query:查询指定包名。同-q选项。
--hash:同-h。
--install:表示安装,同-i选项。
--test:仅作测试,不真正执行,可用于测试安装,测试卸载。
--replacepkgs:重新安装。替换原有的安装。
--force:忽略软件包及文件的冲突。
--initdb:新建RPM的数据库。
--rebuilddb:重建RPM的数据库。
--percent:以百分比的形式输出安装的进度。
RPM包的查询:
rpm -q:查询某一个RPM包是否已安装
rpm -qi:查询某一个RPM包的详细信息
rpm -ql:列出某RPM包中所包含的文件。
rpm -qf:查询某文件是哪个RPM包生成的。
rpm -qa:列出当前系统所有已安装的包
安装或卸载时,可能出现如下类似警告信息:warning:/etc/sysconfig/named created as /etc/sysconfig/named.rpmnew
该警告信息表示:rpm的配置文件被另存为了一份文件。
rpm 包管理
rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
**CentOS 系统上使用rpm 命令管理程序包:
安装、卸载、升级、查询、校验、数据库维护**
如何安装rpm软件包
rpm软件包的安装可以使用程序rpm来完成。执行下面的命令:
[[email protected] ~]# rpm -vih /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm
其中lrzsz-0.12.20-27.1.el6.x86_64.rpm
是你要安装的rpm包的文件名,一般置于当前目录下。
安装过程中可能出现下面的警告或者提示:
... conflict with ...
可能是要安装的包里有一些文件可能会覆盖现有的文件,缺省时这样的情况下是无法正确安装的可以用rpm --force -i
强制安装即可
... is needed by ...
... is not installed ...
此包需要的一些软件你没有安装可以用rpm --nodeps -i
来忽略此信息,也就是说rpm -i --force --nodeps
可以忽略所有依赖关系和文件问题,什么包都能安装上,但这种强制安装的软件包不能保证完全发挥功能。 --test
: 测试安装,但不真正执行安装;dry run
[root@localhost ~]# rpm -vih /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm --test
warning: /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
如何卸载rpm软件包
使用命令rpm -e
包名,包名可以包含版本号等信息,但是不可以有后缀.rpm
,比如卸载软件包lrzsz-0.12.20
,可以使用下列格式:
[root@localhost ~]# rpm -e lrzsz-0.12.20
[root@localhost ~]# rpm -e lrzsz
有时会出现一些错误或者警告:
... is needed by ...
这说明这个软件被其他软件需要,不能随便卸载,可以用rpm -e --nodeps
强制卸载
如何升级rpm软件包
升级:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
upgrade
:安装有旧版程序包,则“升级”
如果不存在旧版程序包,则“安装” freshen
:安装有旧版程序包,则“升级”
如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...
--oldpackage
:降级 --force
: 强行升级
升级注意项
注意:
(1) 不要对内核做升级操作;Linux 支持多内核版本并存,因此,对直接安装新版本内核
(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew) 后保留
如何查询rpm软件包
不安装但是获取rpm包中的文件
[[email protected] ~]# rpm2cpio /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm |cpio -vi
[[email protected] ~]# rpm2cpio /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm |cpio -vidm
如何查看与rpm包相关的文件和其他信息
-a
: 所有包 -f
: 查看指定的文件由哪个程序包安装生成 -p
rpmfile :针对尚未安装的程序包文件做查询操作; --whatprovides
CAPABILITY :查询指定的 CAPABILITY由哪个包所提供 --whatrequires
CAPABILITY :查询指定的 CAPABILITY 被哪个包所依赖
下面所有的例子都假设使用软件包mysql-5.1.73
1、我的系统中安装了那些rpm软件包。
rpm -qa 讲列出所有安装过的包
如果要查找所有安装过的包含某个字符串mysql的软件包
[[email protected] ~]# rpm -qa | grep "mysql"
mysql-5.1.73-7.el6.x86_64
mysql-libs-5.1.73-7.el6.x86_64
2、如何获得某个软件包的文件全名。
[[email protected] ~]# rpm -q mysql
mysql-5.1.73-7.el6.x86_64
可以获得系统中安装的mysql软件包全名,从中可以获得当前软件包的版本等信息。这个例子中可以得到信息mysql-3.23.54a-11
3、一个rpm包中的文件安装到那里去了?
[[email protected] ~]# rpm -ql mysql-5.1.73-7.el6.x86_64
注意这里的是不包括.rpm后缀的软件包的名称,也就是说只能用mysql或者mysql-3.23.54a11而不是mysql-3.23.54a-11.rpm。如果只是想知道可执行程序放到那里去了,也可以which,
[root@localhost ~]# which mysql
/usr/bin/mysql
4、一个rpm包中包含那些文件。
一个没有安装过的软件包,使用rpm -qlp **.rpm
一个已经安装过的软件包,还可以使用rpm -ql **.rpm
[[email protected] ~]# rpm -qlp /mnt/Packages/httpd-2.2.15-53.el6.centos.x86_64.rpm
5、如何获取关于一个软件包的版本,用途等相关信息?
一个没有安装过的软件包,使用rpm -qip **.rpm
一个已经安装过的软件包,还可以使用rpm -qi **.rpm
[[email protected] ~]# rpm -qip /mnt/Packages/httpd-2.2.15-53.el6.centos.x86_64.rpm
warning: /mnt/Packages/httpd-2.2.15-53.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Name : httpd Relocations: (not relocatable)
Version : 2.2.15 Vendor: CentOS
Release : 53.el6.centos Build Date: Thu 12 May 2016 03:29:17 AM CST
Install Date: (not installed) Build Host: worker1.bsys.centos.org
Group : System Environment/Daemons Source RPM: httpd-2.2.15-53.el6.centos.src.rpm
Size : 3133738 License: ASL 2.0
Signature : RSA/SHA1, Thu 12 May 2016 06:52:29 PM CST, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
6、某个程序是哪个软件包安装的,或者哪个软件包包含这个程序。
rpm -qf `which 程序名` #返回软件包的全名
rpm -qif `which 程序名` #返回软件包的有关信息
rpm -qlf `which 程序名` #返回软件包的文件列表
注意,这里不是引号,而是`,就是键盘左上角的那个键。也可以使用rpm -qilf,同时输出软件包信息和文件列表。
7、某个文件是哪个软件包安装的,或者哪个软件包包含这个文件。 注意,前一个问题中的方法,只适用与可执行的程序,而下面的方法,不仅可以用于可执行程序,也可以用于普通的任何文件。前提是知道这个文件名。首先获得这个程序的完整路径,可以用whereis
或者which
,然后使用rpm -qf
例如:
[root@localhost ~]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost ~]# rpm -qf /bin/ls
coreutils-8.4-43.el6.x86_64
如何校验rpm包
包来源合法性验正及完整性验正:
完整性验正:
SHA256
来源合法性验正:RSA
公钥加密:
对称加密:加密、解密使用同一密钥;
非对称加密:密钥是成对儿的public key
: 公钥,公开所有人secret key
: 私钥,
//导入所需要公钥
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[root@localhost ~]# rpm -vih /mnt/Packages/vsftpd-2.2.2-21.el6.x86_64.rpm
Preparing... ########################################### [100%]
1:vsftpd ########################################### [100%]
命令格式:rpm -V 包名
对已经安装的软件,进行将要。若无输出,则表示已安装的软件没有被修改。若软件被修改,则会输出信关信息。具体请查看RPM相关手册。
RPM的数据库
数据库文件位于:/var/lib/rpm
[[email protected] ~]# cd /var/lib/rpm/
[[email protected] rpm]# ls
Basenames __db.002 Dirnames Installtid Packages Pubkeys Sha1header
Conflictname __db.003 Filedigests Name Providename Requirename Sigmd5
__db.001 __db.004 Group Obsoletename Provideversion Requireversion Triggername
//若库损坏,很多RPM的查询将无法使用。
对损坏的数据库,可以进行数据库重建:
rpm --initdb #新建数据库
rpm --rebuilddb #重建数据库
注意:重建数据库时间会比较长。
本文出自 “家住海边喜欢浪” 博客,请务必保留此出处http://zhang789.blog.51cto.com/11045979/1846543
以上是关于Linux如何安装rpm格式的文件?的主要内容,如果未能解决你的问题,请参考以下文章