当前位置: 首页 > news >正文

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

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

相关文章:

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

List item 本篇介绍Linux软件安装相关的操作命令,看完本文,有关Linux软件安装相关操作的常用命令你就掌握了99%了。 Linux软件安装 RPM RPM软件的安装、删除、更新只有root权限才能使用;查询功能任何用户都可以操作;如果普通用…...

【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错

1. 运行项目 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Appl…...

②EtherCAT转Modbus485RTU网关多路同步高速采集无需编程串口服务器

EtherCAT转Modbus485RTU网关多路同步高速采集无需编程串口服务器https://item.taobao.com/item.htm?ftt&id798036415719 EtherCAT 串口网关 EtherCAT 转 RS485 (接上一章) 自由协议通信步骤 (以MS-A2-1041为例) 接收与…...

matlab-对比两张图片的HSV分量的差值并形成直方图

%对比两张图片的HSV分量的差值并形成直方图,改个路径就能用,图片分辨率要一致 close all; clear all; clc; I1imread(E:\test\resources\image\1.jpg); I2imread(E:\test\resources\image\2.jpg); HSV1 rgb2ntsc(I1); HSV2 rgb2ntsc(I2); %HSV,HSV 代…...

微服务SpringGateway解析部署使用全流程

官网地址: Spring Cloud Gateway 目录 1、SpringGateway简介 1、什么是网关 2、为什么用网关【为了转发】 2、应用: 1.启动nacos 2.创建网关项目 3.网关配置1 4.网关配置2【了解】 5.过滤器配置【了解】 1、SpringGateway简介 核心功能有三个&…...

Solidity 存储和内存管理:深入理解与高效优化

在 Solidity 中,存储和内存管理是编写高效智能合约的关键组成部分。合约执行的每一步操作都可能涉及到数据的存储和读取,而这些操作对 gas 的消耗有很大影响。因此,理解 Solidity 的存储模型以及如何优化数据的管理对于合约的安全性、性能和成…...

机器学习篇-day02-KNN算法实现鸢尾花模型和手写数字识别模型

一. KNN简介 KNN思想 K-近邻算法(K Nearest Neighbor,简称KNN)。比如:根据你的“邻居”来推断出你的类别 KNN算法思想:如果一个样本在特征空间中的k 个最相似的样本中的大多数属于某一个类别,则该样本也属…...

【C++】STL--vector

1.vector的介绍 我们先来看看vector的文档介绍,实际中我们只要熟悉相关接口就好了。 成员函数 使用STL的三个境界:能用,明理,能扩展 ,那么下面学习vector,我们也是按照这个方法去学习 2 vector的使用 v…...

Java使用Redis的详细教程

Redis是一个基于内存的key-value结构数据库,即非关系型数据库,具有高性能、丰富的数据类型、持久化、高可用性和分布式等特点。在Java项目中,Redis通常用于缓存、分布式锁、计数器、消息队列和排行榜等场景。以下是在Java中使用Redis的详细教…...

严重 Zimbra RCE 漏洞遭大规模利用(CVE-2024-45519)

攻击者正在积极利用 CVE-2024-45519,这是一个严重的 Zimbra 漏洞,该漏洞允许他们在易受攻击的安装上执行任意命令。 Proofpoint 的威胁研究人员表示,攻击始于 9 月 28 日,几周前,Zimbra 开发人员发布了针对 CVE-2024-…...

php函数积累

对称函数 isset 判断数组arr中是否存在键key 返回值true/false isset(name,$arr) unset 删除数组中的键 需存在key不然抛出异常 unset($arr[name]) json_encode 数据转json格式 json_encode($arr) 一般形式 指定字符编码形式 json_decode json格式转原有数据格式 json_d…...

前端项目场景相关的面试题,包含验证码、图片存储、登录鉴权、动态路由、组件划分等项目场景实际的面试题

项目场景面试题 如何防止短信验证码被刷 问题场景 添加倒计时和图片滑动验证,避免不必要的资源浪费 发送短信验证码需要费用发送短信消耗服务器资源 公司的图片、视频、文件资源如何存储的 传统模式 分开存储到数据服务器,托管服务器到云端 缺点&…...

