GVKun编程网logo

Linux 命令之 rpm(linux里rpm命令)

3

对于想了解Linux命令之rpm的读者,本文将是一篇不可错过的文章,我们将详细介绍linux里rpm命令,并且为您提供关于7安装软件包的三种方法rpm包介绍rpm工具用法yum工具用法yum搭建本地仓

对于想了解Linux 命令之 rpm的读者,本文将是一篇不可错过的文章,我们将详细介绍linux里rpm命令,并且为您提供关于7 安装软件包的三种方法 rpm 包介绍 rpm 工具用法 yum 工具用法 yum 搭建本地仓库、7.1 安装软件包 7.2 rpm 包介绍 7.3 rpm,yum 工具用法 7.5 yum 搭建本地仓库、7.1 安装软件包的三种方法 7.2 rpm 包介绍 7.3 rpm 工具用法 7.4 yum 工具用法、CentOS7 使用 Alien 将 RPM 从 DE 转换为 DEB 和 DEB 转换为 RPM 包的有价值信息。

本文目录一览:

Linux 命令之 rpm(linux里rpm命令)

Linux 命令之 rpm(linux里rpm命令)

  rpm 是一个包管理器,用于生成、安装、查询、核实、更新以及卸载单个软件包。一个包通常包括一个文件存档以及元数据,用于安装和删除存档文件。元数据包括助手脚本、文件属性和包的描述信息。

  必选选择以下基本模式之一:查询,验证,安装 / 升级 / 刷新 / 重新安装,卸载,设置所属主 / 所属组,显示查询标签和显示配置。

查询和验证包:

rpm {-q|--query} [select-options] [query-options]

rpm {-V|--verify} [select-options] [verify-options]

安装 / 升级 / 卸载包:

rpm {-i|--install} [install-options] PACKAGE_FILE …

rpm {-U|--upgrade} [install-options] PACKAGE_FILE …

rpm {-F|--freshen} [install-options] PACKAGE_FILE …

rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME …

杂项:

rpm {--querytags|--showrc}

rpm {--setperms|--setugids} PACKAGE_NAME …

(1). 软件包的类型

rpm 二进制包,已经使用 gcc 编译。

tar 源码包,需要编译。

1)rpm 包的获取方式:

         1. 光盘或系统镜像

         2. 网站 rpmfind.net

         3. 部分软件可以去它的官网下载,如 mysql、nginx 等

2)rpm 包格式说明:

zsh     -5             .0           .2   -28    .el7                     .x86_64.rpm

软件名 - 主版本号。次版本号。修订 - 发布。操作系统版本。软件包位数

  说明:修订表示第几次修改 bug。发布表好似第几次发布。发布可能只对软件安装的默认参数做了修改而没有其他改动。

3)rpm 使用时,什么情况下用全名,什么情况下用软件名?

  在安装和更新时使用全名。对已经安装过的软件包进行操作时使用软件名,比如查找已经安装的某个包或卸载包。

  注意:当一个 rpm 包安装到系统上,安装信息通常会保存在本地的 /var/lib/rpm/ 目录下

4) rpm 在安装完成后,相关文件会复制到不同的目录下,一般默认分布如下(具体由打包人员设置):

  /etc  存放配置文件

  /bin/sbin  一些可执行文件

  /lib  /lib64  一些库文件

  /usr/include  一些头文件

  /usr/share/doc  使用手册帮助文件

  /usr/share/man  man 手册

(2). 常用选项

1) 前置模式选择选项

-q,--query 查询指定格式的包信息。
-V,--verify 验证将比较包中已安装文件的信息与从存储在rpm数据库中的包的元数据中获取的文件信息。
-i,--install 安装一个新软件包。
-U,--upgrade 升级或安装较新的软件包。与install类似,但会删除其他所有版本。
-F,--freshen 仅升级,必须存在早期版本的软件包。
-e,--erase 卸载

2) 一般选项

-v 打印详细信息,通常会显示常规进度消息。
--version 打印包含正在使用的rpm版本号的单行

3) 包选择选项(select-options)

-a,--all 指定所有文件
-f,--file FILE 指定文件所属的包
-p,--package PACKAGE_FILE 指定未安装的包文件,可以是ftp或http的URL。

4) 包查询选项(query-options)

-i,--info 显示包的名称、版本和说明。如果指定了--queryformat ,则使用它。
-l,--list 列出包内所有文件
-R,--requires 列出包的依赖信息(关联软件包)

5) 安装选项(install-options)

-h,--hash 打开包存档时打印50个散列标记(#),与-v或--verbose一起使用可以获得更好的显示效果
--prefix=<dir> 把软件包安装到指定目录下

(3). 实例

1)从本地安装软件

[root@xuexi ~]# rpm -ivh /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm 
警告:/mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zsh-5.0.2-28.el7                 ################################# [100%]
[root@xuexi ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
/bin/zsh

2)从网上下载直接安装 CentOS epel 扩展 yum 源

  注:epel 源是对 CentOS7 系统中自带的 base 源的扩展。针对有依赖关系的包安装,建议直接使用 yum 安装。

[root@xuexi ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
获取http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
警告:/var/tmp/rpm-tmp.Wl3pdy: 头V3 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:epel-release-7-11                ################################# [100%]

3)查询指定包是否安装

[root@xuexi ~]# rpm -q zsh
zsh-5.0.2-28.el7.x86_64
[root@xuexi ~]# rpm -qa zsh
zsh-5.0.2-28.el7.x86_64

4)查看所有已安装包

[root@xuexi ~]# rpm -qa
[root@xuexi ~]# rpm -qa | grep vim      //查询所有已安装包中带vim关键字的包
vim-filesystem-7.4.160-5.el7.x86_64
vim-enhanced-7.4.160-5.el7.x86_64
vim-minimal-7.4.160-5.el7.x86_64
vim-common-7.4.160-5.el7.x86_64

5)查询文件或命令属于哪个安装包

[root@xuexi ~]# rpm -qf /usr/bin
filesystem-3.2-25.el7.x86_64
[root@xuexi ~]# which find      //查看find命令的路径
/usr/bin/find
[root@xuexi ~]# rpm -qf /usr/bin/find
findutils-4.5.11-6.el7.x86_64

6)查询包的详细信息或作用

  注意:没有安装才使用 - p 选项

