rpm 软件包

rpm 软件包

  Linux 中有安装软件方式有两种,源码安装以及软件包安装:

  • 压缩包:源码包,编译后安装
  • rpm(redhat package manager 红帽软件包管理):需要编译,直接安装即可

  采用源码包安装,需要考虑软件之间的依赖关系,以及自行编译,在校验、安装、卸载等方面很不方便。rpm 机制就是为解决这种问题而设计的,像 Windows 的控制面板一样,简历同一的数据库文件,详细记录软件信息并自动分析依赖关系。

1. rpm 命令

1.1 安装本地软件包

  用于安装、卸载、查询、升级软件包等

  语法:

rpm [选项] 软件包名
选项:
- i:安装(install)软件
-U:升级(upgrade)软件
-e:移除/删除(erase)软件
-v:显示详细的处理信息,一般与 h 搭配使用
-h:显示安装进度,卸载不能用
-q: 查询(query)
-a:所有(all)

  1. rpm 软件包结构

  rpm 软件包分为包名、版本号、修正次数(及发行多少次)、适用平台、32/64 位以及拓展名:

# 版本是奇数为测试版本(不稳定),偶数为稳定版
yum-plugin-aliases-1.1.30-16.el6.x86_64.rpm		# el6 可以安装到哪个系统,16 是修正次数

  2. 安装

cd /media/CentOS_6.8_Final/Packages
rpm -ivh file1.rpm
rpm -ivh file1.rpm file2.rpm...		# 安装多个
rpm -ivh file.rpm --force	# 覆盖安装

  3. 查询

# 查询所有安装的软件包
rpm -qa			# query/all

# 过滤,查询某个软件包
rpm -qa | grep 'dhcp'
rpm -q 软件包名
rpm -ql 软件包名		 # query location 查询软件包安装位置
rpm -qi 软件包名      # 查询软件包详细信息

  4. 卸载

rpm -e 软件包名

  5. 升级

rpm -U 软件包名

1.2 安装网络软件包

  语法:

rpm -ivh 域名/软件包名
rpm -ivh http://mirror.centos.org/centos-6/6.8/extras/x86_64/Packages/python-boto-2.32.1-1.el6.centos.noarch.rpm

  也可以先使用 wget 命令下载到本地,再使用 rpm 命令安装:

cd direcory		# 切换到目录
wget http://mirror.centos.org/centos-6/6.8/extras/x86_64/Packages/python-boto-2.32.1-1.el6.centos.noarch.rpm	# 下载
rpm -ivh python-boto	# 安装

1.3 rpm 包的属性依赖性问题

  rpm 软件包的属性依赖性问题,即这个软件包的安装依赖于其他软件包的安装。那么卸载它就需要忽略依赖或者先卸载依赖于它的那个软件,安装亦一样:

# 删除有依赖关系的软件包
rpm -e dhcp-common --nodeps		# no dependencies 忽略依赖

2. yum 命令

  

  yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。

  基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

  yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

2.1 常见 yum 命令

