linux系统中的软件管理
Linux中软件包的类型
DEB #UBlinux DEBlinux
RPM #redhat centOS fadora
bz2|gz|xz #1.需要源码安装需要编译
#2.绿色软件,直接可用
#ntfs-3g_ntfsprogs-2017.3.23.tgz 需要编译 "configure"
#Firefox-latest-x86_64.tar.bz2 绿色
"注意在rhel8中只能使用绿色软件,源码编译软件和rpm软件"
软件包的名称结构
[dhcp-server]-[4.3.6-30].[el8].[x86_64].[rpm]
1 2 3 4 5
1.软件名称
2.软件版本
3.软件的授权协议版本
4.软件架构
5.软件类型后缀
rpm命令管理软件包
rpm -ivh ##安装参数组合 -i install -v verbose -h hash
-a ##所有
-f ##文件
-p ##软件包
-q ##查询
-l ##软件安装文件列表
-e ##卸载
-c ##配置文件
-d ##说明
--info ##软件信息
--force ##强制
--nodeps ##忽略依赖性
--script ##查询软件在安装或卸载过程中的运行脚本
-Kv ##检测软件md5校验码
-V ##检测已安装软件在系统中的文件被修改信息
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 ##查看软件组信息
-
下载安装包
yumdownloader #下载软件包到本机指定位置 yumdownloader httpd #下载仓库中指定软件的安装包到当前目录,如此下载只是下载软件,没有下载依赖性 yumdownloader --destdir=/mnt #下载仓库中指定软件的安装包到指定/mnt目录 yumdownloader httpd --destdir=/mnt --resolve #下载仓库中指定软件安装包和软件依赖性到/mnt目录
本地软件仓库的搭建
-
系统软件仓库的作用
在系统中对软件进行管理,rpm命令是不能解决依赖关系的,如果需要软件在安装过程中自动解决依赖关系,需要大家系统软件仓库 -
搭建方法
top1:
安装镜像
挂载镜像mount /xxxx/rhel8.2-xxxxxxxx.iso /westos ##/westos是镜像挂载点
top2:编写软件仓库文件
/etc/yum.repos.d/ ##软件源指向文件配置目录,在此目录中不能有无法访问的源指向 vim /etc/yum.repos.d/xxxx.repo ##软件仓库指向文件 [AppStream] ##仓库名称 name=westos AppStream ##描述 baseurl=file:///westos/AppStream ##镜像地址 gpgcheck=0 ##不检测gpgkey (跳过授权检测) enabled=1 [BaseOS] name=westos BaseOS baseurl=file:///westos/BaseOS/ gpgcheck=0 enabled=1
top3:测试
dnf install gcc -y
网络软件仓库的搭建
在企业中,我们维护的系统数量庞大,当我们需要在每个系统安装软件管理软件时,可以在每个系统中各自搭建软件仓库,但是这样管理软件会浪费大量的资源。
如何节省这部分重复的资源?
需要把大家都要使用的资源共享到互联网中,这样大家就可以利用网络访问资源,不需要在每一台,主机中独立建立软件资源。
-
搭建方法
top1:利用景象搭建本地软件仓库
top2:安装共享软件共享方式 http:// 超文本传输协议 提供此协议的软件 Apache 软件包名称 httpd 共享位置 /var/www/html 安装命令 dnf install httpd -y
top3:启用共享软件Apache
systemctl stop firewalld systemctl disable firewalld systemctl enable --now httpd
top4:建立共享目录
mkdir /var/www/html/westos
top4:挂在景象到共享目录
umount /xxxxxx.iso mount /xxxxxxx.iso /var/www/html/westos vim /etc/rc.d/rc.local ##在开机的时候自动挂载 mount /xxxx.iso /var/www/html/westos chmod 755 /etc/rc.d/rc.local ##给权限
top5:在远程主机westos_linux中访问资源并书写repo文件
vim /etc/yum.repos.d/westos.repo [AppStream] name=AppStream baseurl=http://192.168.43.100/westos/AppStream/ gpgcheck=0 [BaseOS] name=BaseOS baseurl=http://192.168.43.100/westos/BaseOS/ gpgcheck=0
第三方软件仓库的搭建方法
可以使用dnf命令管理第三方软件,并使第三方软件在网络中共享。
第三方软件仓库可以下载官方没有授权的软件,只能管理rpm类型的软件。没有第三方软件仓库的时候,使用dnf list的时候,只能列出官方授权的软件。
repodate这个目录存在说明它是一个软件仓库
-
步骤
top1:建立共享目录mkdir /var/www/html/software
top2:把所有的第三方软件存放到/var/www/html/software中(老师所给的mnt包)
/var/www/html/software中只能存在rpm类型的文件,压缩包是不能使用dnf管理的
top3:采集第三方软件数据生成repodate目录
dnf install createrepo -y ##安装采集工具 cd /var/www/html/software ##进入到共享目录 createrepo -v /var/www/html/software ##可以对共享目录中进行扫描生成repodate数据目录 在本机使用http://192.168.43.100/software进行检测,看共享是否建立成功
4.在测试主机中指定第三方共享源
vim /etc/yum.repos.d/westos.repo [software] name=software baseurl=http://192.168.43.100/software(这个网址是在共享主机的浏览器中可以访问到的) gpgcheck=0 dnf list linuxqq ##此时可以列出 dnf install linuxqq ##此时就可以安装第三方软件
##红色文件的作用是把我们系统中在packages目录中所有软件的信息,都用数据的形式采集下来,安装的时候就读取这个。这就是镜像。