linux系统中的软件管理(软件仓库的搭建:本地+网络源+第三方)

1.Linux中软件包的类型

1.DEB #UBlinux DEBlinux

2.RPM #redhat centOS fc

3.bz2|gz|xz #1.需要源码安装需要编译
#2.绿色软件,直接可用
#ntfs-3g_ntfsprogs-2017.3.23.tgz 需要编译 “configure”
#Firefox-latest-x86_64.tar.bz2 绿色

"注意在rhel8中只能使用绿色软件,源码编译软件和rpm软件"

2.软件包的名称结构

[dhcp-server]-[4.3.6-30].[el8].[x86_64].[rpm]
1 2 3 4 5

1.软件名称
2.软件版本
3.软件的授权协议版本
4.软件架构
5.软件类型后缀

3.rpm命令管理软件包

rpm

-ivh 安装参数组合-i install -v verbose -h hash
-a 所有
-f 文件
-p 软件包
-q 查询
-l 软件安装文件列表
-e 卸载
-c 配置文件
-d 说明
–info 软件信息
–force 强制
–nodeps 忽略依赖性 但有些软件包即使忽略依赖性安装成功,也无法使用
–script 查询软件在安装或卸载过程中的运行脚本
-Kv 检测软件md5校验码
-V 检测已安装软件在系统中的文件被修改信息

rpm -qf /bin/ls 查询命令的安装包

在这里插入图片描述

rpm -q httpd 查看是否安装此服务

[root@lzy Desktop]# rpm -q httpd
httpd-2.4.37-10.module+el8+2764+7127e69e.x86_64
[root@lzy Desktop]# 

4.本地软件仓库的搭建

系统软件仓库的作用

在系统中对软件进行管理
rpm命令是不能解决依赖关系的
如果需要软件在安装过程中自动解决依赖关系
需要大家系统软件仓库

搭建方法

1.在系统中加载安装系统时使用的安装镜像

 mkdir /westos    ##随意建立一个目录
 mount rhel-8.0-x86_64-dvd\(1\).iso /westos/   ##将镜像挂载到所建目录下
[root@foundation66 ~]# df   ##c查看挂载
Filesystem     1K-blocks     Used Available Use% Mounted on
devtmpfs         3921680        0   3921680   0% /dev
tmpfs            3936892    18156   3918736   1% /dev/shm
tmpfs            3936892    10232   3926660   1% /run
tmpfs            3936892        0   3936892   0% /sys/fs/cgroup
/dev/nvme0n1p7  74796360 29513244  45283116  40% /
/dev/nvme0n1p5   1038336   676404    361932  66% /boot
/dev/nvme0n1p1    307032    51920    255112  17% /boot/efi
tmpfs             787376       12    787364   1% /run/user/42
tmpfs             787376       44    787332   1% /run/user/0
/dev/loop0       6935944  6935944         0 100% /westos

AppStream中是一些应用软件 BaseOS中是一些内核等软件 在安装软件的时候有一些依赖性,不确定依赖性在哪个库中,所以在搭建本地软件仓库的时候,两个库都写

[root@foundation66 ~]# cd /westos
[root@foundation66 westos]# ls
AppStream  EFI   extra_files.json  images    media.repo               RPM-GPG-KEY-redhat-release
BaseOS     EULA  GPL               isolinux  RPM-GPG-KEY-redhat-beta  TRANS.TBL
[root@foundation66 westos]# cd AppStream/
[root@foundation66 AppStream]# ls
Packages  repodata
[root@foundation66 AppStream]# cd Packages/
[root@foundation66 Packages]# ls
389-ds-base-1.4.0.20-7.module+el8+2750+1f4079fb.x86_64.rpm
389-ds-base-devel-1.4.0.20-7.module+el8+2750+1f4079fb.x86_64.rpm
389-ds-base-legacy-tools-1.4.0.20-7.module+el8+2750+1f4079fb.x86_64.rpm
389-ds-base-libs-1.4.0.20-7.module+el8+2750+1f4079fb.x86_64.rpm

2.编写软件仓库文件

/etc/yum.repos.d/ 软件源指向文件配置目录
在此目录中不能有无法访问的源指向
vim /etc/yum.repos.d/xxxx.repo##软件仓库指向文件

[AppStream]			##仓库名称    应用软件
name=AppStream		##描述
baseurl=file:///westos/AppStream	##地址      /westos  挂载镜像目录
gpgcheck=0			##不检测gpgkey	(跳过授权检测)    =1:检测,此时需要gpgkey
gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release       ### 去检测软件是不是官方授权的

