适用于UBlinux和DEBlinux系统
DEB是Debian软件包格式的文件扩展名。DEB包在Linux操作系统中类似于Windows中的软件包(exe)。
RPM(Red Hat Package Manager),是基于Red hat的Linux Distribution的包管理系统,同时也指rpm包本身,RPM用于rpm包的管理(诸如安装、卸载、升级等),像Mandrake和SuSE这些基于RPM的发行版通常有自己特定的rpm包,如果混合安装可能不会正常工作,而对于第三方发行的rpm包一般都能在基于RPM的系统上正常安装。
Linux下的一种常见压缩包类型,分为两种:
1.解压缩后需要源码安装,#ntfs-3g_ntfsprogs-2017.3.23.tgz
2.绿色软件,解压缩后可可直接使用,#Firefox-latest-x86_64.tar.bz2
注意:在rhel8中只能使用绿色软件,源码编译软件和rpm软件
[dhcp-server] - [4.3.6-30]. [el8]. [x86_64]. [rpm] 1软件名称 2软件版本 3软件的授权协议版本 4软件架构 5软件类型后缀
rpm -ivh ##安装参数组合 -i install -v verbose -h hash -a ##所有 -f ##文件 -p ##软件包 -q ##查询 -l ##软件安装文件列表 -e ##卸载 -c ##配置文件 -d ##说明 --info ##软件信息 --force ##强制 --nodeps ##忽略依赖性(依赖性:安装/卸载a之前必须安装/卸载a依赖的所有软件) --script ##查询软件在安装或卸载过程中的运行脚本 -Kv ##检测软件md5校验码 -V ##检测已安装软件在系统中的文件被修改信
在系统中对软件进行管理,有些安装包在安装过程中需要解决依赖性才能进行安装,rpm命令是不能解决依赖关系的。如果需要软件在安装过程中自动解决依赖关系(自动搜索到需要的安装包进行安装,需要搭建系统软件仓库)。
(1)加载安装系统时使用的安装镜像
在真实主机中挂载安装镜像:
建立/iso用来存放安装镜像(可看作一个U盘),此安装镜像中有官方提供的大部分软件;
建立/westos目录,将镜像挂载到该目录下,利用/westos目录来读取镜像,此时/westos可作为本地软件仓库。
具体操作如下:
(2)编写软件仓库文件
软件仓库搭建完成后需要编写软件源指向的配置文件使得系统知晓。
/etc/yum.repos.d/ ##软件源指向文件配置目录 (默认为空目录,不空需要清空) /etc/yum.repos.d/xxxx.repo ##软件仓库指向文件 ## 在此目录中不能有无法访问的源指向,文件名后缀必须为.repo
编写完成后用curl命令检测,无报错时说明软件源可以进行访问。
(3)检测是否搭建成功
软件仓库指向文件编写完成后,先清空已经加载的仓库缓存信息,然后用dnf repolist 或 dnf list all 进行查看,或者安装某个软件(如gcc编辑器,gcc在安装时需要解决依赖性),具体操作如下:
(4)开机后自动挂载
上述挂载方法在系统关机后会被自动卸载,而重新启动后又不会自动挂载。
为了解决此问题,需要在系统开机自运行脚本(/etc/rc.d/rc.local)中添加挂载命令以实现安装镜像的开机自动挂载;同时需要添加执行权限(x)给 /etc/rc.d/rc.local
dnf repolist ##列出软件仓库信息 dnf clean all ##清除系统中已经加载的仓库缓存信息 dnf list all ##列出所有软件 dnf list available ##列出未安装的软件 dnf list installed ##列出已安装的软件 dnf install ##安装软件 dnf remove ##卸载软件 dnf reinstall ##重新安装软件 dnf search ##搜索软件 dnf whatprovides ##查找包含指定文件的软件 dnf history ##dnf执行历史 dnf history info ##dnf执行历史的详细信息 dnf group list ##列出软件组 dnf group list --installed ##列出已安装的软件组 dnf group list -available ##列出未安装的软件组 dnf group list --hidde ##列出隐藏的软件组 dnf group install ##安装软件组 dnf group info ##查看软件组信息
yumdownloader 下载软件包到本机指定位置 yumdownloader httpd 下载仓库中指定软件的安装包到当前目录 yumdownloader '软件名' --destdir=/mnt 下载仓库中指定软件的安装包至指定目录(/mnt) yumdownloader '软件名' --destdir=/mnt --resolve 下载仓库中指定软件安装包和软件依赖性至指定目录(/mnt)
我们在一台主机上面搭建好的软件仓库,在另一台主机上是无法访问的。在企业中,需要维护的系统数量庞大,当我们需要在每个系统安装软件管理软件时,可在每个系统中各自搭建软件仓库,但这样管理会浪费资源。因此,为了节省重复资源,需要把大家都需要使用的资源共享到互联网中,这样大家就可以利用网络访问资源。
共享方式http:// 超文本传输协议 提供此协议的软件 Apache 软件包名称 httpd 共享位置 /var/www/html 安装命令dnf install httpd -y
安装共享服务软件Apache的软件包httpd
安装完成后访问主机IP可看到Apache页面
systemctl stop firewalld 关闭火墙 systemctl disable firewalld systemctl enable --now httpd 直接开启软件并设置开机自启
关闭火墙开启httpd服务
mkdir /var/www/html/rehl8.2 umount /xxxxxx.iso mount /xxxxxxx.iso /var/www/html/westos_8 当镜像在系统中存在 vim /etc/rc.d/rc.local 在开机时自动挂 mount /xxxx.iso /var/www/html/westos_8 chmod 755 /etc/rc.d/rc.local
检测httpd服务启用后在此服务配置文件目录中新建一个目录rehl8.2,并将安装镜像挂载至此;
永久挂载:同搭建本地软件仓库一样,开机时自动挂载。
vim /etc/yum.repos.d/westos.repo
在软件仓库指向文件中修改软件源地址
对于共享主机,软件源寻址方式有 file:// 和 http://;对于远程主机,软件源寻址方式只有 http://
可以使用dnf命令管理第三方软件,并使第三方软件在网络中共享
1.建立共享目录,把所有的第三方软件存放到/var/www/html/software中
mkdir /var/www/html/software /var/www/html/software中只能存在rpm类型的文件,压缩包是不能使用dnf管理的
在软件源指向文件/etc/yum.repos.d/xxxx.repo中指定第三方共享源,此时仍无法安装Linuxqq,这是因为该第三方软件仓库与官方的AppStream、BaseOS不同,dnf会将官方软件仓库中所有软件包的元数据预加载到/var/cache/dnf这个仓库信息目录中,生成repodata数据目录(repod.xml文件),执行dnf命令时,dnf不会去真正搜索这个软件包,而是扫描repodata数据目录中的这些元数据。 而我们建立的第三方软件仓库是没有对应的repodata数据目录的,因此无法所搜到相应的软件包元信息,不能安装第三方软件。
2.采集第三方软件数据生成repodate目录
dnf install createrepo -y 安装采集工具 cd /var/www/html/software 进入到共享目录 createrepo . 对共享目录中进行扫描生成repodate数据目录
4.在测试主机中指定第三方共享源
vim /etc/yum.repos.d/westos.repo