- List item
本篇介绍Linux软件安装相关的操作命令,看完本文,有关Linux软件安装相关操作的常用命令你就掌握了99%了。
Linux软件安装
RPM
RPM软件的安装、删除、更新只有root权限才能使用;查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装。
初始化rpm数据库
通过rpm 命令查询一个rpm 包是否安装了,是通过rpm 数据库来完成的;经常用下面的两个命令来初始化rpm 数据库:
rpm --initdb
rpm --rebuilddb 
rpm命令的–initdb和–rebuilddb选项主要用于管理 RPM 数据库,
 1、rpm --initdb
 –创建一个新的 RPM 数据库,如果系统中当前没有 RPM 数据库或者数据库已损坏,这个命令将初始化一个全新的数据库。
 –如果系统中原本没有数据库,执行该命令后会创建一个空的数据库,为后续的 RPM 包管理操作(如安装、查询、卸载软件包等)提供数据存储和管理基础。
 –如果系统中已有数据库但可能存在一些小问题,执行此命令可能会覆盖原有的数据库,导致丢失之前对 RPM 包所做的一些标记(如手动标记为已安装、已验证等状态信息)以及一些自定义的数据库记录。
 2、rpm --rebuilddb
 –重建 RPM 数据库。当 RPM 数据库出现损坏、不一致或者存在错误时,可以使用这个命令来修复数据库,使其恢复到一个一致的状态。
 –重建过程中,系统会遍历所有已安装的 RPM 包,重新收集包的信息并构建数据库。----这个过程可能会消耗一定的系统资源(CPU、内存和磁盘 I/O),特别是在系统上安装了大量 RPM 包的情况下,可能需要较长时间才能完成。
 –与–initdb类似,执行此命令也可能会导致丢失一些自定义的数据库记录和标记信息。同时,如果在重建过程中出现问题,可能会导致部分 RPM 包的信息不准确或丢失,影响后续的包管理操作。
 –这两个参数非常重要,有时rpm系统出了问题,不能安装和查询,多是这里出了问题;
 –/var/lib/rpm目录下的数据库记录所有软件的升级需求,记录已经安装的所有软件,数字证书记录等,这个目录下的文件非常重要。
RPM软件包查询:
命令格式:rpm {-q|-- query} [select-options] [query-options]
 RPM的查询功能是很强大,是Linux重要的功能之一。
 
1. 查询软件包是否安装:
使用 -q 选项加上软件包名称来查询特定软件是否安装。例如,查询 vim 是否安装,可以执行 rpm -q vim。如果软件已安装,会显示软件包的名称和版本信息;如果未安装,则会提示软件包未安装。
2. 查询系统中所有已安装的软件包:
使用 -qa 选项可以列出系统中安装的所有软件包。此命令会输出大量的软件包信息,不太方便直接查看。可以结合 grep 命令来过滤特定的软件包。例如,要查找所有与 python 相关的软件包,可以执行 rpm -qa | grep python。另外,还可以使用 rpm -qa | wc -l 来统计通过 rpm 方式安装的软件包个数。
3. 查询软件包的详细信息:
使用 -qi 选项可以查询已安装软件的详细信息,包括软件名称、版本、描述、安装日期、大小等。例如:rpm -qi vim。
 若要查询还没有安装的软件包的详细信息,需要使用包全名,并加上 -qip 选项。例如:rpm -qip /path/to/package.rpm(这里的 /path/to/package.rpm 是未安装软件包的路径)。
4. 查询软件包中的文件列表:
对于已安装的软件包,使用 -ql 选项可以列出其包含的文件列表和安装的完整目录。例如:rpm -ql vim。
 对于未安装的软件包,使用 -qlp 选项并加上包全名来查询其中的文件列表和打算安装的位置。例如:rpm -qlp /path/to/package.rpm。
5. 查询系统文件属于哪个软件包:
使用 -qf 选项可以查询系统文件属于哪个 rpm 包,但该文件必须是通过 rpm 包安装的,手工建立的文件无法查询。例如:rpm -qf /etc/httpd/conf/httpd.conf。
6. 查询软件包的依赖关系:
使用 -qr 选项可以查询已安装软件包所依赖的其他软件包,但结果中无法区分这些依赖的软件包在系统中是否已经安装。例如:rpm -qr vim。
 若要查询未安装的软件包的依赖性,加 -p 选项即可。例如:rpm -qrp
