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
指定目录