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,否则不奏效。

rpm 软件包的更多相关文章

  1. rpm软件包管理

    RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证. 下面我们就来逐一的讲解吧. 一. 安装RPM包 RPM 软件包通常具有类似foo-1.0-1.i386.rp ...

  2. linux笔记:RPM软件包管理-rpm命令管理

    rpm包命名原则: rpm包的依赖性: 包名和包全名: rpm软件包安装.升级和卸载: rpm软件包查询: 从rpm包中提取指定文件:

  3. Linux下RPM软件包的安装及卸载

    http://os.51cto.com/art/201001/177866.htm 在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装.卸载及管理等操作.RPM 的全称为Redhat P ...

  4. rpm软件包类型

    rpm软件包 在linux世界里有两种流行的包管理方式,分别是redhat系的rpm和debian系的deb.其中rpm是RedHat Package Manager(RedHat软件包管理工具)的简 ...

  5. linux RPM软件包管理

    linux RPM软件包管理 目录 1.软件包的介绍 2.rpm包管理 3.rpm包管理前端工具 1.软件包的介绍 在我们在对软件包管理前,先对软件包有个很好的了解,这样更方便我们来对其进行管理. 软 ...

  6. 逐步搭建Lamp环境之rpm软件包管理

    Linux中的rpm软件包管理类似于windows下的"xxx软件管家"."xxx电脑管家",其作用主要用于查询软件的安装情况.安装软件.卸载软件. 以下针对这 ...

  7. 本地yum仓库搭建及rpm软件包定制

    环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:2 ...

  8. rpm软件包、yum软件仓库、systemd初始化进程

    rpm软件包.yum软件仓库.systemd初始化进程 作者:Eric 微信:loveoracle11g 红帽软件包管理器rpm (Redhat Package Manager) RPM会建立统一的数 ...

  9. linux的RPM软件包管理工具

    RPM(Redhat Package Manage)原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采 ...

  10. RPM软件包管理的查询功能 转

    RPM软件包管理的查询功能: 命令格式 rpm {-q|--query} [select-options] [query-options] RPM的查询功能是极为强大,是极为重要的功能之一:举几个常用 ...

随机推荐

  1. Dubbo服务集群,常见容错机制:failover ,failsafe,failfase ,failback,forking

    http://blog.csdn.net/hongweigg/article/details/52925920 http://m.blog.csdn.net/article/details?id=51 ...

  2. 九度OJ 1014:排名 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8267 解决:2469 题目描述:     今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分 ...

  3. 性能测试--Jmeter随机生成/随机选取/csv读取关键字

    Jmeter随机生成/随机选取/csv读取关键字 一.随机生成关键字 随机生成关键字,需要组件:随机变量配置元件(Random Variable)  该组件的作用是生成字符+随机数字格式的字符串,并保 ...

  4. Linux就该这么学--Shell脚本条件语句(二)

    1.for条件语句 先读取多个不同的变量值,然后逐一执行同一组命令. 从列表文件中读取主机地址,逐个测试是否在线. 从ipadds.txt中读取主机地址后赋值给HLIST变量后逐个ping列表中的主机 ...

  5. 在linux 中卸载Mysql

    一.通用的mysql卸载方式 1.查看系统中是否已经安装了mysql 命令:rpm -qa|grep -i mysql如果有显示msql的安装列表,代表已经安装了. 2.停止mysql服务.删除之前安 ...

  6. mysql父子查询

    https://segmentfault.com/a/1190000007531328

  7. 一次跨域请求出现 OPTIONS 请求的问题及解决方法

    问题背景浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域 在前后端开发过程经常会遇到跨域问题.网上也都有解决方案. 写这篇文章时,我们碰到的一个场景是:要给s系统做一 ...

  8. Linux之make的用法讲解

    在 Linux环境下使用 GNU 的 make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译.连接以至于最后的执行.不过这需要我们投入一些时间去完成一个或者多个 ...

  9. Spring Boot2.0之性能优化

    1.JVM参数调优   针对运行效果  吞吐量    初始堆内存与最大堆尽量相同   减少垃圾回收次数  2.扫包优化: 启动优化 默认Tomcat容器改为Undertow Tomcat的吞吐量500 ...

  10. IDEA:Application Server was not connected before run configuration stop, reason: Unable to ping 1099

    原文链接 : http://blog.csdn.net/x6582026/article/details/70807269 最近第一次玩IDEA时碰到tomcat启动问题:Application Se ...