命令 作用 命令 作用
yum install 软件包 安装软件包 yum repolist all 列出所有仓库
yum list all 列出仓库中所有软件包 yum info 软件包 查看软件包信息
yum makecache 制作缓存 yum -y install http* 模糊安装(安装所有含http 的软件包
yum reinstall 软件包 重新安装软件包 yum update 软件包 升级软件包
yum remove 软件包 移除软件包 yum clean all 清除所有仓库缓存
yum check-update 检查可更新的软件包 yum grouplist 查看系统中已安装的软件包组
yum groupinstall "软件包组" 安装指定的软件包组 yum groupremove 软件包组 移除指定的软件包组

2.2 配置本地 yum 仓库

  配置一个本地 yum 仓库,需要将路径设置为光盘路径(/media/CentOS_6.8_Final/Packages 存放的 rpm软件包),再配置 yum 仓库。

  步骤一:将光盘挂载到某个目录,也可以不挂载直接指定光盘路径

mkdir /media/local_yum
mount /media/CentOS_6.8_Final /media/local_yum

  步骤二:配置 yum 仓库,编辑配置文件。首先在 /etc/yum.repos.d/ 目录下创建一个仓库名(local.repo),再编辑配置文件

[root@hj /]# vim /etc/yum.repos.d/local.repo
[local]			# id ,中括号内容要求唯一,但不要出现特殊字符
name=local yum	# 描述信息
baseurl=file:///media/CentOS_6.8_Final	# yum 软件仓库位置,指向光盘挂载点
enabled=1		# 1 为开启,0不开启
gpgcheck=0		# 检查签名,1 为检测,0不检测(一般设置不检测)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release  # 签名认证信息的路径(gpgcheck=1 才有这行)

  查看仓库是否安装成功,安装软件包

[root@hj yum.repos.d]# yum repolist
[root@hj yum.repos.d]# yum install dhcp-common

2.3 自定义 yum 源

  自定义 yum 源除了需要有 rpm 软件包,还需要存放有软件包依赖关系的配置文件 repodata,可以使用 createrepo 命令生成:

安装 createrepo
mkdir /test
cp 软件包 /test
createrepo /test
修改 /etc/yum.repos.d/local.repo 的 baseurl=file:///test

2.4 网络源仓库

  要想安装网络上的软件包,就需要安装网络源仓库,与配置本地 yum 仓库不同的是 baseurl 指向的是网络 URL:

vim /etc/yum.repos.d/line_yum
[online]
name=online yum
baseurl=http://mirrors.163.com/.help/CentOS6-Base-163.repo
enabled=1
gpgabled=0

  使用 yum 命令安装网络上的软件包,安装完毕后默认移除软件包,也可以通过设置 /etc/yum.conf 文件,将软件包保留下来,用于以后制作自己的 yum 源。

mkdir /etc/yum_source		# 新建一个目录用于存储缓存的软件包
vim /etc/yum.conf			# 打开配置文件
cachedir=/yum_source		# 缓存目录
keepcache=0					# 保留缓存,0表示不缓存,1表示缓存

2.5 国内源

  系统默认的源有时速度上很慢,我们可以将源路径设置为国内的源,国内目前比较好用的几个源有:网易 163 、中科大、sohu 等,下面以网易 163 为例:

  步骤一:备份原先的源(CentOS-Base.repo)

mv /etc/yum.repos.d/CentOS-Base.repo  /etc/yum.repos.d/CentOS-Base.repo.backup

  步骤二:下载对应版本 repo 文件,放入 /etc/yum.repos.d/

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo CentOS-Base.repo

  步骤三:运行命令生成缓存

yum clean all
yum makecache

3. 源码包安装

3.1 源码包安装步骤

  一般来说,能用 yum 软件仓库安装,就要 yum 方式;反之则去寻找合适的 rpm 软件包安装;实在没有资源可用,则采用源码包安装。

  源码安装分为以下几个步骤:

  第 1 步:安装编译所需的 C 运行库 glibc(Linux 最底层的 api ),以及 gcc 编译器(Linux 中所有程序包括内核都是 gcc 编译),两个软件互相依赖。

yum install gcc-* glibc-* -y

  第 2 步:下载源码包。源码包通常是归档后的以 gzip 或 bzip2 等格式压缩的文件,因此一般会具有 .tar.gz、.tar.bz2 后缀。

# 一般下载到根目录下
wget https://python.org/ftp/python/3.6.5/Python-3.6.5.tgz

  第 3 步:解包。

tar -xvf Python-3.5.2.tgz

  第 4 步:编译源码包文件。在正式安装之前,还需使用编译器脚本针对当前系统进行一系列的评估工作,如果系统符合安装要求,会在当前目录生成一个 Makefile 安装文件,还根据需要追加 --prefix 参数,指定软件安装路径。

cd /Python-3.5.2
./configure --prefix=/usr/local/python3.6	# 指定软件安装路径

  第 5 步:生成二进制安装程序。刚刚生成的 Makefile 文件保存有关系统环境、软件依赖关系和安装规则等,接下来可以用 make 命令编译生成二进制安装程序。

make

  第 6 步:运行二进制服务程序安装包(即安装软件)。

make install

  第 7 步:清理源码包临时文件。在编译时会产生很多临时垃圾文件,可以使用 make clean 命令将其清除掉。

make clean

3.2 添加环境路径(PATH)

  软件安装成功后,要想正常使用,一般都需要添加环境路径,这和 Windows 上类似,以上面的 Python 程序为例:

  1. 查看 PATH 路径

# 以冒号【:】 为分隔符
[root@hj /]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

  2. 临时添加 PATH

  临时添加 PATH,重启系统服务失效,直接给 PATH 赋值即可

# 添加 Python 执行程序路径 /usr/local/python3.6/bin/
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/python3.6/bin/

  3. 永久添加 PATH

  凡是永久有效的,都需要修改配置文件。添加 PATH 需要修改 /etc/profile ,在最后面添加 PATH

vim /etc/profile
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/python3.6/bin/
export PATH                           

  保存,退出,执行 source /etc/profile,否则不奏效。

原文地址:https://www.cnblogs.com/midworld/p/9849233.html