day13(软件包管理)

软件包管理

一:软件包分类和格式

  1. 软件包分类

1. rpm 包(其次原始,对源码包处理过)
  预先编译打包,安装方便;稳定但是版本一般较低
  官方把一些稳定的版本进行预编译配置,直接安装
  rpm制作好的安装程序---->>安装
2. 源码包(最原始,)
  手动 编译安装,原件版本最新可选择性强;但是安装比较繁琐
  比如用c语言写好的代码
  定制安装细节---->>安装
3. 二进制包(最终的成功)
  解压就可使用安装简单,但是不能修改源代码
  解压后---->>无需安装
  1. rpm包格式

abrt-python-doc-2.1.11-57.el7.centos.noarch.rpm
abrt-python-doc #软件包的名称
2.1.11 #软件的版本
57 #软件编译之后的发布的次数
el7 #适合的操作系统的版本
noarch #适⽤于不同版本的CPU
.rpm #后缀名
  1. 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的时候
  2. 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

    1. 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. 步骤

(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 时候,在安装后的包不删除,全部丢到上面的路径里去了

   

 

原文地址:https://www.cnblogs.com/dayday-up-a/p/14606517.html