[root@xuexi ~]# rpm -qpi /mnt/Packages/php-mysql-5.4.16-45.el7.x86_64.rpm //没有安装
警告:/mnt/Packages/php-mysql-5.4.16-45.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
Name        : php-mysql
Version     : 5.4.16
Release     : 45.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Development/Languages
Size        : 237547
License     : PHP
Signature   : RSA/SHA256, 20180425日 星期三 193639秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : php-5.4.16-45.el7.src.rpm
Build Date  : 20180413日 星期五 031253Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.php.net/
Summary     : A module for PHP applications that use MySQL databases
Description :
The php-mysql package contains a dynamic shared object that will add
MySQL database support to PHP. MySQL is an object-relational database
management system. PHP is an HTML-embeddable scripting language. If
you need MySQL support for PHP applications, you will need to install
this package and the php package.
[root@xuexi /]# rpm -qi zsh		//已经安装
Name        : zsh
Version     : 5.0.2
Release     : 28.el7
Architecture: x86_64
Install Date: 20190110日 星期四 131201Group       : System Environment/Shells
Size        : 5855982
License     : MIT
Signature   : RSA/SHA256, 20170811日 星期五 042817秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : zsh-5.0.2-28.el7.src.rpm
Build Date  : 20170802日 星期三 185237Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://zsh.sourceforge.net/
Summary     : Powerful interactive shell
Description :
The zsh shell is a command interpreter usable as an interactive login
shell and as a shell script command processor.  Zsh resembles the ksh
shell (the Korn shell), but includes many enhancements.  Zsh supports
command line editing, built-in spelling correction, programmable
command completion, shell functions (with autoloading), a history
mechanism, and more.

7)查询包生成或将会生成的文件

[root@xuexi /]# rpm -ql zsh     //已安装
[root@xuexi /]# rpm -qpl /mnt/Packages/php-mysql-5.4.16-45.el7.x86_64.rpm       //未安装
警告:/mnt/Packages/php-mysql-5.4.16-45.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
/etc/php.d/mysql.ini
/etc/php.d/mysqli.ini
/etc/php.d/pdo_mysql.ini
/usr/lib64/php/modules/mysql.so
/usr/lib64/php/modules/mysqli.so
/usr/lib64/php/modules/pdo_mysql.so

8)验证软件包内容是否被修改,实际应用于验证命令有没有被黑客修改

[root@xuexi ~]# rpm -Va     //验证所有包
[root@xuexi ~]# which find
/usr/bin/find
[root@xuexi ~]# rpm -qf /usr/bin/find
findutils-4.5.11-6.el7.x86_64
[root@xuexi ~]# rpm -Vf /usr/bin/find
[root@xuexi ~]# echo aaa >> /usr/bin/find
[root@xuexi ~]# rpm -Vf /usr/bin/find       //通过文件检查
S.5....T.    /usr/bin/find
[root@xuexi ~]# rpm -V findutils        //通过包检查
S.5....T.    /usr/bin/find

  注:如果出现的全是点,表示测试通过。出现下面的字符代表某项测试失败:

5   MD5校验和是否改变,也看成文件内容是否改变
S   文件长度,大小是否改变
L   符号链接,文件路径是否改变
T   文件修改日期是否改变
D   设备
U   用户
G   用户组
M   模式
  不可读文件

  后面 c 文件名,表示的是文件类型

c   配置文件
d   普通文件
g   不该出现的文件,意思是包不含这个文件
l   授权文件(licase file)
r   描述文件

  注意:验证时参考了 /var/lib/rpm 目录下的 rpm 数据库信息。

9)卸载

[root@xuexi ~]# rpm -e zsh

  注意:--nodeps 忽略依赖,但不建议在卸载时使用 rpm 去卸载有依赖关系的包,应该用 yum。

10)不存在就安装,存在就升级

[root@xuexi ~]# rpm -Uvh /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm
警告:/mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zsh-5.0.2-28.el7                 ################################# [100%]

 (4). 扩展

srpm 源码包 (.src.rpm),私人定制 rpm。安装 rpmbuild --rebuild XXX.arc.rpm。很少使用,用兴趣可以了解下。

7 安装软件包的三种方法 rpm 包介绍 rpm 工具用法 yum 工具用法 yum 搭建本地仓库

7 安装软件包的三种方法 rpm 包介绍 rpm 工具用法 yum 工具用法 yum 搭建本地仓库

1. 安装软件包的三种方法。

  • 使用 RPM 工具安装某一个程序时,有可能因为该程序包依赖另一个程序包而无法安装。
  • 使用 yum 工具时,就可以连同依赖的程序包一起安装。
  • 源码包安装

2.rpm 包介绍。

  • linux 系统中存在着一个关于 RPM 的数据库,它记录了安装的包以及包与包之间的依赖关系。
  • RPM 包是预先在 linux 机器上编译并打包的文件,安装非常快捷。
  • 缺点:安装环境必须与编译时的环境一致或者相当,包与包之间存在着相互依赖的情况,卸载包时需要先把依赖的包卸载。如果依赖的包是系统所必需的,就不能卸载这个包,否则系统会崩溃。
  • 每个 RPM 包的名称都由 - 和。分成若干部分。
  • 有些 RPM 包并没有写具体的平台而是 noarch,说明这个 RPM 包没有硬件平台限制。

加载光驱

[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /mnt/
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@localhost ~]# ls /mnt/Packages/|head
389-ds-base-1.3.7.5-18.el7.x86_64.rpm
389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm
abattis-cantarell-fonts-0.0.25-1.el7.noarch.rpm
abrt-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-ccpp-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-kerneloops-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-pstoreoops-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-python-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-vmcore-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-xorg-2.1.11-50.el7.centos.x86_64.rpm

3.rpm 工具介绍

安装 PRM 命令

cd /mnt/Packages/

[root@localhost Packages]# rpm -ivh libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm
准备中...                          ################################# [100%]
正在升级/安装...
   1:libjpeg-turbo-devel-1.2.90-5.el7 ################################# [100%]
  • -i:表示安装
  • -v:表示可视化
  • -h:表示显示安装进度
  • --force:表示强制安装,即使覆盖属于其他包的文件也要安装。
  • --nodeps:表示当要安装的 RPM 包依赖于其他包时,即使其他包没有安装,也要安装这个包。

升级 RPM 包

rpm -Uvh filename         -U 选项表示升级。

卸载 RPM 包

rpm -qa:先查

rpm -e filename

[root@localhost Packages]# rpm -qa libjpeg-turbo-devel
libjpeg-turbo-devel-1.2.90-5.el7.x86_64
[root@localhost Packages]# rpm -e libjpeg-turbo-devel

 

 

-e 选项后的 filename 和安装时有区别的。安装时,是把一个存在的文件作为参数,而卸载时需要包名即可。

查询一个包是否已安装

