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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/55482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——13.mapset(模拟实现)

1.对红黑树进行改造 1.1treenode模板参数改变 之前构建treenode模板参数传的是class k,class v(set为k&#xff0c;k&#xff1b;map是k&#xff0c;v&#xff09;&#xff0c;现在直接用T代替 template<class T> //这里直接传了T作为模板参数&#xff0c;T可能是pai…

【WRF工具】cmip6-to-wrfinterm工具概述:生成WRF中间文件

cmip6-to-wrfinterm工具概述 cmip6-to-wrfinterm工具安装cmip6-to-wrfinterm工具使用快速启动&#xff08;Quick start&#xff09;情景1&#xff1a;MPI-ESM-1-2-HR&#xff08;默认&#xff09;&#xff1a;情景2&#xff1a;BCMM情景3&#xff1a;EC-Earth3 更改使用&#x…

进度条(倒计时)Linux

\r回车(回到当前行开头) \n换行 行缓冲区概念 什么现象&#xff1f; 什么现象&#xff1f;&#xff1f; 什么现象&#xff1f;&#xff1f;&#xff1f; 自己总结&#xff1a; #pragma once 防止头文件被重复包含 倒计时 在main.c中&#xff0c;windows.h是不可以用的&…

大语言模型入门(一)——大语言模型智能助手

一、大语言模型智能助手 2022年末ChatGPT一经推出&#xff0c;一时间不注册个账号用一下都跟不上潮流了。然而&#xff0c;我们要注册OpenAI的账号使用ChatGPT还是一件比较麻烦的事情&#xff08;懂的都懂&#xff09;。好在&#xff0c;国内各大团队非常给力地及时推出了自研的…

计算机网络--TCP、UDP抓包分析实验

计算机网络实验 目录 实验目的 实验环境 实验原理 1、UDP协议 2、TCP协议 实验具体步骤 实验目的 1、掌握使用wireshark工具对UDP协议进行抓包分析的方法&#xff0c;掌握UDP协议的报文格式&#xff0c;掌握UDP协议校验和的计算方法&#xff0c;理解UDP协议的优缺点&am…

Linux云计算 |【第四阶段】RDBMS1-DAY3

主要内容&#xff1a; 子查询&#xff08;单行单列、多行单列、单行多列、多行多列&#xff09;、分页查询limit、联合查询union、插入语句、修改语句、删除语句 一、子查询 子查询就是指的在一个完整的查询语句之中&#xff0c;嵌套若干个不同功能的小查询&#xff0c;从而一…

《OpenCV》—— 指纹验证

用两张指纹图片中的其中一张对其验证 完整代码 import cv2def cv_show(name, img):cv2.imshow(name, img)cv2.waitKey(0)def verification(src, model):sift cv2.SIFT_create()kp1, des1 sift.detectAndCompute(src, None)kp2, des2 sift.detectAndCompute(model, None)fl…

stm32四足机器人(标准库)

项目技术要求 PWM波形的学习 参考文章stm32 TIM输出比较(PWM驱动LED呼吸灯&&PWM驱动舵机&&PWM驱动直流电机)_ttl pwm 驱动激光头区别-CSDN博客 舵机的学习 参考文章 stm32 TIM输出比较(PWM驱动LED呼吸灯&&PWM驱动舵机&&PWM驱动直流电机)…

Pikichu-xss实验案例-通过xss获取cookie

原理图&#xff1a; pikachu提供了一个pkxss后台&#xff1b; 该后台可以把获得的cookie信息显示出来&#xff1b; 查看后端代码cookie.php&#xff1a;就是获取cookie信息&#xff0c;保存起来&#xff0c;然后重定向跳转到目标页面&#xff1b;修改最后从定向的ip&#xff0…

V3D——从单一图像生成 3D 物体

导言 论文地址&#xff1a;https://arxiv.org/abs/2403.06738 源码地址&#xff1a;https://github.com/heheyas/V3D.git 人工智能的最新进展使得自动生成 3D 内容的技术成为可能。虽然这一领域取得了重大进展&#xff0c;但目前的方法仍面临一些挑战。有些方法速度较慢&…

Scrapy 爬虫的大模型支持

使用 Scrapy 时&#xff0c;你可以轻松使用大型语言模型 (LLM) 来自动化或增强你的 Web 解析。 有多种使用 LLM 来帮助进行 Web 抓取的方法。在本指南中&#xff0c;我们将在每个页面上调用一个 LLM&#xff0c;从中抽取我们定义的一组属性&#xff0c;而无需编写任何选择器或…

【ZYNQ 开发】填坑!双核数据采集系统LWIP TCP发送,运行一段时间不再发送且无法ping通的问题解决

问题描述 之所以说是填坑&#xff0c;是因为之前写了一篇关于这个双核数据采集系统的调试记录&#xff0c;问题的具体表现是系统会在运行一段时间后&#xff08;随机不定时&#xff0c;长了可能将近两小时&#xff0c;短则几分钟&#xff09;&#xff0c;突然间就不向电脑发送数…

windows下安装rabbitMQ并开通管理界面和允许远程访问

如题&#xff0c;在windows下安装一个rabbitMQ server&#xff1b;然后用浏览器访问其管理界面&#xff1b;由于rabbitMQ的默认账号guest默认只能本机访问&#xff0c;因此需要设置允许其他机器远程访问。这跟mysql的思路很像&#xff0c;默认只能本地访问&#xff0c;要远程访…

Web和UE5像素流送、通信教程

一、web端配置 首先打开Github地址&#xff1a;https://github.com/EpicGamesExt/PixelStreamingInfrastructure 找到自己虚幻引擎对应版本的项目并下载下来&#xff0c;我这里用的是5.3。 打开项目找到PixelStreamingInfrastructure-master > Frontend > implementat…

Redis介绍及整合Spring

目录 Redis介绍 Spring与Redis集成 Redis介绍 Redis是内存数据库&#xff0c;Key-value型NOSQL数据库&#xff0c;项目上经常将一些不经常变化并且反复查询的数据放入Redis缓存&#xff0c;由于数据放在内存中&#xff0c;所以查询、维护的速度远远快于硬盘方式操作数据&#…

启动服务并登录MySQL9数据库

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) Windows平台下安装与配置MyS…

Llama3.2开源:Meta发布1B和3B端侧模型、11B和90B多模态模型

最近这一两周不少互联网公司都已经开始秋招提前批面试了。 不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c;帮助一些球友…

大数据毕业设计选题推荐-民族服饰数据分析系统-Python数据可视化-Hive-Hadoop-Spark

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

栏目二:Echart绘制动态折线图+柱状图

栏目二&#xff1a;Echart绘制动态折线图柱状图 配置了一个ECharts图表&#xff0c;该图表集成了数据区域缩放、双Y轴显示及多种图表类型&#xff08;折线图、柱状图、象形柱图&#xff09;。图表通过X轴数据展示&#xff0c;支持平滑折线展示比率数据并自动添加百分比标识&…

Docker-2.如何保存数据退出

在使用Docker时&#xff0c;我们常常需要修改容器中的文件&#xff0c;并且希望在容器重启后这些修改能够得到保留。 0.简介 使用Docker时有一个需要注意的问题&#xff1a;当你修改了容器中的文件后&#xff0c;重启容器后这些修改将会被重置&#xff0c;深入研究这个问题。 …