软件包管理
-
软件包分类
1. rpm 包(其次原始,对源码包处理过)
预先编译打包,安装方便;稳定但是版本一般较低
官方把一些稳定的版本进行预编译配置,直接安装
rpm制作好的安装程序---->>安装
2. 源码包(最原始,)
手动 编译安装,原件版本最新可选择性强;但是安装比较繁琐
比如用c语言写好的代码
定制安装细节---->>安装
3. 二进制包(最终的成功)
解压就可使用安装简单,但是不能修改源代码
解压后---->>无需安装
-
rpm包格式
abrt-python-doc-2.1.11-57.el7.centos.noarch.rpm
abrt-python-doc #软件包的名称
2.1.11 #软件的版本
57 #软件编译之后的发布的次数
el7 #适合的操作系统的版本
noarch #适⽤于不同版本的CPU
.rpm #后缀名
-
yum挂载
# 1.本地的ISO镜像光盘(软件包可能存在版本偏低情况) : 挂载镜像有以下三种⽅式
⽅式1: [root@localhost ~]# mount /dev/cdrom /opt/
⽅式2: [root@localhost ~]# mount /dev/sr0 /opt/
⽅式3 [root@localhost ~]# mount -o loop /xxx.iso /opt
查看光盘⾥的rpm包 [root@localhost ~]# ls /opt/Packages/
# 2.⾃⼰去⽹上下载rpm包进⾏安装
# 3.联⽹从yum仓库⾥获取rpm包 # yum的时候 -
yum命令
相关rpm包事先都被存放于⼀个仓库⾥,仓库包含了所有的依赖包,所以yum按照可以帮我们解决依赖性问题
# 1.本地的ISO镜像光盘(软件包可能存在版本偏低情况) : 挂载镜像有以下三种⽅式
⽅式1: [root@localhost ~]# mount /dev/cdrom /opt/
⽅式2: [root@localhost ~]# mount /dev/sr0 /opt/
⽅式3 [root@localhost ~]# mount -o loop /xxx.iso /opt
查看光盘⾥的rpm包 [root@localhost ~]# ls /opt/Packages/
# 2.⾃⼰去⽹上下载rpm包进⾏安装
# 3.联⽹从yum仓库⾥获取rpm包 # yum的时候
df 查看挂载
df -h 查看大小
umount 卸载挂载#有一种包的格式是以rpm结尾的,还有一种命令也叫作rpm
-
rpm命令(一般用的比较少,因为有很多的依赖问题)
#1、安装:rpm -ivh <RPM包名全称>
#2、卸载:rpm -e <RPM包名>
#3、升级:rpm -Uvh <RPM包名>
#4、查询:
rpm -qa #查询系统中安装的所有RPM软件包
rpm -qa | grep php #检索系统中已经安装有关php的软件包
rpm -q <RPM包名> #查询指定软件包是否已安装
rpm -qi <RPM包名> #查询系统中已安装包的描述信息
rpm -ql <RPM包名> #查询系统中已安装包⾥所包含的⽂件
rpm -qc <RPM包名> #查询指定软件包的所有配置⽂件
[root@egon ~]# rpm -qc mariadb
/etc/my.cnf.d/client.cnf
rpm -qd <RPM包名> # 查询某个包安装的帮助⽂档
[root@localhost ~]# rpm -qd zlib
rpm -qf ⽂件路径 #查询系统中指定⽂件所属的软件包
[root@egon ~]# rpm -qf /usr/sbin/ifconfig
net-tools-2.0-0.25.20131004git.el7.x86_64
-p # 在上述选项的基础上加选项-p,就可以查看尚未安装的
rpm包信息
-
二:yum命令
1. 为什么要用yum
(1)因为yum帮我们解决了依赖性问题;原理是在yum仓库里已经将依赖关系写好了,并且配套的文件都有
(2)yum仓库:存放各种软件包,并且里面有文件记录了软件的相关依赖关系
2. 查看yum命令与配置⽂件
[root@localhost ~]# rpm -q yum
yum-3.4.3-161.el7.centos.noarch
[root@localhost ~]# rpm -qc yum
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
仓库命令:
yum repolist #列出可用仓库
yum repolist all #列出所有的仓库
yum list #列出仓库里所有的软件包
yum list | less #列出仓库中的所有组
yum-config-manager --disable epel #关闭仓库epel
yum-config-manager --enable epel #开启仓库epel
安装和卸载:
yum install 名字 -y
yum remove 名字 -y
重装:
yum reinstall 名字 -y
yum makecache #制作缓存
/etc/yum.conf keepcache=1时候,是将安装后软件不删除保存到此文件中上面的路径中
三:配置yum源
可以当做仓库的2个必须条件:
(1)必须有软件包
(2)必须有处理软件依赖关系的文件
本地源,网络源(base基础源,epel扩展源,)
本地源:把本地的一个文件做成了yum源
方式1:
1.采集一系列软件包放在本地目录下
备份/etc/yum.repos.d/*.repo的文件,并且新建以.repo结尾的目录,暂时命令为local.repo
2.createrepo 目录路径 #需要安装createrepo
vim /etc/yum.repos.d/local.repo
baseurl=file:///opt #找/opt/repodate这个文件夹
enabled=1
gpcheck=0
yum repolist 查看列表
方式2:使用镜像文件
1. 挂载镜像
mount /dev/sr0 /opt
mount /dev/cdrom /opt
mount -o loop xxx,ido /opt
网络源:ftp
一种基于http: 一种是基于ftp
1. 环境准备
systemctl stop firewalld
systemctl disabled firewalld
2.安装ftp
yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd #开机自启动
四:源码包安装
-
步骤
(1) 下载源码包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
(2)解压
tar -xvf nginx-1.18.0.tar.gz -C /opt/
# -xvf 解压; -C解压到指定路径
#解压到哪里都可以,待安装完成就要删除的
(3)测试环境
cd /opt/nginx-1.18.0
./configure
(4)编译环境准备:
yum -y install gcc gcc-c++ autoconf automake make
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
或者
LANG=C yum -y groupinstall "Development tools"
备注:
如果再缺什么包yum安装即可;并且一般会在软件包(sqlite)后加上-devel(sqlite-devel)
yum install sqlite sqlite-devel -y
再次测试成功后进行下一步
(5)编译和编译安装
make #make -j 多核安装,速度会快点
make install PROFIX=/usr/local
(6)添加环境变量
vim /root/.bash_profile 修改文件内容
NGINX_HOME=/usr/local/nginx/sbin
PATH=$PATH:$NGINX_HOME
export PATH
/etc/profile 添加所有用户的环境变量 /root/.bash_profile 添加当前用户的环境变量
(7)测试安装成功
which nginx / nginx
五:yum同步到本地供其他用户安装
陈阳版本:
克隆仓库主机后:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改ip为:192.168.15.30
vim /etc/sysconfig/network-scripts/ifcfg-eth1
修改ip为:192.168.15.30
systemctl restart network
克隆仓库主机后:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改ip为:192.168.15.31
vim /etc/sysconfig/network-scripts/ifcfg-eth1
修改ip为:192.168.15.31
systemctl restart network
仓库主机:
vim /etc/yum.conf keepcache=1 #缓存yum安装下载的软件包
yum install createrepo vsftpd wget -y 安装软件
systemctl enable --now vsftpd 立即启用ftp
rm -rf /etc/yum.repos.d/* 删除本地源
wget 华为镜像
cd /var/ftp yum install yum-utils -y
启用yum仓库
reposync -r base 同步远程的镜像到本地
createrepo base 建立依赖关系
vim /etc/yum.repos.d/local.repo
[local-ftp]
name='this is ftp'
baseurl=ftp://192.16.15.10/base
gpgcheck=0
enabled=1
yum clean all
yum makecache
测试机---->>>>>>>>>>>>>>>>>>>>>>>>>
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo
[local-ftp]
name='this is ftp'
baseurl=ftp://192.16.15.10
gpgcheck=0
enabled=1
测试环境:
yum clean all
yum makecache
yum install zsh
yum repolist #查看可用的yum仓库
小绵款:
克隆仓库主机后:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改ip为:192.168.15.30
vim /etc/sysconfig/network-scripts/ifcfg-eth1
修改ip为:192.168.15.30
systemctl restart network
克隆仓库主机后:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改ip为:192.168.15.31
vim /etc/sysconfig/network-scripts/ifcfg-eth1
修改ip为:192.168.15.31
systemctl restart network
vim /etc/yum.conf keepcache=1 #缓存yum安装下载的软件包
yum install createrepo vsftpd wget -y 安装软件
systemctl enable --now vsftpd 立即启用ftp
rm -rf /etc/yum.repos.d/* 删除本地源
wget 华为镜像
cd /var/ftp yum install yum-utils -y
启用yum仓库
reposync -r base 同步远程的镜像到本地
createrepo base 建立依赖关系
vim /etc/yum.repos.d/local.repo
[local-ftp]
name='this is ftp'
baseurl=ftp://192.16.15.10/base
gpgcheck=0
enabled=1
yum clean all
yum makecache
测试机---->>>>>>>>>>>>>>>>>>>>>>>>>
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo
[local-ftp]
name='this is ftp'
baseurl=ftp://192.16.15.10
gpgcheck=0
enabled=1
测试环境:
yum clean all
yum makecache
yum install zsh
yum repolist #查看列表
egon款:
1. yum相比rpm可以解决依赖问题;
yum仓库存放了所有相关软件包的文件夹,里面有所有的相关软件包,并且有记录软件包依赖关系的软件包
yum repolist #列出可用的yum仓库
yum list #查看可用的包
yum grouplist #查看可以使用的组列表
yum remove 软件名 #卸载软件
yum reinstall 软件名 -y #重新安装
yum update 软件名 -y #更新
yum clean all #清除元数据缓存
yum makecache #制作元数据缓存
/etc/yum.conf 文件中
cachedir=/var/cache/yum/$basearch/$releasever keepcache=1 时候,在安装后的包不删除,全部丢到上面的路径里去了