未安装的软件包的查看:
查看的前提是您有一个.rpm 的文件,也就是说对既有软件file.rpm的查看等;
1、查看一个软件包的用途、版本等信息;
命令:
rpm  -qpi file.rpm 
2、查看一件软件包所包含的文件;
命令:
rpm -qpl     file.rpm 
3、查看软件包的文档所在的位置;
命令:
rpm -qpd     file.rpm 
4、查看一个软件包的配置文件;
命令:
rpm -qpc     file.rpm 
5、查看一个软件包的依赖关系
命令:
rpm -qpR  file.rpm 
rpm软件包的安装、升级、删除
1、安装软件包
使用 rpm -i 命令安装软件包。例如:
 rpm -i /path/to/package.rpm
其中 /path/to/package.rpm 是软件包的路径。
 如果软件包有依赖关系,可能会安装失败。此时可以使用 --nodeps 选项强制安装,但不建议这样做,因为可能会导致软件无法正常运行。
rpm -i --nodeps /path/to/package.rpm
2、升级软件包
使用 rpm -U 命令升级软件包。例如:
rpm -U /path/to/new_package.rpm
如果系统中没有安装旧版本的软件包,rpm -U 的效果与 rpm -i 相同,即安装新的软件包。
3、删除软件包
使用 rpm -e 命令删除软件包。例如:
  rpm -e package_name
其中 package_name 是要删除的软件包的名称。
 注意,在删除软件包时,要确保该软件包没有被其他软件依赖,否则可能会导致其他软件无法正常运行。
–在使用 rpm 命令进行软件包管理时,要谨慎操作,尤其是在删除和升级软件包时,要确保不会影响系统的稳定性和其他软件的正常运行。
YUM
YUM配置文件
创建容器,位置在/etc/yum.repos.d,扩展名必须是.repo
#cd    /etc/yum.repos.d
#vim yum.repo
新建一个仓库文件,名字可以自定义,
YUM命令
1、安装软件包
 安装单个软件包:
sudo yum install package_name
例如,安装 Vim 编辑器可以使用 sudo yum install vim。
 安装一组软件包:
sudo yum install package1 package2 package3...
2、更新软件包
 更新所有软件包:
 sudo yum update
 这将更新系统中所有已安装的软件包到最新版本。
 更新特定软件包:
sudo yum update package_name
例如,更新 Git 可以使用 sudo yum update git。
 3、查询软件包信息
 查询已安装的软件包:
yum list installed
该命令将列出系统中所有已安装的软件包及其版本信息。
 查询可用的软件包:
yum list available
显示所有可从已配置的软件源中安装的软件包。
 查询特定软件包的详细信息:
yum info package_name
例如,查询 Vim 的详细信息可以使用 yum info vim。
 4、删除软件包
 删除单个软件包:
sudo yum remove package_name
例如,删除 Vim 可以使用 sudo yum remove vim。
 删除一组软件包:
sudo yum remove package1 package2 package3...
5、搜索软件包
 按名称搜索软件包:
yum search keyword
例如,搜索包含 “python” 关键字的软件包可以使用 yum search python。
 6、管理软件源
 列出已配置的软件源:
yum repolist
禁用软件源:
sudo yum-config-manager --disable repository_name
例如,禁用名为 “epel” 的软件源可以使用 sudo yum-config-manager --disable epel。
 启用软件源:
sudo yum-config-manager --enable repository_name
例如,启用名为 “epel” 的软件源可以使用 sudo yum-config-manager --enable epel。
 7、清理缓存
 清理 Yum 缓存的软件包文件:
sudo yum clean packages
清理 Yum 缓存的元数据:
sudo yum clean metadata
清理所有 Yum 缓存:
sudo yum clean all
8、安装软件包组
 列出软件包组:
yum grouplist
安装软件包组:
sudo yum groupinstall group_name
例如,安装 “Development Tools” 软件包组可以使用 sudo yum groupinstall “Development Tools”。
 9、卸载软件包组
 卸载软件包组:
