Linux软件安装
软件安装类型可分为源码包和RPM包
1、源码包
源码包——编译工具编译——计算机可识别的机器语言——安装
Linux上大部分软件都是开源软件,提供源码下载
源码包安装优点:
- 开放源代码,可以自行修改源代码。
- 可以自由选择安装所需功能。
- 软件是编译安装,更加稳定高效。
- 卸载方便,直接删除安装目录即可。
源码包安装缺点:
- 安装过程中过程较为复杂。
- 编译过程时间较长(与RPM包相比)。
源码包安装步骤:
-
官方网站下载源码包。
-
解压并进入源码包目录。
-
解压后进入解压生成的文件夹。
-
通常会有名为REDAME的文件。 此文件记录了:这个软件所能完成的功能,授权许可,安装需求,安装注意事项,安装方式等。
-
目录中会有一个名为configure的文件。
-
执行./configure,就会开始检测当前系统是否拥有安装软件所需的所有文件和工具。
-
useradd -r -s /sbin/nologin nginx
-
./comfigure --prefix=/usr/local/nginx #指定安装位置(默认也时此目录)--user=nginx
-
nginx需要安装gcc、pcre-devel、zlib-devel
-
检测成功后会生成makefile文件。
- 而有些软件没有提供configure 脚本,直接提供了makefile 文件,可以直接执行 make 编译步骤。
-
make:一般在输入make命令时,make命令默认会查找当前目录下的Makefile文件。 如果用其他文件作为Makefile文件那么需要在make之后加-f子选项来指定Makefile 文件。
- 由于需要相应的编译软件才能将源代码转换为机器识别的语言,所以在执行 configure 的时候如果没有编译工具就会有error报错。
- echo $? 检验上条命令运行是否成功(0表示成功)(1-255表示失败)
-
make install:进行安装。
-
源码包启动方式和rpm安装的服务启动方式不同
绝对路径执行:/usr/local/nginx/sbin/nginx
停止服务:/usr/local/nginx/sbin/nginx -s stop
-
2、RPM安装
RedHat Package Manager,红帽软件包工具
RPM可升级,强大的查询功能,支持安全验证的通用型Linux软件包管理工具
RPM包优点:
- 安装简单方便。
- 安装时不用指定安装位置。
- 方便升级、卸载。
RPM包缺点:
- 大多数RPM安装需要解决依赖关系
RPM包命名规则:
- httpd-2.2.15-53.el6.centos.x86_64.rpm
- httpd 软件包名
- 2.2.15 软件版本
- 53 软件发布次数
- el6.centos 适合的Linux平台
- x86_64 适合的硬件平台
- rpm RPM 包扩展名
RPM命令
1、安装命令
格式:rpm -ivh 软件包(全名)
-i install 的意思,就是安装软件。也可以使用–install
-v 显示安装过程中的详细信息。
-h 以#号显示安装的进度。
2、卸载命令
格式:rpm -e 软件名(不用全名)
3、升级命令
格式:rpm-Uvh 软件包全名
- -U 升级安装,若没安装则直接安装,若安装有旧版本,则升级安装。
- -F 升级安装,若没安装,则不安装,必须有旧版本才进行
4、查询已安装的软件信息
- rpm-q 包名 查询包是否安装 (知道准确包名)
- rpm-qa 查看系统中已安装的所有RPM软件包列表 | grep 可模糊查询
- rpm-qi 包名 查看指定软件所安装的信息。
- rpm-ql 包名 查看指定软件所安装目录,文件列表
5、查询未安装的RPM包文件
- rpm-qpl 包全名 #查询指定未安装软件所安装的目录、文件列表
- rpm-qpR 包全名 #查询指定未安装软件的依赖文件
6、查询文件或者目录属于哪个RPM软件
rpm-qf 文件或目录名
3、DNF安装
需要一个DNF源(存放RPM包的文件夹)
配置文件 /etc/yum.repos.d/目录下,可自定义名称,但必须.repo结尾
[] #dnf源名称,自定义
name: #dnf源描述,自定义
#指定镜像列表/dnf源URL地址
mirrorlist/baseurl=
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
enabled=1 #是否启用
网络源(下载,安装,默认删除安装包),本地源,局域网源
dnf安装:
- 解决rpm包之间的依赖关系
- 由yum命令发展得来
- 网络安装来源(默认)(优先级:上次使用的来源优先)
- 本地安装来源
网络源配置:
- 默认网络源(官方网站)
- 国内源(阿里源、163源、清华源(rocky暂不支持))–路径下能找到包和依赖关系
- centos7:wget下载文件默认保存到 /etc/yum.repos.d/目录覆盖源文件,由官方地址替换到国内源地址
- 扩展网络源(epel扩展源最常见-使用官方源安装)
- dnf -y install epel-release安装拓展源,在/etc/yum.repos.d/安装epel.repo等配置文件
- 局域网dnf源
- 服务器端:通过httpd将rpm包和依赖关系共享给客户端
- 客户端:dnf安装时,使用服务器端中的rpm包和依赖关系
将dnf源下载rpm包保存到本地:
vim /etc/dnf/dnf.conf
cachedir=/var/cache/dnf/rpm/ #指定下载位置,在下载位置中会出现appstream、baseos等。
keepcache=1 #是否开启保存,1为保存到本地。0为不保存。
[root@localhost yum.repos.d]# ls /var/cache/dnf/rpm
appstream-25485261a76941d3 epel-cisco-openh264-filenames.solvx
appstream-filenames.solvx epel-cisco-openh264.solv
appstream.solv epel-filenames.solvx
appstream-updateinfo.solvx epel-presto.solvx
baseos-522ed8e2b2f761ff epel.solv
baseos-filenames.solvx epel-updateinfo.solvx
baseos.solv expired_repos.json
baseos-updateinfo.solvx extras-90dfbd6ba528f77b
epel-646ae5c8e4626178 extras-filenames.solvx
epel-cisco-openh264-211e829cd3d317f4 extras.solv
根据安装仓库,去对应目录找安装包和依赖关系,若要多次使用可将其传出保存(winscp)
本地源配置:
- 到/etc/yum.repos.d/目录中将原有网络源改为失效状态。
- 手动编辑本地源配置文件。(必须以.repo结尾)
- 查看光盘挂载。
dnf管理命令
- dnf 安装 (-y yes)
- dnf install 软件名
- dnf groupinstall 软件组名
- dnf 卸载
- dnf remove 软件名
- dnf groupremove 软件组名
- 卸载时要注意会卸载依赖(若a,b都依赖c,卸载a时会同时卸载c,b会无法正常运行)
- dnf 升级
- dnf update(dnf -y update kernel)
- dnf list (包名) 查询所有可以安装的软件包
- dnf info 查询指定软件包的信息
- dnf provides 查询文件在什么包中
- dnf search 以关键字查询
- dnf grouplist 查询所有可以安装的软件组
- dnf groupinfo 软件组名 列出软件组中包含的软件
注:频繁切换dnf安装源可能会出现安装错误的现象,需要执行dnf clean all来清空yum缓存信息
dnf makecache 建立新的缓存数据
注:系统中只允许有一个dnf进程正在运行
centos7自动检测更新yum,若没有网络或网络不稳定,检测过程很长,yum进程被占用(进程名:packagekit)
kill + 进程号(PID)结束进程
tab补全服务名称
dnf -y install bash-completion
4、centos7差异
- yum源:
- /etc/yum.repos.d/CentOS.Base.repo起作用(但其中的源网址已经不再提供支持)
- 提供本地源模板(CentOS-Media.repo),mount挂载光盘到/media/,Packages和repodata全在此目录下(不用 AppStream和BaseOS)
- 阿里yum源,下载地址源文件wget
- 没有dnf,yum平替
- 不同的包,对应的依赖关系不同,要一一对应