rpm -q RPM 包名   包名是不带平台信息和后缀名的。

[root@localhost Packages]# rpm -ivh libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm
准备中...                          ################################# [100%]
正在升级/安装...
   1:libjpeg-turbo-devel-1.2.90-5.el7 ################################# [100%]
[root@localhost Packages]# rpm -q libjpeg-turbo-devel
libjpeg-turbo-devel-1.2.90-5.el7.x86_64

rpm -qa 查询当前系统所有已安装的 RPM 包。

[root@localhost Packages]# rpm -q libjpeg-turbo-devel
libjpeg-turbo-devel-1.2.90-5.el7.x86_64
[root@localhost Packages]# rpm -qa |head
desktop-file-utils-0.23-1.el7.x86_64
man-db-2.6.3-9.el7.x86_64
ibus-gtk2-1.5.17-2.el7.x86_64
libreport-python-2.1.11-40.el7.centos.x86_64
hyperv-daemons-0-0.32.20161211git.el7.x86_64
tzdata-2018c-1.el7.noarch
libX11-common-1.6.5-1.el7.noarch
kexec-tools-2.0.15-13.el7.x86_64
keybinder3-0.3.0-1.el7.x86_64
libvisual-0.4.0-16.el7.x86_64

得到一个已安装的 RPM 包的相关信息

rpm -qi 包名,不需要加平台信息和后缀名。

[root@localhost Packages]# rpm -qi libjpeg-turbo-devel
Name        : libjpeg-turbo-devel
Version     : 1.2.90
Release     : 5.el7
Architecture: x86_64
Install Date: 2018年06月26日 星期二 15时04分27秒
Group       : Development/Libraries
Size        : 321621
License     : IJG
Signature   : RSA/SHA256, 2014年07月04日 星期五 10时55分32秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : libjpeg-turbo-1.2.90-5.el7.src.rpm
Build Date  : 2014年06月10日 星期二 11时48分52秒
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://sourceforge.net/projects/libjpeg-turbo
Summary     : Headers for the libjpeg-turbo library
Description :
This package contains header files necessary for developing programs which
will manipulate JPEG files using the libjpeg-turbo library.

列出一个 RPM 包的安装文件

rpm -ql 包名

[root@localhost Packages]# rpm -ql libjpeg-turbo-devel
/usr/include/jconfig.h
/usr/include/jerror.h
/usr/include/jmorecfg.h
/usr/include/jpeglib.h
/usr/lib64/libjpeg.so
/usr/share/doc/libjpeg-turbo-devel-1.2.90
/usr/share/doc/libjpeg-turbo-devel-1.2.90/coderules.txt
/usr/share/doc/libjpeg-turbo-devel-1.2.90/example.c
/usr/share/doc/libjpeg-turbo-devel-1.2.90/jconfig.txt
/usr/share/doc/libjpeg-turbo-devel-1.2.90/libjpeg.txt
/usr/share/doc/libjpeg-turbo-devel-1.2.90/structure.txt

列出某个文件属于哪个 rpm 包

[root@localhost Packages]# rpm -qf /usr/lib64/libjpeg.so
libjpeg-turbo-devel-1.2.90-5.el7.x86_64

4.yum 工具的用法

列出所有可用的 RPM 包

yum list

[root@localhost Packages]# yum list |head -n 20
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
已安装的软件包
GConf2.x86_64                               3.2.6-8.el7                @base    
GeoIP.x86_64                                1.5.0-11.el7               @anaconda
ModemManager.x86_64                         1.6.10-1.el7               @base    
ModemManager-glib.x86_64                    1.6.10-1.el7               @base    
NetworkManager.x86_64                       1:1.10.2-14.el7_5          @updates 
NetworkManager-adsl.x86_64                  1:1.10.2-14.el7_5          @updates 
NetworkManager-bluetooth.x86_64             1:1.10.2-14.el7_5          @updates 
NetworkManager-glib.x86_64                  1:1.10.2-14.el7_5          @updates 
NetworkManager-libnm.x86_64                 1:1.10.2-14.el7_5          @updates 
NetworkManager-libreswan.x86_64             1.2.4-2.el7                @base    
NetworkManager-libreswan-gnome.x86_64       1.2.4-2.el7                @base    
NetworkManager-ppp.x86_64                   1:1.10.2-14.el7_5          @updates 
NetworkManager-team.x86_64                  1:1.10.2-14.el7_5          @updates 
NetworkManager-tui.x86_64                   1:1.10.2-14.el7_5          @updates 

搜索 RPM 包

yum search vim [相关关键词]

[root@localhost Packages]# yum search vim
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
====================================================================================== N/S matched: vim =======================================================================================
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor

用 grep 来过滤,从而找到相应的 RPM 包

[root@localhost Packages]# yum list |grep ''vim''
vim-common.x86_64                           2:7.4.160-4.el7            @base    
vim-enhanced.x86_64                         2:7.4.160-4.el7            @base    
vim-filesystem.x86_64                       2:7.4.160-4.el7            @base    
vim-minimal.x86_64                          2:7.4.160-4.el7            @anaconda
protobuf-vim.x86_64                         2.5.0-8.el7                base     
vim-X11.x86_64                              2:7.4.160-4.el7            base 

安装 RPM 包

yum install [-y] [RPM 包名],不加 - y 选项,以用户交互的方式安装。

[root@localhost Packages]# yum install -y protobuf-vim
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
base                                                                                                                                                                    | 3.6 kB  00:00:00     
extras                                                                                                                                                                  | 3.4 kB  00:00:00     
updates                                                                                                                                                                 | 3.4 kB  00:00:00     
正在解决依赖关系
--> 正在检查事务
---> 软件包 protobuf-vim.x86_64.0.2.5.0-8.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

===============================================================================================================================================================================================
 Package                                          架构                                       版本                                                                                       大小
===============================================================================================================================================================================================
正在安装:
 protobuf-vim                                     x86_64                                     2.5.0-8.el7                                        base                                     8.7 k

事务概要
===============================================================================================================================================================================================
安装  1 软件包

总下载量:8.7 k
安装大小:3.7 k
Downloading packages:
protobuf-vim-2.5.0-8.el7.x86_64.rpm                                                                                                                                     | 8.7 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
  正在安装    : protobuf-vim-2.5.0-8.el7.x86_64                                                                                                                                            1/1 
  验证中      : protobuf-vim-2.5.0-8.el7.x86_64                                                                                                                                            1/1 

已安装:
  protobuf-vim.x86_64 0:2.5.0-8.el7                                                                                                                                                            

完毕!

卸载 RPM 包

