Linux软件包管理
1. rpm命令管理
1.1 RPM包命名原则
例:httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd
——软件包名2.2.15
——软件版本15
——软件发布的次数rl6.centos
——适合的Linux平台i686
——适合的硬件平台(若是noarch即说明各个平台都可以使用)rpm
——rpm包扩展名
注意包名和包全名的区别:
- 包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库。
- 包全名:操作的包是没有安装的软件包时,使用包全名,而且要注意路径。
1.2 RPM包依赖性
- 树形依赖:a→b→c
- 环形依赖:a→b→c→a(将a、b、c用一条命令同时装)
- 模块依赖:模块依赖查询网站:www.rpmfind.net
1.3 RPM安装与卸载命令
安装:rpm -ivh 包全名
。选项:
-i
:安装(install)-v
:显示详细信息(verbose)-h
:显示进度(hash)--nodeps
:不检测依赖性
用rpm命令手动安装,依赖管理极其复杂,不建议使用。
卸载:rpm -e 包名
1.4 RPM查询(常用)
rpm的安装命令可能不会常用,但查询命令会经常使用。
rpm -q 包名
:查询是否安装。rpm -qa
:查询所有已安装的包。rpm -qi 包名
:查看已经安装的包信息。rpm -ql 包名
:查询包中的文件安装位置。rpm -qf 系统文件名
:查询系统文件属于哪个软件包。rpm -qR 包名
:查询软件包的依赖性。
1.5 RPM校验和文件提取
-
rpm -V 已安装的包名
:校验指定RPM包中的文件。若没有出现任何信息,则表明包文件没有被修改。 -
**为什么要进行RPM包的文件提取:当有误删除配置文件等操作时,可以从包中提取文件进行修复。**命令:
rpm2cpio 包全名 | cpio -idv .文件绝对路径
2. yum在线管理
注意没有yum包这一说法,yum管理的同样是rpm包。
2.1 IP地址配置和网络yum源
使用setup
或者nmtui
配置ip地址后,使用service network restart
重启网络服务
配置网络yum源:CentOS的yum源默认是配置好的,若要进行修改,可以vim /etc/yum.repos.d/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
[base]
:容器名称,放在[]中;name
:容器说明,随便写;mirrorlist
:镜像站点,可以注释掉;baseurl
:CentOS官方的yum源服务器;enabled
:容器是否生效,默认为1;gpgcheck
与gpgkey
是进行数字证书验证的选项,保持默认配置即可。
2.2 yum命令
yum list
:列出服务器上可用的软件包。yum search 包名
:搜索服务器上所有和关键字有关系的包。yum -y install 包名
:安装软件包,选项-y
的含义为自动回答yes.yum -y update 包名
:升级指定包。若不加包名则会升级所有包(包括linux内核),一定要注意慎重使用。yum -y remove 包名
:删除软件包。卸载命令不安全。yum grouplist
:查看已经安装的软件组。yum groupinstall 软件组名
:安装软件组。
3. 源码包
3.1 RPM包与源码包安装位置区别
-
RPM包
位置 说明 /etc/ 配置文件安装目录 /usr/bin/ 可执行的命令安装目录 /usr/lib/ 程序所使用的函数库保存位置 /usr/share/doc/ 基本的软件使用手册保存位置 /usr/share/man/ 帮助文件保存位置 -
源码包:安装在指定位置当中,一般是
/usr/local/软件名/
**安装位置不同带来的影响:**RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是:
- 绝对路径管理:
/etc/rc.d/init.d/httpd start
(RPM安装的服务都会在这一路径下) - 系统服务管理:
service httpd start
CentOS7以后换成了systemctl * start
,用systemctl
进行服务管理。
而源码包安装的软件只能通过绝对路径方式进行启动。
3.2 源码包安装
-
安装准备:
- 前提有c语言编译器。
- 下载源码包。
-
安装注意事项:
- 源代码保存位置:
/usr/local/src
- 软件安装位置:
/usr/local
- 安装过程报错:安装过程停止并出现error、warning或no的提示
- 源代码保存位置:
-
安装过程:
-
解压缩下载的源码包并进入解压缩目录。
-
在遇到陌生的源码包时,首先查看安装说明
INSTALL
和使用说明README
。 -
./configure 软件配置与检查
- 定义需要的功能选项,如:
- 通过./configure --help查看帮助
- 常用
./configure --prefix=/usr/local/xxx
定义安装位置
- 检测系统环境是否符合安装要求;
- 将定义好的功能选项和检测系统环境的信息都写入Makefile文件用于后续编辑。
- 定义需要的功能选项,如:
-
配置好后
make
进行编译。(若报错可以通过make clean
清空) -
make install
进行安装。
-