7.1-7.9Linux软件包安装与卸载
软件报的分类:*.zip *.tar rpm二进制包 tar源码包
rpm概述:
RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SUSE以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
rpm包获取方式:
1、CentOS系统镜像光盘
2、网站 rpmfind.net
3、去对应软件的官网下载,例如mysql、NGINX等等
rpm 的格式说明:
ls zsh-5.0.2-28.el7.x86_64.rpm
软件名:zsh
主版本号:5
此版本号:0
修订号:2
第几次发布版本:28
操作系统版本:el7
软件包的位数:x86_64.rpm
基于REDHAT的系统有几种可用的前端工具:
- yum redhat centos fedora
- urpm Mandriva
- zypper suse opensuse
rpm 使用时,什么时候使用软件包全名?什么时候使用软件包名?
1、在安装和更新升级时候使用全名
2、对已经安装过的软件包进行操作时,比如查找已经安装的某个包,卸载包等 ,使用包名。它默认是去目录/var/lib/rpm下面进行搜索。 当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地的 /var/lib/rpm/目录下。
RPM工具操作:安装、查询、验证、更新、删除
[安装]
语法格式:rpm [参数] 软件包
参数:
-i install,安装软件包
-v 显示附加信息,提供更多详细信息
-V 效验,对已经安装的软件进行效验
-h --hash 安装时输出####标记
[查询]
语法:rpm -q(query) 【常用参数】 [软件包名]
参数:
-a (all) 查询所有已经安装的软件包
-f(file) 系统文件名(查询系统文件所属那个软件包),反向查询
-i 显示已经安装的rpm软件包信息,后面直接跟包名
-l(list) 查询软件包中文件安装的位置
-p 查询未安装软件包的相关信息,后面跟软件的命名
-R 查询软件包的依赖性
【验证】
rpm -V 包名
rpm -Vf 文件路径
注:如果出现的全是点,表示测试通过,出现下面的字符代表某测试的失败:
5 — MD5 校验和是否改变,你也看成文件内容是否改变
S — 文件长度,大小是否改变
L — 符号链接,文件路径是否改变
T — 文件修改日期是否改变
D — 设备
U — 用户,文件的属主
G — 用户组
M — 模式 (包含许可和文件类型)
? — 不可读文件
再后面的c 文件名,它表示的是文件类型
c 配置文件
d 普通文件
g 不该出现的文件,意思就是这个文件不该被这个包所包含
l 授权文件(license file)
r 描述文件
【卸载与升级】
卸载:rpm -e(erase) 包名 (参数 --nodeps 忽略依赖,建议在卸载不要用rpm去卸载有依赖关系的包,建议用yum)
例如:rpm -e --nodeps lrzsz
升级:rpm -Uvh 软件包(升级时会有一些依赖包需要解决,一般使用yum update 包名 进行升级)
例如:rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
yum 的使用:
yum 常用 功能 语法:
yum install [软件包名] 安装软件包
yum search [软件包名] yum 搜索软件包
yum list 显示所有已经安装及可安装的软件包
yum list [软件包名] 显示指定的软件包的安装情况。
yum remove [软件包名] 删除软件包
yum erase [软件包名] 删除软件包
yum update 内核升级 或者软件 更新
yum update [软件包名] 更新指定 软件包
yum check-update 检查可更新的软件包
yum info [软件包名] 显示安装包信息
yum provides 列出软件包提供哪些文件
yum provides "* /rz" 列出rz 命令由哪个软件包提供
yum grouplist 查询可以用goupinstall 安装的组名称
yum groupinstall "Chinese Support" 安装中文支持
yum groupremove "Chinese Support" 删除程序组Chinese Support
yum deplist [软件包名] 查看程序的依赖情况
yum clean packages 清除缓存目录下的软件包
yum clean header 清除缓存目录下的headers
yum clean all 清除 缓存目录下的软件包 及 旧的 headers
YUM 构建源:
本地源(基于ISO镜像光盘):
① 将系统镜像 加载至 虚拟机中 并进行 挂载:mount /dev/cdrom /mnt
② 用 命令blkid | grep "/dev/sr0" 查看 光盘的UUID 及 文件类型;如下图
并进行在 /etc/rc.local 追加如下信息可以实现自动挂载:echo "mount /dev/cdrom /mnt" >> /etc/rc.local
也可以在 /etc/fstabz 中追加如下信息实现自动挂载:
echo "UUID=2018-05-03-20-55-23-00 /mnt iso9660 defaults 0 0" >> /etc/fstab (测试在/etc/fstab 中写 UUID 比较 /dev/cdrom 重启 不会 出现系统异常错误!)
③ vim /etc/yum.repos.d/centos-base.repo,其内容如下:
[centos-base] yum 源名称,在服务器上有唯一性,用来区分不同的yum源
name=centos-base yum 源描述信息
baseurl=file:///mnt yum 源的路径(方式:FTP、HTTP、本地光盘挂载方式)
enable=1 表示是否启用这个yum 源(1表示启用,0表示禁用)
gpgcheck=0 表示用是否对rpm进行效验(1表示进行效验,0表示比进行效验)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 指定的效验秘钥及公钥文件地址
④ 然后进行执行 清空缓存 命令 与 列出 yum源加载的rpm包:yum clean all && yum list
基于网络yum 源:
① 下载 yum 文件,使用命令wget:
wget -O /etc/yum.repos.d/centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
② 然后进行执行 清空缓存 命令 与 列出 yum源加载的rpm包:yum clean all && yum list
③ 如果 下载下来的 yum 源文件 不能正常使用,可以进行如下操作解决:
a、cat /etc/centos-release
b、sed -i 's/$releasever/7.5.1804/g' /etc/yum.repos.d/centos-7.repo
c、yum clean all && yum list
yum 工具 只下载 rpm 软件包:
yum install -y [软件包名] --downloadonly
yum install -y [软件包名] --downloadony --downloaddir=路径
yum reinstall -y [软件包名] --downloadony --downloaddir=路径
源码包安装:
① 下载 所需 的 软件 源码包
② 解压缩 下载下来的 源码包
③ 进入 源码包解压缩后的目录,执行 ./configure 进行预编译
④ 使用 make 命令 进行编译
⑤ 使用 make install 进行 安装
注意:
a. 指定安装路径,例如 --prefix=/usr/local/nginx
b. 启用或禁用某项功能, 例如 --enable-ssl, --disable-filter --with-http_ssl_module
c. 和其它软件关联,例如--with-pcre
d. 检查安装环境,例如是否有编译器gcc,是否满足软件的依赖需求
make -j 4 #按Makefile文件编译,可以使用-j 4指定4核心CPU编译,提升速度
make install #按Makefile定义的文件路径安装
make clean //清除上次的make命令所产生的object和Makefile文件。(使用场景:当需要重新执行configure时,需要执行make clean)