yum remove [-y] [RPM 包名].

[root@localhost Packages]# yum remove protobuf-vim
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 protobuf-vim.x86_64.0.2.5.0-8.el7 将被 删除
--> 解决依赖关系完成

依赖关系解决

===============================================================================================================================================================================================
 Package                                          架构                                       版本                                              源                                         大小
===============================================================================================================================================================================================
正在删除:
 protobuf-vim                                     x86_64                                     2.5.0-8.el7                                       @base                                     3.7 k

事务概要
===============================================================================================================================================================================================
移除  1 软件包

安装大小:3.7 k
是否继续?[y/N]:y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : protobuf-vim-2.5.0-8.el7.x86_64                                                                                                                                            1/1 
  验证中      : protobuf-vim-2.5.0-8.el7.x86_64                                                                                                                                            1/1 

删除:
  protobuf-vim.x86_64 0:2.5.0-8.el7                                                                                                                                                            

完毕!

升级 RPM 包

yum update [-y] [RPM 包]。

[root@localhost Packages]# yum update bash
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
No packages marked for update

5.yum 搭建本地仓库

挂载光盘

[root@localhost Packages]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt 忙
       /dev/sr0 已经挂载到 /mnt 上

删除 /etc/yum.repos.d 目录下所有的 repo 文件(删除之前,最好先做一个备份)。

[root@localhost Packages]# cp -r /etc/yum.repos.d /etc/yum.repos.d_bak
[root@localhost Packages]# rm -rf /etc/yum.repos.d/*

创建新文件 dvd.repo。

[root@localhost Packages]# vim /etc/yum.repos.d/dvd.repo

刷新 repos 生成缓存。安装 tftp 的 RPM 包。

[root@localhost Packages]# yum makecache
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
dvd                                                                                                                                                                     | 3.6 kB  00:00:00     
(1/4): dvd/group_gz                                                                                                                                                     | 166 kB  00:00:00     
(2/4): dvd/filelists_db                                                                                                                                                 | 3.1 MB  00:00:00     
(3/4): dvd/primary_db                                                                                                                                                   | 3.1 MB  00:00:00     
(4/4): dvd/other_db                                                                                                                                                     | 1.3 MB  00:00:00     
元数据缓存已建立
[root@localhost Packages]# yum install -y tftp
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 tftp.x86_64.0.5.2-22.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

===============================================================================================================================================================================================
 Package                                     架构                                          版本                                                                                         大小
===============================================================================================================================================================================================
正在安装:
 tftp                                        x86_64                                        5.2-22.el7                                         dvd                                         38 k

事务概要
===============================================================================================================================================================================================
安装  1 软件包

总下载量:38 k
安装大小:52 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : tftp-5.2-22.el7.x86_64                                                                                                                                                     1/1 
  验证中      : tftp-5.2-22.el7.x86_64                                                                                                                                                     1/1 

已安装:
  tftp.x86_64 0:5.2-22.el7                                                                                                                                                                     

完毕!

 

7.1 安装软件包 7.2 rpm 包介绍 7.3 rpm,yum 工具用法 7.5 yum 搭建本地仓库

7.1 安装软件包 7.2 rpm 包介绍 7.3 rpm,yum 工具用法 7.5 yum 搭建本地仓库

安装软件包的三种方法:

  • rpm 工具
  • yum 工具
  • 源码包

rpm 工具使用

  • 设置光驱并挂载
  • rpm 包格式,包名、版本号、发布版本号、平台
  • rpm -ivh rpm 包文件 // 安装
  • rpm -Uvh rpm 包文件 // 升级
  • rpm -e 包名 // 卸载
  • rpm -qa // 查询安装的包
  • rpm -q 包名 // 查询指定包是否安装
  • rpm -qi 包名 // 查询指定包信息
  • rpm -ql 包名 // 列出包安装的文件
  • rpm -qf 文件绝对路径 // 查看一个文件是由哪个包安装的

  1. 设置光驱并挂载 1)点击 -- 虚拟机 — 设置 —CD/DVD(ide)-- 右边设置 iso 映像文件路径。
    输入图片说明

    2)挂载光驱

[root@linux-128 ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载

[root@linux-128 ~]# ls /mnt
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

3)/mnt/Packages目录里面是rpm包    
[root@linux-128 ~]# ls /mnt/Packages/ |head -5
389-ds-base-1.3.5.10-11.el7.x86_64.rpm
389-ds-base-libs-1.3.5.10-11.el7.x86_64.rpm
abattis-cantarell-fonts-0.0.16-3.el7.noarch.rpm
abrt-2.1.11-45.el7.centos.x86_64.rpm
abrt-addon-ccpp-2.1.11-45.el7.centos.x86_64.rpm

小知识: 每个 rpm 包的名称都是由 - 和。分成若干部分,比如 abrt-2.1.11-45.el7.centos.x86_64.rpm Abrt:包名
2.1.11-45:版本号;2 为主版本号,1 为次版本号,11 为修正版本
45-el7.centos:发布版本号
x86_64.:运行平台,64 位 cpu 目前分 32 位和 64 位,i386、i586、i686 是 32 位,X86_64 是 64 位。
64 位系统可以安装 32 位软件,但是 32 位系统不能安装 64 为软件。


安装 rpm 包

  • rpm -ivh rpm 包文件 // 安装
  • -i:表示安装
  • -v:表示可视化
  • -h:表示显示安装进度
  • --force:表示强制安装,即使覆盖属于其他包的文件也要安装
  • --nodeps:表示当要安装的 rpm 包依赖于其他包时,即使其他包没有安装,也要安装这个包
[root@linux-128 ~]# cd /mnt/Packages/
[root@linux-128 Packages]# rpm -ivh xz-5.2.2-1.el7.x86_64.rpm
准备中...                          ################################# [100%]
	软件包 xz-5.2.2-1.el7.x86_64 已经安装

升级 rpm 包

  • 命令:rpm -Uvh rpm 包文件
  • -U:表示升级

卸载 rpm 包

  • 命令:rpm –e 包名
[root@linux-128 Packages]# rpm -e xz
错误:依赖检测失败:
	xz 被 (已安裝) dracut-033-463.el7.x86_64 需要
	/usr/bin/xz 被 (已安裝) kmod-20-9.el7.x86_64 需要

查询一个包是否已经安装

  • 命令:rpm –qa 包名
[root@linux-128 Packages]# rpm -qa tree
tree-1.6.0-10.el7.x86_64

查询当前系统所有已经安装的包

  • 命令:rpm –qa
