Linux基础之系统软件管理
windows下软件安装,我们常常是找到安装包(.exe文件),然后双击鼠标安装;亦或是装个软件安装管家帮我们查找,安装,卸载软件。Linux下我们应当如何安装软件和管理我们的软件呢,本文以企业红帽8为例,讲解软件管理。
文章目录
一、linux软件包类型
1.DEB #UBLinux DEXLinux
2.RPM #Redhat centos fc
3.bz2 | gz | xz #1.需要源码安装需要编译
#2.绿色软件,直接可用
#ntfs-3g_ntfsprogs-2017.3.23.tgz #需要编译
#而以bz2、ge、xz为后缀的可以直接安装使用
二、软件包的名称结构
1.软件名称 2.软件版本 3.软件的授权协议版本 4.软件架构 5.软件类型后缀
三、rpm命令管理
Linux rpm 命令用于管理套件。
rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。
参数说明:
-a 查询所有已装软件。
-b <完成阶段><套件档>+或-t <完成阶段><套件档>+ 设置包装软件的完成阶段,并指定套件档的文件名称。
-c 只列出组态配置文件,本参数需配合"-l"参数使用。
-d 只列出文本文件,本参数需配合"-l"参数使用。
-e <套件档>或--erase<套件档> 删除指定的软件。
-f <文件>+ 查询拥有指定文件的套件。
-h 或--hash 套件安装时列出标记。
-i 显示套件的相关信息。
-i <套件档>或--install<套件档> 安装指定的软件包。
-l 显示套件的文件列表。
-p 查询对象跟软件包(不是软件名)
-q 使用询问模式,当遇到任何问题时,rpm指令会先询问用户。
-v 可视化显示指令执行过程。
-vv 详细显示指令执行过程,便于排错。
--allfiles 安装所有文件。
--allmatches 删除符合指定的套件所包含的文件。
--buildroot<根目录> 设置产生套件时,欲当作根目录的目录。
--force 强行置换套件或文件。
--help 在线帮助。
安装软件常用语法
rpm -ivh 软件名 #安装参数组合 -i install(安装) -v verbose(安装过程0) -h hash(采用hash加密)
rpm -ql 软件名 #查询组合 -q 查询 -l 列出该软件所有文件
rpm -qc 软件名 #查询组合 -q 查询 -c 列出该软件所有配置文件
rpm -e 软件名 #卸载软件
rpm --force #强行安装软件
四、本地软件仓库搭建
软件仓库的作用就是对软件进行管理,rpm命令是不能解决依赖关系的,如果需要软件在安装过程中自动解决依赖问题,需要我们系统安装软件仓库
搭建方法:
-
在系统(根目录下或其他目录)建立两个目录,目录名随意,一个用来存放与系统同版本的镜像文件,一个挂载该镜像;我之前创建过了,所以下图只是个演示。
-
将与本系统同版本的镜像拷贝到/root/isos下,然后挂载该镜像到/westos下并检查是否挂上。
如此多的软件包,怎能才能找到我想要的,或是查到这个目录里有没有呢,就需要用dnf命令去查,该命令在下面还会详细介绍。
dnf search 软件名
-
编辑软件仓库指向文件,在/etc/yum.repo.d/下创建一个xxx.repo文件,并把该目录下的其他.repo文件移走(/mnt),使用vim/vi编辑器编写该文件并保存,其中文件指向地址不要弄错!
-
查看是否成功,能加载就成功了,下面就可以用本地的软件库去查找、安装、卸载、管理软件了,怎么用请看接下来的dnf软件管理命令
五、dnf软件管理命令(yum升级)
相当于之前的yum命令,红帽8改了一些依赖关系,会更好用,红帽8用dnf。
-dnf
- repolist ##列出仓库信息
- repolist all ##列出仓库信息和状态
- 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 ##查看软件组命令
history与history info的区别:
clean all :
剩余的参数自己再敲敲。
六、网络仓库搭建
1. 需要完成第五中的本地仓库搭建并安装Apache HTTP 服务,或是已经安装Apache服务的系统
Apache安装方法如下:
启动Apache服务并检查状态
systemctl enable --now httpd #开机自启动并现在开启Apache服务
systemctl status httpd #查看状态
2. 新建共享目录,并将镜像挂载到该目录,若挂载不上,先卸载之前的挂载。
mkdir /var/www/html/xxx #建文件夹,xxx为名字随意。
umount /westos #卸载之前本地软件库挂载的镜像,不然会挂不上
mount /root/isos /var/www/html/xxx #挂载镜像
挂载之后关机会自动卸载,为了可以开机自动挂载,这里我们配置挂载文件 /etc/rc.d/rc.local
rc.local本质上是一个shell脚本文件,可以把启动时需要执行的命令写在里面,启动时将按顺序执行。
1)使用命令在rc.local中追加以下脚本。
echo mount /root/isos /var/www/html/xxx >> /etc/rc.d/rc.local
若不小心覆盖该文件,可以网上当一份,这里给贴下 /rc.local 源程序:
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
#
touch /var/lock/subsys/local
2)修改/etc/rc.d/rc.local的可执行权限。
chmod +x /etc/rc.d/rc.local
3)重启服务器。
3. 修改软件指向文件
使用ifconfig命令查看本机(虚拟机)的IP地址。
修改软件指向文件
vim /etc/yum.repos.d/westos.repo
4. IP地址访问软件仓库
打开虚拟机的浏览器,键入自己的地址:httpd://192.168.1.26/westos 。
第三方软件仓库搭建
当我需要和小伙伴共享我第三方下载的安装包时- - -坏笑,方法如下,主要参考我的小伙伴写的,要与大佬肩并肩,小伙伴博客 zhy1372431588
- 建立共享目录
/var/www/html/software 中只能存在rpm类型的文件,压缩包是不能使用dnf管理的
- 将第三方软件存放到/var/www/html/software下
- 采用第三方软件生成repodate目录
安装采集工具:createrepo dnf install -y createrepo
进入到共享目录:cd /var/www/html/software
通过createrepo进行扫描软件,然后生成repodate数据目录。
注意:如果不扫面,新添加的软件是不会显示的。在/sofrware目录下createrepo .
这里的repodate相当于是各个软件的索引文件。
指定第三方共享源,文件指定位置,/etc/yum.repos.d/haha.repo(haha可以自己起名)
- 通过浏览器访问第三方软件库。(虚拟机的浏览器)
注意:如果你的软件包是mv移动过去的,需要执行一步setenforce 0,不然在网页不显示你拥有的软件。
七、配置阿里云仓库
在阿里云开发者→镜像站,找一个镜像,复制最下面的下载网址。比如https://mirrors.aliyun.com/epel/8/Everything/x86_64/
然后添加仓库 vim /etc/yum.repos.d/westos.repo
需要开启httpd服务
这样就可以在阿里云镜像里下载你所需要的软件了,就是我们常说的换源,换阿里源,百度源,163源,网易源。。。
总结
主要学习了rpm dnf两个命令。
搭建本地仓库,网络仓库,第三方网络仓库以及配置阿里云仓库,最最最主要的就是修改添加指向文件 vim /etc/yum.repo.d/xxx.repo
。