uniapp 上了原生的 echarts 图表插件了 兼容性还行

插件地址:echarts - DCloud 插件市场 兼容性这块儿不知道后期会不会支持其他浏览器 H5 的话建议可以用原生的不用这个插件...

共享单车轨迹数据分析:以厦门市共享单车数据为例(八)

副标题:基于POI数据的站点综合评价——以厦门市为例(三) 什么是优劣解距离法(TOPSIS)? 优劣解距离法(Technique for Order Preference by Similarity to Ideal Solution,简称TOPSI…...

sentinel原理源码分析系列(二)-动态规则和transport

本文是sentinel原理源码分析系列第二篇,分析两个组件,动态配置和transport 动态规则 Sentinel提供动态规则机制,依赖配置中心,如nacos,zookeeper,组件支持动态配置,模板类型为规则,支…...

ubuntu切换源方式记录(清华源、中科大源、阿里源)

文章目录 前言一、中科大源二、清华源三、阿里源 前言 记录ubunut切换各个源的方式。 备注:更换源之后使用sudo apt-get update更新索引。 提示:以下是本篇文章正文内容,下面案例可供参考 一、中科大源 地址:https://mirrors.u…...

【10】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-泛型基础全解(泛型函数、泛型接口、泛型类)及参数、接口补充

序言: 本文详细讲解了关于ArkTs语言中的泛型,其中包含泛型函数、泛型接口、泛型约束、泛型类及其中参数的使用方法,补充了一部分接口相关的知识,包括接口的继承和具体实现,也写到了一些边边角角的小知识,剩…...

2024年09月CCF-GESP编程能力等级认证C++编程一级真题解析

本文收录于专栏《C++等级认证CCF-GESP真题解析》,专栏总目录:点这里。订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 据有关资料,山东大学于1972年研制成功DJL-1计算机,并于1973年投入运行,其综合性能居当时全国第三位。DJL-1计算机运算控制…...

基于多维统计分析与GMM聚类的食品营养特征研究

1.项目背景 在当今社会,随着人们对健康和营养的日益关注,深入了解食品的营养成分及其对人体的影响变得越来越重要,本研究采用了多维度的分析方法,包括营养成分比较分析、统计检验、营养密度分析和高斯混合模型(GMM&am…...

SkyWalking 告警功能

SkyWalking 告警功能是在 6.x 版本新增的,其核心由一组规则驱动,这些规则定义在config/alarm-settings.yml文件中。 告警规则 告警规则:它们定义了应该如何触发度量警报,应该考虑什么条件。Webhook(网络钩子):定义当警告触发时,哪些服务终端需要被告知。常用告警规则 …...

国内旅游:现状与未来趋势分析

在当今社会快速发展的背景下,国内旅游更是呈现出蓬勃的发展态势。中国,这片拥有悠久历史、灿烂文化和壮丽山河的广袤土地,为国内旅游的兴起与发展提供了得天独厚的条件。 本报告将借助 DataEase 强大的数据可视化分析能力,深入剖…...

西电25考研 VS 24考研专业课大纲变动汇总

01专业课变动 西安电子科技大学专业课学长看到953网络安全基础综合变为 893网络安全基础综合,这是因为工科要求都必须是8开头的专业课,里面参考课本还是没变的,无非就是变了一个名字 对于其他变动专业课也是同理的 02专业课考纲内容变化 对于…...

【Linux】进程管理:状态与优先级调度的深度分析

✨ 山海自有归期,风雨自有相逢 🌏 📃个人主页:island1314 🔥个人专栏:Linux—登神长阶 ⛺️ 欢迎关注:👍点赞 &#x1…...

同轴电缆笔记

同轴电缆笔记 射频同轴电缆的阻抗标准为什么是50Ω或75Ω呢? 在PCB设计中,在合理的范围内,传输线阻抗的具体数值并不重要。只要控制好整条传输线的阻抗,不要出现阻抗不连续的情况就好了。设计中的其他因素往往决定了我们用什么样…...

【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL74

异步复位同步释放 描述 题目描述: 请使用异步复位同步释放来将输入数据a存储到寄存器中,并画图说明异步复位同步释放的机制原理 信号示意图: clk为时钟 rst_n为低电平复位 d信号输入 dout信号输出 波形示意图: 输入描…...

在Linux系统安装Nginx

注意:Nginx端口号是80(云服务器要放行) 我的是基于yum源安装 安装yum源(下面这4步就好了) YUM源 1、将源文件备份 cd /etc/yum.repos.d/ && mkdir backup && mv *repo backup/ 2、下载阿里源文件 curl -o /etc/yum.repos.d/CentOS-Base.repo ht…...

C初阶(六)--- static 来喽

前言:C语言中有许多关键字(关键字是预先保留的标识符,具有特殊意义,不能用作变量 名、函数名等普通标识符。) 比如:前面在变量与常量那一节提到的extern 就是一个关键字,应该还记得e…...

Git版本控制工具--关于命令

Git版本控制工具 学习前言 在项目开发中,总是需要多个人同时对一个项目进行修改,如何高效快速地进行修改,且控制各自修改的版本不会和他人的进行重叠,这就需要用到Git分布式版本控制器了 作用 解决了一致性,并发性…...

【iOS】计算器的仿写

计算器 文章目录 计算器前言简单的四则运算UI界面事件的逻辑小结 前言 笔者应组内要求,简单实现了一个可以完成简单四则运算的计算器程序。UI界面则是通过最近学习的Masonry库来实现的,而简单的四则运算内容则是通过栈来实现一个简单的四则运算。 简单…...

报错 libgomp.so.1, needed by vendor/llama.cpp/ggml/src/libggml.so, not found

在安装 xinference时报错 安装命令 pip install "xinference[all]" 报错内容 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 3.7 MB/s eta 0:00:00 INFO: pip is looking at multiple versions of multiprocess t…...

西安网站建设联系方式/北京环球影城每日客流怎么看

一、 首先要了解什么影响数据库查询速度 1.1影响数据库查询速度的四大因素 1、服务器硬件限制 2、磁盘io 3、网卡流量 4、sql查询速度 1.2、两个名词 QPS:每秒查询率QueriesPerSecond,是一台服务器每秒能够相应的查询次数,是对一个特定…...

莱西网站制作联赛与超/网站建设制作过程

我们使用go-sciter,就不得不提Sciter,Sciter 是一个嵌入式的 HTML/CSS/脚本引擎,旨在为桌面应用创建一个 UI 框架层。说简单点就是我们通过它可以像写html,css那样写桌面UI。一、环境准备第一步:从https://sciter.com/download/地…...

流媒体网站建设规划/网站友链查询接口

本节课制作一个模拟手机解锁的动画,我们需要一个文本视图,用来执行色彩变换的动画。文本视图的上方是一个长方形,用来执行由左至右缩小的动画。 首先添加一个布尔属性,标识是否进行色彩变换的动画。 添加一个ZStack视图,作为子视图的容器。 继续添加一个文本视图,作为…...

网站推广由什么样的人来做/乐天seo视频教程

客户这边,其中有一张如同上图所示的数据汇总表,然而需求是,需要将这张表数据做一个数据透视表,最后通过数据透视表中的数据,填写至系统数据库。拿到需求,首先就想到肯定不能直接用设计器去操作 Excel&#…...

民营医院建设网站/汕头seo外包机构

转载自:http://blog.sina.com.cn/s/blog_551d7bff0100sly9.html mysql -hhostname -Pport -uusername-ppassword -e 相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法。 #!/bin/bash HOSTNAME"…...

建筑行业资讯网站/cps推广是什么意思

局域网内的设备越来越多,用ip访问就比较麻烦了。另一方面我们用的公网的dns服务器可能会被投毒。这时候搭建一个本地的DNS服务器,想用什么域名就用什么域名,岂不是很舒服。拿起我们的树莓派,说干就干。准备材料1、树莓派&#xff…...