[root@linux-128 Packages]# rpm -qa |head
trousers-0.3.13-1.el7.x86_64
filesystem-3.2-21.el7.x86_64
net-tools-2.0-0.17.20131004git.el7.x86_64
bind-license-9.9.4-37.el7.noarch
fxload-2002_04_11-16.el7.x86_64
nss-softokn-freebl-3.16.2.3-14.4.el7.x86_64
libthai-0.1.14-9.el7.x86_64
ncurses-libs-5.9-13.20130511.el7.x86_64
libX11-common-1.6.3-3.el7.noarch
libselinux-2.5-6.el7.x86_64

查询指定包的信息

  • 命令:rpm –qi 包名
[root@linux-128 Packages]# rpm -qi tree
Name        : tree
Version     : 1.6.0
Release     : 10.el7
Architecture: x86_64
Install Date: 2017年10月20日 星期五 15时00分08秒
Group       : Applications/File
Size        : 89505
License     : GPLv2+
Signature   : RSA/SHA256, 2014年07月04日 星期五 13时36分46秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : tree-1.6.0-10.el7.src.rpm
Build Date  : 2014年06月10日 星期二 03时28分53秒
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://mama.indstate.edu/users/ice/tree/
Summary     : File system tree viewer
Description :
The tree utility recursively displays the contents of directories in a
tree-like format.  Tree is basically a UNIX port of the DOS tree
utility.

列出一个 rpm 包的安装文件

  • 命令:rpm –ql 包名
[root@linux-128 Packages]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

根据一个文件的绝对路径,查看这个文件是由哪个包安装的

  • 命令:rpm –qf 绝对路径
[root@linux-128 Packages]# rpm -qf /usr/bin/cd
bash-4.2.46-20.el7_2.x86_64

[root@linux-128 Packages]# rpm -qf `which cd`
bash-4.2.46-20.el7_2.x86_64
注意:``里面which cd 显示只有一行,如果是which ls 显示2行,这里就不能使用这条命令。

Yum 工具

Yum 比 rpm 工具更方便,yum 工具最大的优势在于可以联网去下载所需要的的 rpm 包,然后自动安装,安装所有相关的 rpm 包,解决依赖关系。

  • yum list // 列出可用 rpm 包
  • ls /etc/yum.repos.d/
  • yum search vim // 搜索包
  • yum install [-y]
  • yum grouplist
  • yum groupinstall [-y]
  • yum remove [-y]
  • yum update [-y]
  • yum provides “/*/vim”

列出所有可用的 rpm 包

  • 命令:yum list
[root@linux-128 Packages]# yum list |head -20
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
已安装的软件包
GeoIP.x86_64                                1.5.0-11.el7               @anaconda
NetworkManager.x86_64                       1:1.4.0-12.el7             @anaconda
NetworkManager-libnm.x86_64                 1:1.4.0-12.el7             @anaconda
NetworkManager-team.x86_64                  1:1.4.0-12.el7             @anaconda
NetworkManager-tui.x86_64                   1:1.4.0-12.el7             @anaconda
NetworkManager-wifi.x86_64                  1:1.4.0-12.el7             @anaconda
acl.x86_64                                  2.2.51-12.el7              @anaconda
aic94xx-firmware.noarch                     30-6.el7                   @anaconda
alsa-firmware.noarch                        1.0.28-2.el7               @anaconda
alsa-lib.x86_64                             1.1.1-1.el7                @anaconda
alsa-tools-firmware.x86_64                  1.1.0-1.el7                @anaconda
atk.x86_64                                  2.14.0-1.el7               @anaconda
atkmm.x86_64                                2.22.7-3.el7               @anaconda
audit.x86_64                                2.6.5-3.el7                @anaconda

左边是包名,中间是版本信息,右边是仓库名,仓库这边显示 @base、@anaconda 表示已经安装。如果未安装这显示 base 或者 anaconda,如果是 updates 表示已安装但是需要升级。

yum 的配置文件:/etc/yum.repos.d/Centos-Base.repo 里面可以配置仓库名,yum 源地址

[base] // 仓库名 name=CentOS-$releasever – Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra //yum 源地址。 #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

搜索 rpm 包

  • 命令:yum search 包名
[root@linux-128 Packages]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
=============================== N/S matched: vim ================================
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers
                    : descriptions
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent
                    : enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor

  • 或者:yum list |grep vim
[root@linux-128 Packages]# yum list |grep vim
vim-common.x86_64                           2:7.4.160-2.el7            @base
vim-enhanced.x86_64                         2:7.4.160-2.el7            @base
vim-filesystem.x86_64                       2:7.4.160-2.el7            @base
vim-minimal.x86_64                          2:7.4.160-1.el7            @anaconda
protobuf-vim.x86_64                         2.5.0-8.el7                base
vim-X11.x86_64                              2:7.4.160-2.el7            base
vim-minimal.x86_64                          2:7.4.160-2.el7            base

安装 rpm 包

  • 命令:yum install –y 包名
[root@linux-128 Packages]# yum install -y tree
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=================================================================================
 Package         架构              版本                                   大小
=================================================================================
正在安装:
 tree            x86_64            1.6.0-10.el7            base             46 k

事务概要
=================================================================================
安装  1 软件包

总下载量:46 k
安装大小:87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm                              |  46 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : tree-1.6.0-10.el7.x86_64                                     1/1
  验证中      : tree-1.6.0-10.el7.x86_64                                     1/1

已安装:
  tree.x86_64 0:1.6.0-10.el7

完毕!

卸载 rpm 包

命令:yum remove –y  包名
[root@linux-128 Packages]# yum remove -y tree
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 删除
--> 解决依赖关系完成

依赖关系解决

=================================================================================
 Package        架构             版本                      源               大小
=================================================================================
正在删除:
 tree           x86_64           1.6.0-10.el7              @base            87 k

事务概要
=================================================================================
移除  1 软件包

安装大小:87 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : tree-1.6.0-10.el7.x86_64                                     1/1
  验证中      : tree-1.6.0-10.el7.x86_64                                     1/1

删除:
  tree.x86_64 0:1.6.0-10.el7

完毕!

列出套件

命令:yum grouplist 
[root@linux-128 Packages]# yum grouplist
已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
可用的环境分组:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器
   GNOME 桌面
   KDE Plasma Workspaces
   开发及生成工作站
可用组:
   传统 UNIX 兼容性
   兼容性程序库
   图形管理工具
   安全性工具
   开发工具
   控制台互联网工具
   智能卡支持
   科学记数法支持
   系统管理
   系统管理工具
完成

  • LANG=en 切换英文

安装套件

  • 命令:yum groupinstall –y 套件名

升级 rpm 包

  • 命令:yum update –y 包名 注意:如果不加包名,会把系统所有的包包括系统本身升级。

搜索一个命令是那个包安装的

  • 命令:yum provides "/*/tree"
  • 或者:rpm -qf /usr/bin/tree

