软件安装管理
五、软件安装管理
软件管理
源码安装
源码安装就是将程序的源代码打包成tar.gz格式的文件,通常这些程序都是使用C/C++语言来编写的。
优点
- 可移植性好,与安装的软件的工作环境依赖性不大。
- 由于有编译过程,其代码的运行效率较高。
- 安装功能可以定制,这种方式是大厂推荐安装方式
- 卸载方便,只需要删除对应的安装目录即可
缺点
- 安装过程较为复杂/麻烦
安装过程
-
下载需要安装的源码包
-
分析安装软件的环境
-
编译软件
-
安装软件
安装示例
1、以安装Apache源码包为例,来演示如何通过源码安装软件
- 配置本地仓库
# 切换到仓库目录
[root@redhat12 yum.repos.d]# pwd
/etc/yum.repos.d# 创建一个仓库,注意:仓库文件的后缀必须是.repo
[root@redhat12 yum.repos.d]# vim base.repo# 这个文件内容如下:
[root@redhat12 yum.repos.d]# cat base.repo
[baseOS] # 仓库标识,需要唯一
name=BaseOS # 仓库名称,需要唯一
baseurl=/mnt/BaseOS # 仓库的位置,只需要在Packages目录即可
gpgcheck=0 # 是否需要效验软件包,为0则不需要,为1就需要,如果为1,则需要提供gpgkey的配置信息
[appStream]
name=AppStream
baseurl=/mnt/AppStream
gpgcheck=0# 挂载目录
[root@redhat12 ~]# mount /dev/sr0 /mnt
- 准备源码安装环境
[root@redhat12 ~]# yum install gcc gcc-c++ -y
- 下载Apache源码安装文件
[root@redhat12 ~]# wget https://dlcdn.apache.org/httpd/httpd-2.4.65.tar.gz
- 解压Apache源码文件
# 解压文件
[root@redhat12 ~]# ls
httpd-2.4.65.tar.gz nginx-1.28.0.tar.gz
[root@redhat12 ~]# tar -xzf httpd-2.4.65.tar.gz
[root@redhat12 ~]# ls
httpd-2.4.65 httpd-2.4.65.tar.gz nginx-1.28.0.tar.gz# 切换目录
[root@redhat12 ~]# cd httpd-2.4.65
[root@redhat12 httpd-2.4.65]# ls
ABOUT_APACHE ap.d CHANGES configure.in httpd.mak LAYOUT Makefile.in os ROADMAP VERSIONING
acinclude.m4 build changes-entries docs httpd.spec libhttpd.dep Makefile.win README server
Apache-apr2.dsw BuildAll.dsp CMakeLists.txt emacs-style include libhttpd.dsp modules README.CHANGES srclib
Apache.dsw BuildBin.dsp config.layout httpd.dep INSTALL libhttpd.mak NOTICE README.cmake support
apache_probes.d buildconf configure httpd.dsp InstallBin.dsp LICENSE NWGNUmakefile README.platforms test
- 配置软件
[root@redhat12 httpd-2.4.65]# ./configure
执行以上命令时会报以下错误:
[root@redhat12 httpd-2.4.65]# ./configure
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... no
configure: error: APR not found. Please read the documentation.
以上错误,显示系统需要安装APR相关软件,执行如下命令进行安装
[root@redhat12 httpd-2.4.65]# yum -y install apr*
[root@redhat12 httpd-2.4.65]# yum -y install pcre*
安装完成后,再次执行配置
[root@redhat12 httpd-2.4.65]# ./configure
......
config.status: creating docs/conf/extra/proxy-html.conf
config.status: creating include/ap_config_layout.h
config.status: creating support/apxs
config.status: creating support/apachectl
config.status: creating support/dbmmanage
config.status: creating support/envvars-std
config.status: creating support/log_server_status
config.status: creating support/logresolve.pl
config.status: creating support/phf_abuse_log.cgi
config.status: creating support/split-logfile
config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
configure: summary of build options:Server Version: 2.4.65Install prefix: /usr/local/apache2C compiler: gccCFLAGS:CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCELDFLAGS:LIBS:C preprocessor: gcc -E
- 编译软甲
# 当直接进行make编译时,可能会出现以下报错
[root@redhat12 httpd-2.4.65]# make
.....
gcc: fatal error: cannot read spec file '/usr/lib/rpm/redhat/redhat-hardened-ld': No such file or directory
compilation terminated.
make[4]: *** [/root/httpd-2.4.65/modules/aaa/modules.mk:2: mod_authn_file.la] Error 1
make[4]: Leaving directory '/root/httpd-2.4.65/modules/aaa'
make[3]: *** [/root/httpd-2.4.65/build/rules.mk:117: shared-build-recursive] Error 1
make[3]: Leaving directory '/root/httpd-2.4.65/modules/aaa'
make[2]: *** [/root/httpd-2.4.65/build/rules.mk:117: shared-build-recursive] Error 1
make[2]: Leaving directory '/root/httpd-2.4.65/modules'
make[1]: *** [/root/httpd-2.4.65/build/rules.mk:117: shared-build-recursive] Error 1
make[1]: Leaving directory '/root/httpd-2.4.65'
make: *** [/root/httpd-2.4.65/build/rules.mk:75: all-recursive] Error 1
以下是解决方法:
# 1. 安装 redhat-rpm-config
[root@redhat12 httpd-2.4.65]# sudo dnf install redhat-rpm-config
Updating Subscription Management repositories.
Unable to read consumer identity# 2. 检查文件路径
[root@redhat12 httpd-2.4.65]# sudo yum reinstall gcc
Updating Subscription Management repositories.
Unable to read consumer identity、# 3. 更新系统
[root@redhat12 httpd-2.4.65]# sudo dnf update
Updating Subscription Management repositories.
Unable to read consumer identity
然后再重新编译
[root@redhat12 httpd-2.4.65]# make
Making all in srclib
make[1]: Entering directory '/root/httpd-2.4.65/srclib'
make[1]: Leaving directory '/root/httpd-2.4.65/srclib'
Making all in os
make[1]: Entering directory '/root/httpd-2.4.65/os'
......
Installing icons
mkdir /usr/local/apache2/icons
mkdir /usr/local/apache2/logs
Installing CGIs
mkdir /usr/local/apache2/cgi-bin
Installing header files
mkdir /usr/local/apache2/include
Installing build system files
mkdir /usr/local/apache2/build
Installing man pages and online manual
mkdir /usr/local/apache2/man
mkdir /usr/local/apache2/man/man1
mkdir /usr/local/apache2/man/man8
mkdir /usr/local/apache2/manual
make[1]: Leaving directory '/root/httpd-2.4.65'
- 安装成功
[root@redhat12 httpd-2.4.65]# make install# 进入对应的目录
[root@redhat12 httpd-2.4.65]# cd /usr/local/apache2/# 查看安装apache版本
[root@redhat12 include]# httpd -v
Server version: Apache/2.4.57 (Red Hat Enterprise Linux)
Server built: Jul 20 2023 00:00:00
源码安装总结:
1、下载源码文件并解压,然后进入解压目录
2、执行解压目录下的./configure文件来对软件进行配置
3、执行make命令来编译软件
4、执行make install命令来安装软件
RPM安装
RPM是红帽包管理的缩写
命令格式
rpm -i , --install 安装软件
rpm -e , --erase 卸载软件
rpm -U , --upgrade 更新软件
rpm -q , --query 查询软件
rpm --nodeps 不验证软件包的依赖关系
rpm --force 安装软件提示已安装则重新覆盖安装
rpm -v , --verbose 输出安装提示信息
安装示例
案例1:安装nginx
# 下载安装文件rpm
[root@redhat12 ~]# wget https://nginx.org/packages/rhel/9/x86_64/RPMS/nginx-1.28.0-1.el9.ngx.x86_64.rpm
--2025-10-11 00:54:10-- https://nginx.org/packages/rhel/9/x86_64/RPMS/nginx-1.28.0-1.el9.ngx.x86_64.rpm
Resolving nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:5c0:2601::6, ...
Connecting to nginx.org (nginx.org)|52.58.199.22|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1042041 (1018K) [application/x-redhat-package-manager]
Saving to: ‘nginx-1.28.0-1.el9.ngx.x86_64.rpm’nginx-1.28.0-1.el9.ngx.x86_64.rpm 100%[====================================================================>] 1018K 232KB/s in 4.4s2025-10-11 00:54:16 (232 KB/s) - ‘nginx-1.28.0-1.el9.ngx.x86_64.rpm’ saved [1042041/1042041]# 上传rpm成功
[root@redhat12 ~]# ls
httpd-2.4.65 httpd-2.4.65.tar.gz nginx-1.28.0-1.el9.ngx.x86_64.rpm nginx-1.28.0.tar.gz# 安装rpm软件
[root@redhat12 ~]# rpm -ivh nginx-1.28.0-1.el9.ngx.x86_64.rpm
warning: nginx-1.28.0-1.el9.ngx.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 7bd9bf62: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...1:nginx-2:1.28.0-1.el9.ngx ################################# [100%]# 启动nginx
[root@redhat12 ~]# systemctl start nginx# 查看是否启动成功
[root@redhat12 ~]# systemctl status nginx
● nginx.service - nginx - high performance web serverLoaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; preset: disabled)Active: active (running) since Sat 2025-10-11 00:58:38 CST; 5s agoDocs: http://nginx.org/en/docs/Process: 24750 ExecStart=/usr/sbin/nginx -c ${conffile} (code=exited, status=0/SUCCESS)Main PID: 24751 (nginx)Tasks: 5 (limit: 10821)Memory: 5.1MCPU: 16msCGroup: /system.slice/nginx.service├─24751 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"├─24752 "nginx: worker process"├─24753 "nginx: worker process"├─24754 "nginx: worker process"└─24755 "nginx: worker process"Oct 11 00:58:38 redhat12 systemd[1]: Starting nginx - high performance web server...
Oct 11 00:58:38 redhat12 systemd[1]: Started nginx - high performance web server.
在浏览器中显示以下内容,表示启动成功
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.Thank you for using nginx.
注意:使用rpm安装软件时,需要用户去维护软件之间的依赖
案例2:下载QQ
# 下载网络文件qq
[root@redhat12 ~]# wget https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.19_250904_x86_64_01.rpm
--2025-10-11 01:06:50-- https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.19_250904_x86_64_01.rpm
Resolving dldir1v6.qq.com (dldir1v6.qq.com)... 112.47.55.21, 2409:8c3c:1c00:2a0:40::3, 2409:8c20:b281:6:60::4, ...
Connecting to dldir1v6.qq.com (dldir1v6.qq.com)|112.47.55.21|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 151188544 (144M) [application/octet-stream]
Saving to: ‘QQ_3.2.19_250904_x86_64_01.rpm’QQ_3.2.19_250904_x86_64_01.rpm 100%[====================================================================>] 144.18M 5.45MB/s in 29s2025-10-11 01:07:20 (4.96 MB/s) - ‘QQ_3.2.19_250904_x86_64_01.rpm’ saved [151188544/151188544]# 安装软件,依赖失败
[root@redhat12 ~]# rpm -ivh QQ_3.2.19_250904_x86_64_01.rpm
error: Failed dependencies:at-spi2-core is needed by linuxqq-3.2.19_39038-1.x86_64gtk3 is needed by linuxqq-3.2.19_39038-1.x86_64libXScrnSaver is needed by linuxqq-3.2.19_39038-1.x86_64libXtst is needed by linuxqq-3.2.19_39038-1.x86_64libnotify is needed by linuxqq-3.2.19_39038-1.x86_64nss is needed by linuxqq-3.2.19_39038-1.x86_64xdg-utils is needed by linuxqq-3.2.19_39038-1.x86_64# 查找qq安装时所需要的文件
[root@redhat12 ~]# find /mnt -name libXScrnSaver*
/mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.i686.rpm
/mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.x86_64.rpm
/mnt/AppStream/Packages/libXScrnSaver-devel-1.2.3-10.el9.i686.rpm
/mnt/AppStream/Packages/libXScrnSaver-devel-1.2.3-10.el9.x86_64.rpm# 安装依赖的文件,使用-force --nodeps的原因是:因为各个软件之间总会存在一些依赖关系。
[root@redhat12 ~]# find /mnt -name libXScrnSaver*
/mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.i686.rpm
/mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.x86_64.rpm
/mnt/AppStream/Packages/libXScrnSaver-devel-1.2.3-10.el9.i686.rpm
/mnt/AppStream/Packages/libXScrnSaver-devel-1.2.3-10.el9.x86_64.rpm
[root@redhat12 ~]# rpm -ivh /mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.i686.rpm
warning: /mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:libX11.so.6 is needed by libXScrnSaver-1.2.3-10.el9.i686libXext.so.6 is needed by libXScrnSaver-1.2.3-10.el9.i686libc.so.6 is needed by libXScrnSaver-1.2.3-10.el9.i686libc.so.6(GLIBC_2.0) is needed by libXScrnSaver-1.2.3-10.el9.i686libc.so.6(GLIBC_2.1.3) is needed by libXScrnSaver-1.2.3-10.el9.i686libc.so.6(GLIBC_2.4) is needed by libXScrnSaver-1.2.3-10.el9.i686
[root@redhat12 ~]#
[root@redhat12 ~]# rpm -ivh /mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.x86_64.rpm -force --nodeps
rpm: -force: unknown option
[root@redhat12 ~]# rpm -ivh --force --nodeps /mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.x86_64.rpm
warning: /mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...1:libXScrnSaver-1.2.3-10.el9 ################################# [100%]
[root@redhat12 ~]#
[root@redhat12 ~]# rpm -ivh QQ_3.2.19_250904_x86_64_01.rpm
error: Failed dependencies:at-spi2-core is needed by linuxqq-3.2.19_39038-1.x86_64gtk3 is needed by linuxqq-3.2.19_39038-1.x86_64libXtst is needed by linuxqq-3.2.19_39038-1.x86_64libnotify is needed by linuxqq-3.2.19_39038-1.x86_64nss is needed by linuxqq-3.2.19_39038-1.x86_64xdg-utils is needed by linuxqq-3.2.19_39038-1.x86_64
[root@redhat12 ~]# rpm -ivh --force --nodeps /mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.x86_64.rpm
warning: /mnt/AppStream/Packages/libXScrnSaver-1.2.3-10.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...1:libXScrnSaver-1.2.3-10.el9 ################################# [100%]
[root@redhat12 ~]# ls
httpd-2.4.65 httpd-2.4.65.tar.gz nginx-1.28.0-1.el9.ngx.x86_64.rpm nginx-1.28.0.tar.gz QQ_3.2.19_250904_x86_64_01.rpm
[root@redhat12 ~]# rpm -ivh QQ_3.2.19_250904_x86_64_01.rpm
error: Failed dependencies:at-spi2-core is needed by linuxqq-3.2.19_39038-1.x86_64gtk3 is needed by linuxqq-3.2.19_39038-1.x86_64libXtst is needed by linuxqq-3.2.19_39038-1.x86_64libnotify is needed by linuxqq-3.2.19_39038-1.x86_64nss is needed by linuxqq-3.2.19_39038-1.x86_64xdg-utils is needed by linuxqq-3.2.19_39038-1.x86_64
[root@redhat12 ~]# find /mnt -name gtk3*
/mnt/AppStream/Packages/gtk3-3.24.31-2.el9.i686.rpm
/mnt/AppStream/Packages/gtk3-3.24.31-2.el9.x86_64.rpm
/mnt/AppStream/Packages/gtk3-devel-3.24.31-2.el9.i686.rpm
/mnt/AppStream/Packages/gtk3-devel-3.24.31-2.el9.x86_64.rpm
/mnt/AppStream/Packages/gtk3-immodule-xim-3.24.31-2.el9.x86_64.rpm
[root@redhat12 ~]# rpm -ivh --force --nodeps /mnt/AppStream/Packages/gtk3-3.24.31-2.el9.x86_64.rpm
warning: /mnt/AppStream/Packages/gtk3-3.24.31-2.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...1:gtk3-3.24.31-2.el9 ################################# [100%]
[root@redhat12 ~]# rpm -ivh QQ_3.2.19_250904_x86_64_01.rpm
error: Failed dependencies:at-spi2-core is needed by linuxqq-3.2.19_39038-1.x86_64libXtst is needed by linuxqq-3.2.19_39038-1.x86_64libnotify is needed by linuxqq-3.2.19_39038-1.x86_64nss is needed by linuxqq-3.2.19_39038-1.x86_64xdg-utils is needed by linuxqq-3.2.19_39038-1.x86_64
[root@redhat12 ~]# find /mnt -name at-spi2-core*
/mnt/AppStream/Packages/at-spi2-core-2.40.3-1.el9.i686.rpm
/mnt/AppStream/Packages/at-spi2-core-2.40.3-1.el9.x86_64.rpm
/mnt/AppStream/Packages/at-spi2-core-devel-2.40.3-1.el9.i686.rpm
/mnt/AppStream/Packages/at-spi2-core-devel-2.40.3-1.el9.x86_64.rpm
[root@redhat12 ~]# rpm -ivh --force --nodeps /mnt/AppStream/Packages/at-spi2-core-2.40.3-1.el9.x86_64.rpm
warning: /mnt/AppStream/Packages/at-spi2-core-2.40.3-1.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...1:at-spi2-core-2.40.3-1.el9 ################################# [100%]
[root@redhat12 ~]# rpm -ivh QQ_3.2.19_250904_x86_64_01.rpm
error: Failed dependencies:libXtst is needed by linuxqq-3.2.19_39038-1.x86_64libnotify is needed by linuxqq-3.2.19_39038-1.x86_64nss is needed by linuxqq-3.2.19_39038-1.x86_64xdg-utils is needed by linuxqq-3.2.19_39038-1.x86_64
[root@redhat12 ~]# find /mnt -name libXtst*
/mnt/AppStream/Packages/libXtst-1.2.3-16.el9.i686.rpm
/mnt/AppStream/Packages/libXtst-1.2.3-16.el9.x86_64.rpm
/mnt/AppStream/Packages/libXtst-devel-1.2.3-16.el9.i686.rpm
/mnt/AppStream/Packages/libXtst-devel-1.2.3-16.el9.x86_64.rpm
[root@redhat12 ~]# rpm -ivh --force --nodeps /mnt/AppStream/Packages/libXtst-1.2.3-16.el9.x86_64.rpm
warning: /mnt/AppStream/Packages/libXtst-1.2.3-16.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...1:libXtst-1.2.3-16.el9 ################################# [100%]
[root@redhat12 ~]# find /mnt -name libXtst*
/mnt/AppStream/Packages/libXtst-1.2.3-16.el9.i686.rpm
/mnt/AppStream/Packages/libXtst-1.2.3-16.el9.x86_64.rpm
/mnt/AppStream/Packages/libXtst-devel-1.2.3-16.el9.i686.rpm
/mnt/AppStream/Packages/libXtst-devel-1.2.3-16.el9.x86_64.rpm
[root@redhat12 ~]# rpm -ivh QQ_3.2.19_250904_x86_64_01.rpm
error: Failed dependencies:libnotify is needed by linuxqq-3.2.19_39038-1.x86_64nss is needed by linuxqq-3.2.19_39038-1.x86_64xdg-utils is needed by linuxqq-3.2.19_39038-1.x86_64
[root@redhat12 ~]# find /mnt -name libnotify*
/mnt/AppStream/Packages/libnotify-0.7.9-8.el9.i686.rpm
/mnt/AppStream/Packages/libnotify-0.7.9-8.el9.x86_64.rpm
/mnt/AppStream/Packages/libnotify-devel-0.7.9-8.el9.i686.rpm
/mnt/AppStream/Packages/libnotify-devel-0.7.9-8.el9.x86_64.rpm
[root@redhat12 ~]# rpm -ivh --force --nodeps /mnt/AppStream/Packages/libnotify-0.7.9-8.el9.x86_64.rpm
warning: /mnt/AppStream/Packages/libnotify-0.7.9-8.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...1:libnotify-0.7.9-8.el9 ################################# [100%]
[root@redhat12 ~]# rpm -ivh QQ_3.2.19_250904_x86_64_01.rpm
error: Failed dependencies:nss is needed by linuxqq-3.2.19_39038-1.x86_64xdg-utils is needed by linuxqq-3.2.19_39038-1.x86_64
[root@redhat12 ~]# find /mnt -name nss*
/mnt/AppStream/Packages/nss-3.90.0-3.el9_2.i686.rpm
/mnt/AppStream/Packages/nss-3.90.0-3.el9_2.x86_64.rpm
/mnt/AppStream/Packages/nss-altfiles-2.18.1-20.el9.i686.rpm
/mnt/AppStream/Packages/nss-altfiles-2.18.1-20.el9.x86_64.rpm
/mnt/AppStream/Packages/nss-devel-3.90.0-3.el9_2.i686.rpm
/mnt/AppStream/Packages/nss-devel-3.90.0-3.el9_2.x86_64.rpm
/mnt/AppStream/Packages/nss-softokn-3.90.0-3.el9_2.i686.rpm
/mnt/AppStream/Packages/nss-softokn-3.90.0-3.el9_2.x86_64.rpm
/mnt/AppStream/Packages/nss-softokn-devel-3.90.0-3.el9_2.i686.rpm
/mnt/AppStream/Packages/nss-softokn-devel-3.90.0-3.el9_2.x86_64.rpm
/mnt/AppStream/Packages/nss-softokn-freebl-3.90.0-3.el9_2.i686.rpm
/mnt/AppStream/Packages/nss-softokn-freebl-3.90.0-3.el9_2.x86_64.rpm
/mnt/AppStream/Packages/nss-softokn-freebl-devel-3.90.0-3.el9_2.i686.rpm
/mnt/AppStream/Packages/nss-softokn-freebl-devel-3.90.0-3.el9_2.x86_64.rpm
/mnt/AppStream/Packages/nss-sysinit-3.90.0-3.el9_2.x86_64.rpm
/mnt/AppStream/Packages/nss-tools-3.90.0-3.el9_2.x86_64.rpm
/mnt/AppStream/Packages/nss-util-3.90.0-3.el9_2.i686.rpm
/mnt/AppStream/Packages/nss-util-3.90.0-3.el9_2.x86_64.rpm
/mnt/AppStream/Packages/nss-util-devel-3.90.0-3.el9_2.i686.rpm
/mnt/AppStream/Packages/nss-util-devel-3.90.0-3.el9_2.x86_64.rpm
/mnt/AppStream/Packages/nss_wrapper-1.1.13-1.el9.i686.rpm
/mnt/AppStream/Packages/nss_wrapper-1.1.13-1.el9.x86_64.rpm
/mnt/AppStream/Packages/nss_wrapper-libs-1.1.13-1.el9.i686.rpm
/mnt/AppStream/Packages/nss_wrapper-libs-1.1.13-1.el9.x86_64.rpm
[root@redhat12 ~]# rpm -ivh --force --nodeps /mnt/AppStream/Packages/nss-3.90.0-3.el9_2.x86_64.rpm
warning: /mnt/AppStream/Packages/nss-3.90.0-3.el9_2.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...1:nss-3.90.0-3.el9_2 ################################# [100%]
[root@redhat12 ~]# rpm -ivh QQ_3.2.19_250904_x86_64_01.rpm
error: Failed dependencies:xdg-utils is needed by linuxqq-3.2.19_39038-1.x86_64
[root@redhat12 ~]# find /mnt -name xdg-utils*
/mnt/AppStream/Packages/xdg-utils-1.1.3-11.el9.noarch.rpm
[root@redhat12 ~]# rpm -ivh --force --nodeps /mnt/AppStream/Packages/xdg-utils-1.1.3-11.el9.noarch.rpm
warning: /mnt/AppStream/Packages/xdg-utils-1.1.3-11.el9.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...1:xdg-utils-1.1.3-11.el9 ################################# [100%]# 安装好依赖后,再次安装qq软件
[root@redhat12 ~]# rpm -ivh QQ_3.2.19_250904_x86_64_01.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...1:linuxqq-3.2.19_39038-1 ################################# [100%]
卸载软件
案例:卸载qq
# 查找软件
[root@redhat12 ~]# rpm -qa *qq
linuxqq-3.2.19_39038-1.x86_64# 卸载软件
[root@redhat12 ~]# rpm -e linuxqq
# 查找软件:未找到,表示卸载成功
[root@redhat12 ~]# rpm -qa *qq
YUM/DNF安装
YUM(Yellow dog Updater,Modified),RHEL9中默认使用的软件批量管理工具由版本的yum换成了速度更快的dnf,原有的yum命令仅为dnf的软连接,仍然可以使用。
[root@redhat12 ~]# ll `which yum`
lrwxrwxrwx. 1 root root 5 Jun 29 2023 /usr/bin/yum -> dnf-3
主要功能:
- 在线下载、安装、卸载、升级rpm软件包
- 自动查找并解决rpm包之间的依赖关系,一次性安装所有具有依赖关系的rpm包,而无需管理员逐个,手工地去安装每个rpm包
工作原理:
- 将编译好地软件放置在YUM服务器中,并将这些软件地依赖性等信息记录下俩形成数据库
- 用户安装软件时会向网络中的YUM服务器下载对应表格并与本机RPM数据库进行比较,最后一同下载全部软件进行安装,自动解决依赖性。
- YUM软件仓库:记录软件依赖性等信息的数据库。
# 查看包,包组相关信息
yum repolist [all] # 查看系统中yum资源配置信息
yum list all # 列出仓库理搜友可安装的软件包
yum list installed [包名] # 列出已经按照的所有的或指定的rpm包(包名中可使用匹配符)
yum info 包名 # 查看指定软件包的详细信息
yum grouplist # 查看仓库里面所有包组
yum grouplist 包组名 # 查看指定包组里面的详细信息# 安装、更新包和包组
yum install [-y] 包名 # 安装指定的软件包,-y则在工作过程中需要使用者响应,这个选个参数可以直接回答yes
yum update [-y] 包名 # 升级指定的软件包或主机中所有已经安装的软件包
yum groupinstall 包组名 # 安装指定组里面的所有包# 卸载软件包
yum remove [-y] 包名 # 卸载已经安装在系统中的指定的软件包# 搜索文件由那个包产生
yum provides 文件名 # 查找指定的文件属于那个包
yum whatprovides /etc/fstab # 查看这个文件是由那个包提供的# 模糊搜索包名
yum search 模糊包名 # 查看模糊包名的软件包# 清空缓存
yum clean packages all # 清楚下载到本机的指定的软件包或所有软件包的yum源缓存
安装示例
安装mariadb数据库为例来演示其安装方式。
# 安装数据库
[root@redhat12 ~]# yum install mariadb-server mariadb -y# 启动数据库
[root@redhat12 ~]# systemctl start mariadb# 进入数据库,对于mariadb数据库来说,默认密码为空,如果安装mysql ,默认密码会日志文件中找
[root@redhat12 ~]# mysql -u root
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.5.16-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]>
如果使用的是: mount /dev/sr0 /mnt 的方式进行挂载镜像,系统重启就会丢失,如果希望启动就挂载,就需要编辑/etc/fstab文件,在文件的后面添加如下内容:
/dev/sr0 /mnt iso9660 defaults 0 0