sudo yum groupremove group_name
例如,卸载 “Development Tools” 软件包组可以使用 sudo yum groupremove “Development Tools”。
 Yum 命令还有很多其他选项和用法,可以通过 yum --help 或查阅相关文档来了解更多信息。在使用 Yum 进行软件包管理时,要确保系统连接到可靠的软件源,以获取安全和稳定的软件包。
10.其他命令
1.使用YUM查找软件包
命令:yum search 
2.列出所有可安装的软件包
命令:yum list
3.列出所有可更新的软件包
命令:yum list updates
4.列出所有已安装的软件包
命令:yum list installed
5.列出所有已安装但不在  Yum Repository 內的软件包
命令:yum list extras
6.列出所指定的软件包
命令:yum list 
7.使用YUM获取软件包信息
命令:yum info 
8.列出所有软件包的信息
命令:yum info
9.列出所有可更新的软件包信息
命令:yum info updates
10.列出所有已安裝的软件包信息
命令:yum info installed
11.列出所有已安裝但不在  Yum Repository 內的软件包信息
命令:yum info extras 
12.列出软件包提供哪些文件
命令:yum provides
apt
APT(Advanced Package Tool)是一个强大的软件包管理工具,主要用于基于 Debian 和 Ubuntu 的系统。
1、安装软件包
安装单个软件包:
sudo apt install package_name
例如,安装 Vim 编辑器可以使用 sudo apt install vim。
 安装多个软件包:
 sudo apt install package1 package2 package3…
 2、更新软件包列表
 更新软件源列表,以获取最新的软件包信息:
sudo apt update
这个命令会从配置的软件源中下载软件包列表,并更新本地的软件包索引。
 3、升级软件包
 升级所有已安装的软件包到最新版本:
sudo apt upgrade
它会检查已安装的软件包,并安装可用的更新版本。
 升级系统:
sudo apt dist-upgrade
除了升级软件包,还会处理新软件包的依赖关系变化,可能会安装或删除一些软件包以确保系统的一致性。
 4、查询软件包信息
 查看已安装软件包的列表:
apt list --installed
查看可安装软件包的列表:
apt list
查看特定软件包的详细信息:
apt show package_name
例如,查看 Vim 的详细信息可以使用 apt show vim。
 5、删除软件包
 删除单个软件包:
sudo apt remove package_name
这将删除指定的软件包,但可能会保留一些配置文件。
 完全删除软件包,包括配置文件:
sudo apt purge package_name
6、搜索软件包
 按名称搜索软件包:
apt search keyword
例如,搜索包含 “python” 关键字的软件包可以使用 apt search python。
 7、清理缓存
 清理下载的软件包缓存:
sudo apt clean
这将删除 /var/cache/apt/archives/ 目录下的所有已下载的软件包文件。
 清理旧的软件包版本缓存:
sudo apt autoclean
它只会删除那些无法再下载的旧版本软件包文件。
 8、修复损坏的软件包依赖关系
 如果软件包依赖关系出现问题,可以使用以下命令进行修复:
sudo apt install -f
这个命令会尝试修复任何损坏的依赖关系,并安装缺少的软件包。
 9、锁定软件包版本
 可以锁定特定软件包的版本,以防止它被升级:
sudo apt-mark hold package_name
例如,锁定 Vim 的版本可以使用 sudo apt-mark hold vim。
 解锁软件包版本:
sudo apt-mark unhold package_name
掌握以上三类Linux安装软件的方法就能应付99%的日常各类系统的软件安装。
本篇完结。
 码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者。







![[C++]使用纯opencv部署yolov11-cls图像分类onnx模型](https://i-blog.csdnimg.cn/direct/337aaf7df3c54022b933435c3b5a821b.png)

![[翻译]ANSI X9.24-1-2009](https://i-blog.csdnimg.cn/direct/6a4defa2d15f472db161b0debc511d13.png)





![import torch报错问题:OSError: [WinError 126] 找不到指定的模块。](https://csdnimg.cn/release/blog_editor_html/release2.3.7/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=O83A)