使用本地光盘制作 yum 源

  • 挂载镜像到 /mnt 目录
[root@linux-128 ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
  • cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
  • rm -f /etc/yum.repos.d/*
  • vim /etc/yum.repos.d/dvd.repo// 内容如下

[dvd] // 仓库名字
name=install dvd
baseurl=file:///mnt // 本地源地址
enable=1 // 本地是否可用,1 可用,0 不可以
gpgcheck=0 // 是否检测,1 检测,0 不检测

  • yum clean all // 清除缓存
  • yum list
[root@linux-128 ~]# yum list |tail -10
yum-plugin-aliases.noarch               1.1.31-40.el7                  dvd
yum-plugin-changelog.noarch             1.1.31-40.el7                  dvd
yum-plugin-tmprepo.noarch               1.1.31-40.el7                  dvd
yum-plugin-verify.noarch                1.1.31-40.el7                  dvd
yum-plugin-versionlock.noarch           1.1.31-40.el7                  dvd
yum-utils.noarch                        1.1.31-40.el7                  dvd
zenity.x86_64                           3.8.0-5.el7                    dvd
zlib-devel.x86_64                       1.2.7-17.el7                   dvd
zsh.x86_64                              5.0.2-25.el7                   dvd
zziplib.x86_64                          0.13.62-5.el7                  dvd

7.1 安装软件包的三种方法 7.2 rpm 包介绍 7.3 rpm 工具用法 7.4 yum 工具用法

7.1 安装软件包的三种方法 7.2 rpm 包介绍 7.3 rpm 工具用法 7.4 yum 工具用法

7.1 安装软件包的三种方法

  • rpm 工具

rpm(Redhat Package Manager)RPM 软件包管理器,是以一种数据库记录的方式来将我们所需要的套件安装到 Linux 主机的一套管理程序。rpm 包是预先在 Linux 机器上编译好并打包好的文件,安装起来非常快捷。但是有一个缺点:安装环境必须与编译时的一致或相当;包与包之间存在着相互依赖的情况,安装或卸载包时需要先把依赖的包安装 / 卸载,如果依赖的包时系统所必须的,那就不能卸载这个包。

  • yum 工具

yum 命令是在 Fedora 和 RedHat 以及 SUSE 中基于 rpm 的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理 RPM 软件包,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

  • 源码包

Linux 软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制码并进行安装。其优点是配置灵活,可以随意去掉或保留某些功能 / 模块,适应多种硬件 / 操作系统平台及编译环境;缺点是难度较大。

7.2-7.3 rpm 工具

rpm 包介绍(准备工作)

挂载系统安装盘镜像(挂载到一个空目录,此处 /mnt/ 目录未使用,所以直接挂载到 /mnt/ 目录下)

[root@cham3~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        28G  1.3G   27G    5% /
devtmpfs        483M     0  483M    0% /dev
tmpfs           493M     0  493M    0% /dev/shm
tmpfs           493M  6.8M  486M    2% /run
tmpfs           493M     0  493M    0% /sys/fs/cgroup
/dev/sda1       197M  109M   88M   56% /boot
tmpfs            99M     0   99M    0% /run/user/0
[root@cham3~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@cham3 mnt]# ls
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@cham3 Packages]# # ls
yum-plugin-changelog-1.1.31-40.el7.noarch.rpm
yum-plugin-fastestmirror-1.1.31-40.el7.noarch.rpm
yum-plugin-tmprepo-1.1.31-40.el7.noarch.rpm
yum-plugin-verify-1.1.31-40.el7.noarch.rpm
yum-plugin-versionlock-1.1.31-40.el7.noarch.rpm
……
(rpm包格式:包名、版本号、发布版本号、平台)

rpm 包存放在 Packages 该文件下!

rpm 工具用法

安装 rpm 包

语法: rpm [options] [参数]
Options:
-i:=install,安装
-v:可视化
-h:显示安装进度
在安装一个 rpm 包时常用附带选项:
--force:强制安装
--nodeps:=no dependent 无依赖安装(忽视与其他包之间的依赖关系)

说明: 安装有依赖关系的包时,可以先安装其所依赖的包再安装目标包(同时安装存在依赖关系的包),或者使用 --force 或 --nodeps 选项进行强行安装(不建议使用)。

 

 

 

7.4 yum 工具用法

 

列出所有 rpm 包

语法: yum list

[root@cham3 Packages]# yum list 
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.aliyun.com
 * updates: mirrors.tuna.tsinghua.edu.cn
Installed Packages
NetworkManager-libnm.x86_64                1:1.4.0-12.el7              @anaconda
NetworkManager-team.x86_64                 1:1.4.0-12.el7              @anaconda
zsh.x86_64                                        5.0.2-25.el7_3.1                    updates  
zsh-html.x86_64                                   5.0.2-25.el7_3.1                    updates  
zziplib.i686                                      0.13.62-5.el7                       base     
zziplib.x86_64                                    0.13.62-5.el7                       base   
……
Exiting on Broken Pipe
注: 第一列是包名,第二列是版本号,第三列是库

说明: 库所在位置有 “@” 表示已安装;“updates” 表示已安装,有新版本,需要升级;其他的表示可安装但还未安装的 rpm 包。

  • yum 配置文件
[root@cham3 Packages]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Sources.repo  CentOS-fasttrack.repo
CentOS-CR.repo    CentOS-Media.repo      CentOS-Vault.repo
  • 配置文件 base 的信息
[root@cham3 Packages]## cat /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
……
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
……

说明: 该文件下有 rpm 包所在库 base 的镜像地址信息!

搜索 rpm 包

语法: yum search [关键词]

[root@cham3 Packages]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: centos.ustc.edu.cn
 * updates: centos.ustc.edu.cn
=================================================== N/S matched: vim ===================================================
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor

  名称和简介匹配 only,使用“search all”试试。

 说明: 使用该命令搜索时会列出所有包含‘vim’(关键词)的信息,不精确,为了只搜索相关 rpm 包,可用如下方法:

[root@cham3 Packages]# yum list |grep ''vim''
vim-minimal.x86_64                          2:7.4.160-1.el7            @anaconda
protobuf-vim.x86_64                         2.5.0-8.el7                base     
vim-X11.x86_64                              2:7.4.160-2.el7            base     
vim-common.x86_64                           2:7.4.160-2.el7            base     
vim-enhanced.x86_64                         2:7.4.160-2.el7            base     
vim-filesystem.x86_64                       2:7.4.160-2.el7            base     
vim-minimal.x86_64                          2:7.4.160-2.el7            base     

说明: grep 表示过滤。

 

列出 rpm 包组

语法: yum grouplist

[root@cham3 Packages]# yum list |grep ''vim''
vim-minimal.x86_64                          2:7.4.160-1.el7            @anaconda
protobuf-vim.x86_64                         2.5.0-8.el7                base     
vim-X11.x86_64                              2:7.4.160-2.el7            base     
vim-common.x86_64                           2:7.4.160-2.el7            base     
vim-enhanced.x86_64                         2:7.4.160-2.el7            base     
vim-filesystem.x86_64                       2:7.4.160-2.el7            base     
vim-minimal.x86_64                          2:7.4.160-2.el7            base     
[root@cham3 Packages]# yum grouplist
已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: centos.ustc.edu.cn
 * updates: centos.ustc.edu.cn
可用的环境分组:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   基本网页服务器
   虚拟化主机
    GUI 的服务器
   GNOME 桌面
   KDE Plasma Workspaces
   开发及生成工作站
可用组:
   传统 UNIX 兼容性
   兼容性程序库
   图形管理工具
   安全性工具
   开发工具
   控制台互联网工具
   智能卡支持
   科学记数法支持
   系统管理
   系统管理工具
完成


[root@cham3 Packages]#  yum grouplist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.aliyun.com
 * updates: mirrors.tuna.tsinghua.edu.cn
Available Environment Groups:
   Minimal Install
   Compute Node
……
Available Groups:
   Compatibility Libraries
   Console Internet Tools
……
Done

安装 rpm 包

语法: yum install [-y] [包名]
说明: 如果不加‘-y’选项,则会以与用户交互的方式安装。首先是列出需要安装的 rpm 包,然后会问用户是否需要安装,输入‘y’则安装,输入‘n’则不安装,这样太麻烦,所以直接加上‘-y’选项,省略与用户之间的交互。

安装 rpm 包组

语法: yum groupinstall [-y] [包的组名]
如果不知道组名,可用 yum grouplist 查看(注:进行安装时只能用英文名)。

卸载 rpm 包

语法: yum remove [-y] [包名]
说明: ‘-y’选项同 install 的用法,需要注意的是,在使用该命令进行卸载时会将目标文件所依赖的所有包同时删除,所以要谨慎使用!

升级 rpm 包

语法: yum update [-y] [包名]
说明: 如果不加包名,则会升级系统内所有包以及系统本身(慎用,一般只在刚安装完系统时使用)。
 

yum provides

该命令的作用是通过已知命令名称来搜索其 rpm 包名。
用法:

[root@cham3 Packages]# yum provides "/*/vim"
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: centos.ustc.edu.cn
 * updates: centos.ustc.edu.cn
base/7/x86_64/filelists_db                                                                       | 6.7 MB  00:00:08     
extras/7/x86_64/filelists_db                                                                     | 486 kB  00:00:00     
updates/7/x86_64/filelists_db                                                                    | 2.1 MB  00:00:03     
cmake-2.8.12.2-2.el7.x86_64 : Cross-platform make system
源    :base
匹配来源:
文件名    :/usr/share/cmake/editors/vim



2:docker-unit-test-1.12.6-48.git0fdc778.el7.centos.x86_64 : Automates deployment of containerized applications - for
                                                          : running unit tests
源    :extras
匹配来源:
文件名    :/var/lib/docker-unit-test/docker-novolume-plugin-385ec70baac3ef356f868f391c8d7818140fbd44/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/v1.10-migrator-c417a6a022c5023c111662e8280f885f6ac259be/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/runc-79c3939053c870fbb4de5484d98640d5ba028ef4/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/containerd-fa8fb3d455e1baf716f3131581f0ed8b07c573a6/vendor/src/github.com/docker/docker/contrib/syntax/vim



2:docker-unit-test-1.12.6-55.gitc4618fb.el7.centos.x86_64 : Automates deployment of containerized applications - for
                                                          : running unit tests
源    :extras
匹配来源:
文件名    :/var/lib/docker-unit-test/docker-novolume-plugin-385ec70baac3ef356f868f391c8d7818140fbd44/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/v1.10-migrator-c417a6a022c5023c111662e8280f885f6ac259be/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/runc-31a9f6e22729606814e9bcbcf9eeebc1887527cb/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/containerd-fa8fb3d455e1baf716f3131581f0ed8b07c573a6/vendor/src/github.com/docker/docker/contrib/syntax/vim



2:docker-unit-test-1.12.6-61.git85d7426.el7.centos.x86_64 : Automates deployment of containerized applications - for
                                                          : running unit tests
源    :extras
匹配来源:
文件名    :/var/lib/docker-unit-test/runc-c5d311627d39439c5b1cc35c67a51c9c6ccda648/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/v1.10-migrator-c417a6a022c5023c111662e8280f885f6ac259be/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/docker-novolume-plugin-385ec70baac3ef356f868f391c8d7818140fbd44/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名    :/var/lib/docker-unit-test/containerd-fa8fb3d455e1baf716f3131581f0ed8b07c573a6/vendor/src/github.com/docker/docker/contrib/syntax/vim



git-1.8.3.1-11.el7.x86_64 : Fast Version Control System
源    :base
匹配来源:
文件名    :/usr/share/doc/git-1.8.3.1/contrib/vim



git-1.8.3.1-12.el7_4.x86_64 : Fast Version Control System
源    :updates
匹配来源:
文件名    :/usr/share/doc/git-1.8.3.1/contrib/vim



2:vim-common-7.4.160-2.el7.x86_64 : The common files needed by any version of the VIM editor
源    :base
匹配来源:
文件名    :/usr/share/vim



2:vim-enhanced-7.4.160-2.el7.x86_64 : A version of the VIM editor which includes recent enhancements
源    :base
匹配来源:
文件名    :/usr/bin/vim

说明: 因为该命令位置不确定,所以进行搜索时使用‘*’(通配符)来代表其路径。

 

CentOS7 使用 Alien 将 RPM 从 DE 转换为 DEB 和 DEB 转换为 RPM 包

CentOS7 使用 Alien 将 RPM 从 DE 转换为 DEB 和 DEB 转换为 RPM 包

我相信您已经知道,有很多方法可以在 Linux 中安装软件:使用您的发行版提供的软件包管理系统(aptitude,yum 或 zypper,举几个例子),从源代码编译(尽管有些这些天很少见,它是 Linux 早期唯一可用的方法,或者分别使用 dpkg 或 rpm 等低级工具和.deb 和.rpm 独立的预编译软件包。     将RPM转换为DEB,将DEB转换为RPM

                                     使用 Alien 将 RPM 转换为 DEB 和 DEB 转换为 RPM 包

在本文中,我们将向您介绍 alien,一种在不同 Linux 包格式之间进行转换的工具,使用.rpm 到.deb(反之亦然)是最常用的用法。

这个工具,即使它的作者不再维护它并在他的网站上说外星人总是可能保持实验状态,如果你需要某种类型的包但只能找到另一种包装格式的程序,它可以派上用场。

例如,当我为喷墨打印机寻找.deb 驱动程序时,外星人节省了我的一天,但却找不到 - 制造商只提供了一个.rpm 包。我安装了外星人,转换了包装,不久我就可以毫无问题地使用我的打印机了。

也就是说,我们必须澄清这个实用程序不应该用于替换重要的系统文件和库,因为它们在不同的发行版中设置不同。如果本文开头的建议安装方法不能满足所需程序的要求,请仅使用外星人作为最后的手段。

最后但并非最不重要的是,我们必须注意,尽管我们将在本文中使用 CentOS 和 Debian,但除了前两个发行版及其各自的系列之外,外星人也知道在 Slackware 甚至 Solaris 中工作。

第 1 步:安装外来和依赖项

要在 CentOS / RHEL 7 中安装外星人,您需要按顺序启用 EPEL 和 Nux Dextop(是的,它是 Dextop - 而不是桌面)存储库:

 

#yum install epel-release
#rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

支持此存储库的最新版软件包目前为0.5(2015年8月10日发布)。您应该先检查http://li.nux.ro/download/nux/dextop/el7/x86_64/以查看是否有更新的版本,然后再继续:
#rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
然后做,
#yum update && yum install alien

在 Fedora 中,您只需要运行最后一个命令。

在 Debian 和衍生品中,只需:

#aptitude安装外星人

由于制作 rpm 包过程较为麻烦,此处使用 rpmrebuild 去将本机已安装好的 openvswitch 包进行重新打包,用于下次安装部署

# yum install rpmrebuild -y
 修改 opensvswitch 的配置文件如 /etc/sysconfig/network-scripts/ifdown-ovs
   # rpmrebuild openvswitch
由于你修改过这个文件,rpmrebuild 的时候会提示该文件修改,输入 y
文件会生成于
 # /root/rpmbuild/RPMS/x86_64/libvirt-daemon-3.2.0-14.el7_4.5.x86_64.rpm

第 2 步:从.deb 转换为.rpm 包

对于此测试,我们选择了 dateutils,它提供了一组日期和时间实用程序来处理大量的财务数据。我们将.deb 软件包下载到我们的 CentOS 7 盒子,将其转换为.rpm 并安装它:

检查CentOS版本

                                检查 CentOS 版本

#cat / etc / centos-release
#wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.debalien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb

在Linux中将.deb转换为.rpm包

                                           在 Linux 中将.deb 转换为.rpm 包

重要 :(请注意,默认情况下,alien 会增加目标包的版本次要编号。如果要覆盖此行为,请添加 - keep-version 标志)。

如果我们立即尝试安装软件包,我们将遇到一个小问题: 

安装RPM包

                                                          安装 RPM 包

要解决此问题,我们将启用 epel-testing 存储库并安装 rpmrebuild 实用程序以编辑要重建的程序包的设置:

      #yum --enablerepo = epel-testing 安装 rpmrebuild

然后跑,

#rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm

这将打开您的默认文本编辑器。转到该%files部分并删除引用错误消息中提到的目录的行,然后保存文件并退出:
将.deb转换为外星人版

                                        将.deb 转换为外星人版

当您退出该文件系统将提示您继续重建。如果你选择 Y.,则文件将重建到指定目录(不同于当前工作目录):

#rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm
构建RPM包

                                                     构建 RPM 包

现在,您可以继续安装软件包并照常验证:

#rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm
#rpm -qa | grep dateutils

安装Build RPM Package

                                                       安装 Build RPM Package

最后,您可以列出 dateutils 中包含的各个工具,也可以检查各自的手册页:

#ls -l / usr / bin | grep dateutils

验证已安装的RPM包

                                                  验证已安装的 RPM 包

第 3 步:从.rpm 转换为.deb 包

在本节中,我们将说明如何将.rpm 转换为.deb。在 32 位 Debian Wheezy 框中,让我们从 CentOS 6 操作系统下载 zsh shell 的.rpm 包存储库。请注意,默认情况下,Debian 和衍生产品中不提供此 shell。

#cat / etc / shells
#lsb_release -a | 尾巴-n 4
检查Shell和Debian OS版本

                          检查 Shell 和 Debian OS 版本

#wget http://mirror.centos.org/centos/6/os/i386/Packages/zsh-4.3.11-4.el6.centos.i686.rpmalien --to-deb --scripts zsh-4.3.11-4.el6.centos.i686.rpm

您可以放心地忽略有关丢失签名的消息:

将.rpm转换为.deb包

                                                     将.rpm 转换为.deb 包

片刻之后,应该生成.deb 文件并准备安装:

#dpkg -i zsh_4.3.11-5_i386.deb
安装RPM Converted Deb Package

                                                 安装 RPM Converted Deb Package

安装后,您可以验证 zsh 是否已添加到有效 shell 列表中:

#cat / etc / shells
确认已安装的Zsh包

                     确认已安装的 Zsh 包

摘要

在本文中,我们已经解释了如何将.rpm 转换为.deb,反之亦然,以便在这些程序在存储库中不可用或作为可分发的源代码时,作为最后的手段安装软件包。你会想要为这篇文章添加书签,因为我们所有人都会在某个时候需要外星人。

 
 

关于Linux 命令之 rpmlinux里rpm命令的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于7 安装软件包的三种方法 rpm 包介绍 rpm 工具用法 yum 工具用法 yum 搭建本地仓库、7.1 安装软件包 7.2 rpm 包介绍 7.3 rpm,yum 工具用法 7.5 yum 搭建本地仓库、7.1 安装软件包的三种方法 7.2 rpm 包介绍 7.3 rpm 工具用法 7.4 yum 工具用法、CentOS7 使用 Alien 将 RPM 从 DE 转换为 DEB 和 DEB 转换为 RPM 包等相关内容,可以在本站寻找。

本文标签: