一、linux中软件包的类型
DEB | 适用于UBlinux |
---|---|
RPM | 适用于Redhat centos |
gz bz2 xz | (1)需要源码安装、编译 (2)绿色软件,即直接可以使用 |
- wps软件包安装时,有DEB和RPM形式
- gz bz2 xz压缩包 要么是源码编译,要么是绿色软件
- ntfs-3g是.tgz格式!需要源码编译!
- firefox,是.bz2格式,下载后直接使用!
- 安装包.rpm可使用rpm命令进行管理
解压.bz2软件命令:
tar jxf F,会生成一个目录,进入目录中,直接运行./firefox可直接可用;
解压.tgz软件包命令:
tar zxf ntfs,生成目录,但是没有可以直接运行的脚本,但是有configure文件,是一个源码编译的软件。按照readme阐述的安装条件进行安装;
注意:在rhel8中只能使用绿色软件,源码编译和rpm软件,但是UBlinux的不能使用!
二、软件包的名称结构
举例:
dhcp-server-4.3.6-30.el8.x86_64.rpm
- dhcp-server 软件名称
- 4.3.6-30 软件版本
- el8 软件授权协议版本(适合什么系统版本)
- x86_64 软件架构 (32位或者64位)
- rpm 软件类型后缀
三、rpm命令管理软件包
查看rpm命令用法:
(1)man rpm
(2)rpm --help
eg. rpm -ivh xxxxx.rpm
-ivh | 安装组合命令 |
---|---|
-a | 所有 |
-f | 文件 |
-p | 安装包 |
-q | 查询 |
-l | 列出安装软件的所有文件列表 |
-c | 仅仅列出配置文件 |
-e | 删除 |
-d | 说明 |
–info | 软件信息 |
–force | 强制安装 |
–nodeps | 忽略依赖性 |
–scripts | 查询运行脚本 |
-Kv | 检测软件md5校验码 |
-V | 检测已安装软件在系统中文件被修改信息 |
a–>b–>c–>a软件之间相互依赖型,需要强制安装上(–forcce)一个软件解决依赖性
(一)安装(依赖性&非依赖性)
rpm -ivh linuxqq_2.0.0-b2-1082_x86_64.rpm
rpm -ivh wps-office-11.1.0.9505-1.x86_64.rpm
忽略依赖性安装
rpm -ivh wps-office-11.1.0.9505-1.x86_64.rpm --nodeps
(二)查询安装了多少软件&某个软件有无安装
rpm -qa | wc -l
rpm -q linuxqq
(三)卸载
rpm -e linuxqq
(四)查询文件属于哪个安装包
rpm -qf /bin/date
(五)查询软件在系统中的安装位置
rpm -ql linuxqq
rpm -qlp linuxqq_2.0.0-b2-1082_x86_64.rpm
rpm -qcp linuxqq_2.0.0-b2-1082_x86_64.rpm
(六)列出dhcp的说明文档
rpm -qd dhcp-server
(七)列出dhcp配置文件
rpm -qc dhcp-server
rpm -q dhcp-server --info 查询软件信息信息
rpm -ivh linuxqq_2.0.0-b2-1082_x86_64.rpm --force 强制安装
查看软件运行脚本(运行时执行的动作)
rpm -qp FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm --scripts
rpm -qp FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm --scripts
rpm -Kv linuxqq_2.0.0-b2-1082_x86_64.rpm检测MD5码
rpm -V dhcp-server 检测哪个文件被篡改
四、本地软件仓库搭建
- 在系统中对软件进行管理,rpm命令不能解决依赖关系
- 手动解决依赖性灰常麻烦
- 把所有的软件都放在某一个环境中,类似软件商店,解决办法使用镜像搭建一个软件商店,解决依赖性
- 如果需要软件在安装过程中自动姐居然依赖关系,需要搭建系统软件仓库
- 光盘中有baseOS AppStream,两个目录中有官方软件提供的系统所有软件包
搭建方法:
1.在系统中加载镜像(镜像是在官网下载的)
2.软件
dnf repolist 列出为0
如果想仓库被系统识别,这个目录中不能有不能使用的软件源
2.1编写软件仓库文件
/etc/yum.repos.d/
在此目录中不能有无法访问的源指向
2.2软件仓库指向文件
/etc/yum.repos.d/westos.repo
AppStream 软件仓库名称
baseos基本; appstream 常用app;
name=随便写(描述)
baseurl=file:// http:// ftp://(地址)
baseurl作用:根据路径 自动去指定的路径去调用
gpgcheck=0(不检测gpgkey 跳过授权检测)
2.3实验效果
dnf repolist 列出了软件仓库中的数目
dnf install wps....
自动安装 自动解决依赖性
五、dnf软件管理命令
clean all | 清楚系统中已加载在的仓库缓存信息 |
---|---|
repolist | 列出仓库信息 |
list all | 列出所有软件 |
list available | 列出未安装软件 |
list installed | 列出已安装软件 |
install | 安装 |
remove | 卸载 |
reinstall | 重新安装 |
whatprovide | 搜索包含文件的软件包 |
history | dnf执行命令 |
history info | dnf执行命令详细信息 |
group list | 列出软件组 |
group list --installed | 列出已安装软件组 |
group list --available | 列出未安装软件组 |
group list --hidden | 列出隐藏软件组 |
group install | 安装软件组 |
group info | 查看软件组信息 |
实验过程:
(1)安装WPS
yum install wps-office-11.1.0.9505-1.x86_64.rpm -y
(2)重新安装dhcp-server
dnf reinstall dhcp-server -y
(3)卸载dhcp
yum remove dhcp-server.x86_64 -y
(4)显示dhcp所有安装包(图4.2)
yum search dhcp
(5)查看文件属于哪个安装包
dnf whatprovides /bin/date
(6)安装软件组,安装的软件包更多。
info 查看安装组的信息
dnf history info
dnf history info9
dnf group list
dnf group info “Development Tools”
dnf group install "Development Tools"
实验:如何通过网络访问http://镜像内容,来完成软件仓库的搭建?
实验环境:
node1:172.25.254.10
node2:172.25.254.20
-
问题一:在node1中已经搭建好软件仓库,能否被node2使用
-
答:node2是无法访问的!node1搭建的软件仓库是本地仓库,只能自己访问到。
-
问题二:在企业中,需要维护的系统数量比较庞大。当需要给每个系统安装软件管理软件时,逐个进行安装,显然会浪费大量资源(每个人都需要有镜像,镜像又很大)和精力。
-
解决: 如何去节省重复的资源呢?(比如说镜像)
把大家都会使用的资源共享到互联网,大家就可以利用网络访问资源,不需要在每一台主机中独立建立软件资源。
搭建方法
1.利用镜像搭建本子软件仓库(node1搭建完成)
2.安装共享软件
访问淘宝的时候,看到淘宝很多信息比如图片,在本机中是不存在的,在阿里巴巴公司服务器上。通过https://访问(超文本传输协议),访问到服务器上的超文本文件。
类似的,其他的主机也可以通过超文本传输协议访问到node1的共享资源软件。
提供此协议的软件:Apache
软件包名称:httpd.service
共享位置:/var/www/html
我在我的电脑上安装了Apache软件,就相当于服务器,可以对外提供资源。具体是别人怎么访问到我的?我又允许谁来访问我,接下来我们继续吧
3.启用共享软件Apache
(1)关闭火墙(或者设置火墙允许)
(2)设置火墙开机不启动
(3)设置httpd服务开机启动
(4)内核性加强火墙关掉(安全上下文),关闭有两种方式:
方式一:setenforce 0 -->disabled
方式二:vim /etc/sysconfig/selinux -->SELINUX=disabled,重启系统
4.建立共享目录
mkdir /var/www/html/develops
共享目录只有这一个位置,所以必须建立在这个目录中。
5.挂载镜像到共享目录之上
作用:使我们通过网络来访问目录资源,看到内容。
镜像系统里,使用光驱挂载,mount /xxxx.iso /var/www.html/develops
镜像不在系统,而是在光驱,使用光驱读取镜像,mount /dev/cdrom /var/www/html/develops
挂载成功后,我们可以看到挂载目录中的资源
6.直接访问资源
在远程主机中访问资源,并书写repo文件
在浏览器中172.25.254.20/develops,于是乎我们便可以通过网络访问到资源啦。就像是淘宝图片不在我的电脑,我也可以浏览看到信息。
可以利用这个地址来搭建资源
使用这种方式,同样可以列出资源
node2主机df查看到不是加载的光盘镜像,而是访问的node1中的镜像
node1安装共享软件 dnf install httpd
开机启动httpd
关闭火墙
本机访问到20主机(也即是自己的主机),但是想看到光盘的内容
六、第三方软件仓库的搭建方法
第三方软件:在镜像中没有的软件。