前言
我们在windows中安装软件只能使用安装包,安装包通常有以下两种情况:
- 一个安装文件(.exe或.msi),双击运行安装即可
- 绿色软件、免安装软件,解压后可以直接运行。
在linux系统中,安装软件比windows下复杂,一般常见的方法如下:
- 源码安装
- rpm包安装
- yum安装软件包
- 为本机提供软件仓库
本文介绍了linux下使用rpm包安装及通过软件仓库进行安装的方法。
一、linux下软件包的类型
1.rpm包
是Redhat Linux提供的一种包封装格式,包的管理工具YUM,适用于Redhat/CentOS/fc/SUSE等平台。
例:software-1.2.3-1.i386.rpm
2.tar包
是使用UNIX系统的打包工具tar打包的。使用tar.gz(bz或bz2)打包的应用软件,这种软件包里面都是源程序,没有编译过,需要编译后才能安装。
例:software-1.2.3-1.tar.gz
3.dpkg包
是Debain linux提供的一种包封装格式,包的管理工具是apt-get,适用于UBlinux/DEBlinux/Ubuntu/B2D等平台。
例:software-1.2.3-1.deb
4.绿色软件包
不需要安装直接使用
注意:在rhel8中只能使用绿色软件,源码编译软件和rpm软件
二、软件包的名称结构及软件包里的内容
1.软件包名称结构
[dhcp-server]-[4.3.6-30].[el8].[x86_64].[rpm]
1 2 3 4 5
1.软件名称
2.软件版本号
3.软件的授权协议版本
4.软件架构
5.软件类型的后缀
2.了解软件包里的内容
一个linux应用程序的软件包中能包含两种不同的内容:
- 可执行文件
是解压安装包后就能直接运行的。在视窗系统中所有的软件包都是这种类型的,安装完这个程序后,你就能使用,但是看不到源程序。并且下载时注意该软件是否是你所使用的平台,否则将无法正常安装。
- 源程序
是解压安装包后,还需要使用编译器将其编译成二进制可执行文件。在视窗系统中几乎是没有的,因为视窗系统的思想是不开放源程序的。
通常tar打包的,都是源程式;而使用rpm、bin、dpkg打包的则通常是可执行文件。
三、rpm命令管理软件包
rpm软件管理程序,是以一种数据库记录的方式来将你所需要的软件安装到你的linux系统的一套软件管理机制。
1.rpm的优点
- RPM内包含已经编译过的的程序与配置文件等数据,用户不需要重新编译
- RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装
- RPM文件本身提供软件版本信息、依赖属性检查、软件用途说明、软件所含文件信息,便于了解软件
- RPM管理的方式使用数据库记录RPM文件相关参数,便于升级、删除、查询与验证
2.rpm默认的安装路径
- /etc #一些配置文件放置的目录 例 /etc/crontab
- /usr/bin #一些可执行文件
- /usr/lib #一些程序使用的动态函数库
- /usr/share/doc #一些基本软件使用手册与说明文件
- /usr/share/man #一些man page 文件
3.rpm安装(install)
rpm -ivh package_name 选项
- -i : install 安装程序
- -v :verbose 查看更详细的安装信息
- -h :hash 显示安装进度
选项:
- –force 强制安装软件 (使用场景:直接覆盖已安装文件,重复安装时,谨慎使用!)
- –nodeps 忽略依赖性,安装软件 (使用场景:当软件发生属性依赖问题而无法安装,但执意安装时,可能造成软件无法正常使用。)
4.rpm查询(query)
rpm
- -q # 仅查询,后面接的软件名称是否有安装
- -qa # 列出已安装在本机Linux系统上所有软件名称
- -qi # 列出该软件的详细信息(information)
- –info # 显示软件详细信息
- -ql # 列出该软件所有文件与目录所在完整文件名(list)
- -qc # 列出该软件所有配置文件 (即 找出在 /etc/下面的文件名)
- -qd # 列出该软件所有说明文件 (即 找出与man有关的文件)
- -qR # 列出与该软件所有依赖软件所含有的文件 (Required 依赖)
- -qf # 有后面接的文件名,找出该文件属于哪一个已安装的软件
- -qp # 未安装的某个文件名称 —— 查看RPM文件
- –script # 查询软件在安装或卸载过程中需要执行的脚本文件
5.rpm验证(Verify)
rpm
- -V # 后面跟软件名,若该软件所含的文件被修改过才会显示修改信息
- -Kv # 检测软件md5校验码
6.RPM属性依赖的解决方式:YUM在线升级
尽管RPM能帮助查询软件的依赖关系,但是还是需要运维人员自己安装解决依赖问题,大型软件依赖非常多,安装起来是非常麻烦的。为了降低软件安装的难度和复杂度,设计了YUM软件仓库。
YUM:是一个在RedHat、Centos和Fedora中的shell前端软件包管理器。可以认为YUM仓库用于管理RPM软件包,仓库中的包可以是红帽官方发布的,也可以是自己编写的。YUM软件仓库可以根据用户需求分许所需软件包以及相关的依赖关系,并自动从服务器下载软件包并安装到系统中。
YUM机制:rpm文件内部会记录依赖性数据,将这些依赖属性的软件先建立一份清单列表,在有安装需求的时候,先到这个列表去找,同时与系统内已安装的软件比较,再将没有安装的依赖软件,一次性安装——为了重复利用既有软件的功能。
四、本地软件仓库的搭建
软件源:软件源是指一个由可以获得软件的地址组成的集合,这个地址可以是网站、光盘、或者是硬盘上的一个目录。软件源上有“软件仓库”,软件仓库中存储各种各样的软件,当你需要用到一个软件的时候,就可以通过工具下载并安装仓库中的软件。
1.搭建本地软件仓库的作用
在系统中对软件进行管理,rpm命令是不能解决依赖关系的,如果需要软件载安装过程中自动解决依赖关系,需要搭建系统软件仓库。
2.搭建本地软件仓库的步骤
- 在系统中加载安装系统时使用的系统镜像文件
- 创建一个目录
- 将镜像文件挂载到所建目录下
- 编写软件仓库repo文件
- /etc/yum.repos.d/ 软件源指向文件配置目录
- vim /etc/yum.repos.d/xxxx.repo##软件仓库指向文件
3.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 | 查看软件组信息 |
五、网络软件仓库的搭建
1.搭建网络仓库的作用
在企业中,我们维护的系统数量庞大。如果每个系统中都各自搭建本地软件仓库,那样会浪费大量的资源。为了提高资源的利用率,我们可以将本地的软件仓库共享到互联网中,这样每个系统都可以利用网络访问到该软件仓库中的资源了。
2.搭建网络仓库的步骤
- 利用镜像搭载本地软件仓库
- 安装共享软件
共享方式http:// 超文本传输协议
提供此协议的软件 Apache
软件包名称 httpd
共享位置 /var/www/html
安装命令 dnf install httpd -y
- 启动共享软件Apache
systemctl stop firewalld 关闭火墙
systemctl disable firewalld
systemctl enable --now httpd 设置httpd开机自启动
- 建立共享文件目录
mkdir /var/www/html/xxx
-
挂载镜像到共享目录中
注意:先卸载当前的挂载,再重新挂载到共享文件目录中 -
重新编辑软件仓库repo文件
3.网络源epel
EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。
我们可以通过阿里云提供的epel,为本机安装一个阿里云的epel源。
步骤:
- 进入阿里云官网---->选择开发者工具------>镜像站----->选择epel---->拉至网页底部,在相关连接那点击下载地址----->根据我们系统的版本选择对应选择,复制地址https://mirrors.aliyun.com/epel/8/Everything/x86_64/
- 编辑repo文件
四、第三方软件仓库的搭建
可以使用dnf命令管理第三方软件,并使第三方软件在网络中共享。
- 建立目录
mkdir /software
- 把所有的第三方软件存放在新建的目录下
注意:该目录中只能存放rpm类型的文件,压缩包是不能使用dnf管理的
- 采集第三方软件数据生成repodate目录
dnf install createrepo -y 安装采集工具
cd /software 进入到目录
createrepo .对目录中进行扫描生成repodate数据目录
createrepo -v 指定目录
- 编写repo文件
总结
本章学习了如何在linux系统下下载安装软件。
其中安装包的下载有两种途径:
- 直接再网上下载.rpm的安装包
- 通过使用linux中的一个下载文件的工具wget+URL进行下载。
方法一:可以在网上下载软件.rpm安装包,再使用rpm包的管理命令对软件包进行安装。
例:下载liunxqq
rpm -ivh Linuxqq_2.0.0-b2-1084_x86_64.rpm
方法二:使用linux中的一个下载文件的工具wget。
wget URL
URL:因特网的万维网服务程序上用于指定信息位置的表示方式。
例:下载wps-office
此外,我们可以通过创建软件仓库的方式,直接从储存各式各样软件的软件仓库下载软件。本文介绍了如何构建本地软件仓库、构建网络软件仓库及使用阿里云的镜像源、构建第三方软件仓库。