《Linux从小白到高手》理论篇(六):Linux软件安装一篇通

  1. 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%的日常各类系统的软件安装。

本篇完结。
码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者。

相关推荐
冒泡的肥皂17 分钟前
MVCC初学demo(一
数据库·后端·mysql
Fireworkitte18 分钟前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9001 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char1 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
.Shu.1 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
淮北也生橘123 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
薛晓刚4 小时前
当MySQL的int不够用了
数据库
iナナ4 小时前
传输层协议——UDP和TCP
网络·网络协议·tcp/ip·udp
SelectDB技术团队4 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术
星空下的曙光5 小时前
mysql 命令语法操作篇 数据库约束有哪些 怎么使用
数据库·mysql