[BaseOS]###系统的核心:函数库,内核
name=BaseOS
baseurl=file:///westos/BaseOS
gpgcheck=0
enable=1 ###表示启用此库    默认为1   =0:不启用此库

3.检测仓库是否搭建好

[root@foundation66 yum.repos.d]# dnf repolist ##能列出库的资源

Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
AppStream                                                                         135 MB/s | 5.3 MB     00:00    
BaseOS                                                                             95 MB/s | 2.2 MB     00:00    
repo id                                               repo name                                             status
AppStream                                             AppStream                                             4,672
BaseOS                                                BaseOS                                                1,658
[root@foundation66 yum.repos.d]# 

5.dnf 软件管理命令

dnf

repolist 列出仓库信息
clean all 清除系统中已经加载的仓库缓存信息
list all 列出所有软件
list available 列出未安装软件
list installed 列出已安装软件
install 安装
remove 卸载
reinstall 重新安装
search 搜索
whatprovides 搜索包含文件的软件包
history dnf执行历史
history info dnf执行历史详细信息
group list 列出软件组
group list --installed 列出已安装软件组
group list --available 列出未安装软件组
group list --hidden 列出隐藏软件案组
group install 安装软件组
group info 查看软件组信息

dnf whatprovides /bin/ls == rpm -qf /bin/ls
在这里插入图片描述

6.网络软件仓库的搭建

在企业中,我们维护的系统数量庞大,
当我们需要在每个系统安装软件管理软件时
可以在每个系统中各自搭建软件仓库
但是这样管理软件会浪费大量的资源

如何节省这部分重复的资源
需要把大家都要使用的资源共享到互联网中
这样大家就可以利用网络访问资源,不需要在每一台 主机中独立建立软件资源了。

搭建方法

1.利用景象搭建本地软件仓库 (见上) 本地主机ip 192.168.122.1
2.安装共享软件

共享方式http://	超文本传输协议
提供此协议的软件	Apache
软件包名称		httpd
共享位置		/var/www/html
安装命令	  dnf install httpd -y

3.启用共享软件Apache

 systemctl stop firewalld   关闭火墙
 systemctl disable firewalld
 systemctl enable --now httpd      ###设置httpd开机自启动

4.建立共享目录
mkdir /var/www/html/westos
5.挂在景象到共享目录
先卸载掉之前的挂载 umount /westos

mount /xxxxxxx.iso	/var/www/html/westos_8	当镜像在系统中存在
mount /dev/cdrom	/var/www/html/westos_8	当使用光驱读取镜像

vim /etc/rc.d/rc.local 在开机时自动挂载
mount /dev/cdrom /var/www/html/westos_8
chmod 755 /etc/rc.d/rc.local ##给予可执行权力
重新编辑repo文件
baseurl=file:///var/www/html/westos/ AppStream|BaseOS
6.在远程主机westos_linux中访问资源并书写repo文件 ##也可以直接在本地中检测:baseurl=http://本地ip/westos/BaseOS|AppStream

vim /etc/yum.repos.d/westos.repo
[AppStream]
name=AppStream
baseurl=http://192.168.122.1/westos_8/AppStream/
gpgcheck=0

[BaseOS]
name=BaseOS
baseurl=http://192.168.122.1/westos_8/BaseOS/
gpgcheck=0

在这里插入图片描述

网络源epel


[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/8/Everything/x86_64/
gpgcheck=0

6.第三方软件仓库的搭建方法

可以使用dnf命令管理第三方软件
生成一个目录,存放数据,扫描,生成数据,dnf读取并数据

根据repomd.xml的指向去读primary文件,加载到/var/cache/dnf

步骤

1.建立目录
mkdir /software
2.把所有的第三方软件存放到/software中
/software中只能存在rpm类型的文件,压缩包是不能使用dnf管理的
3.采集第三方软件数据生成repodate目录

dnf install createrepo -y安装采集工具
cd /software进入到目录
createrepo . 对目录中进行扫描生成repodate数据目录
cretaerepo -v 指定目录

vim /etc/yum.repos.d/westos.repo
[software]
name=software
baseurl=file:///software
gpgcheck=0


在这里插入图片描述

7.yumdownloader

dnf 安装服务后,看不到软件包
yumdownloader httpd下载服务安装包到所在目录
yumdownloader httpd --destdir=/mnt --resolve 指定目录

在这里插入图片描述

8. /etc/rc.d/rc.local 开机自启动文件(chmod +x /etc/rc.d/rc.local)

猜你喜欢

转载自blog.csdn.net/ninimino/article/details/109313346
今日推荐