【Linux】安装及管理程序

目录

一、Linux应用程序基础

1.应用程序与系统命令

2.典型应用程序的目录结构

3.软件包封装类型

二、RPM

1.RPM 软件包管理器

2.RPM软件包命名格式

3.RPM命令的格式

4.查询已安装的rpm软件信息

5.查询未安装的 RPM 软件包文件中信息

6.安装、升级、卸载 RPM 软件包

(1)格式:

(2)常用选项

7.维护RPM数据库

(1)重建 RPM 数据库

(2)导入验证公钥

三、YUM

四、源码编译安装软件


一、Linux应用程序基础

1.应用程序与系统命令

角色系统命令应用程序
文件位置

般在/bin和/sbin目录中,或为Shell内部指令

通常在/usr/bin、/usr/sbin 和/usr/local/bin、/usr/local/sbin目录中
主要用途完成对系统的基本管理工作,例如IP配置工具完成相对独立的其他辅助任务,例如网页浏览器
适用环境一般只在字符操作界面中运行根据实际需要,有些程序可在图形界面中运行
运行格式一般包括命令字、命令选项和命令参数通常没有固定的执行格式,由程序开发者自行定义

2.典型应用程序的目录结构

文件类型保存目录说明
普通可执行文件/usr/bin所有用户可执行
服务器程序、管理员程序文件/usr/sbin只有管理员可以执行
应用程序配置文件/etc通过rpm或yum方式安装的应用程序
日志文件/var/log系统日志
应用程序参考文档文件/usr/share/doc关于应用程序的参考文档等数据
应用程序手册页文件/usr/share/man执行文件及配置文件的 man 手册页

3.软件包封装类型

文件类型保存目录
RPM软件包扩展名为“.rpm”,适用于RHEL、CentOS等系统
DEB软件包扩展名为“.deb”适用于Ubuntu、Debian等系统
源代码软件包一般为“.tar.gz”".tar.bz2”等格式的压缩包包含程序的原始代码,需要编译安装
附带安装程序的软件包

软件包的扩展名不一,以TarBall格式的居多

在软件包中会提供用于安装的可执行程序或脚本文件,如install.sh、setup 等
安装时只需运行安装文件就可以根据向导程序的提示完成安装操作

二、RPM

1.RPM 软件包管理器

由Red Hat公司提出,被众多Linux发行版所采用

建立统一的文件数据库

详细记录软件包安装、卸载、升级等变化信息

自动分析软件包依赖关系

2.RPM软件包命名格式

bash-4.2.46-28.e17.x86_64.rpm

软件名称 版本号 发布次数 硬件平台 扩展名

3.RPM命令的格式

rpm命令能够实现几乎所有对RPM软件包的管理功能

执行“man rpm”命令可以获得关于rpm命令的详细帮助信息
rpm命令功能:查询、验证RPM软件包的相关信息·安装、升级、卸载RPM软件包;维护重建RPM数据库信息等综合管理操作

4.查询已安装的rpm软件信息

rpm -q【子选项】 【软件名】

常用选项

-qi显示已安装的指定软件的详细信息
-ql显示已安装的指定软件的文件列表
-qc列出已安装的指定软件的配置文件
-qd列出已安装的指定软件的软件包文档所在位置
-qR 列出已安装的指定软件的依赖的软件包及文件
-qf查询已安装的指定软件属于哪个安装包
[root@bogon ~]# rpm -q xz
xz-5.2.2-2.el7_9.x86_64
[root@bogon ~]# rpm -q gzip
gzip-1.5-11.el7_9.x86_64
[root@bogon ~]# rpm -q zip
zip-3.0-11.el7.x86_64

[root@bogon ~]# rpm -qa | grep nfs        #显示已安装的指定软件的详细信息
libnfsidmap-0.25-19.el7.x86_64
nfs4-acl-tools-0.3.3-21.el7.x86_64
nfs-utils-1.3.0-0.68.el7.2.x86_64
[root@bogon ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.68.el7.2.x86_64
[root@bogon ~]# rpm -qi nfs-utils
Name        : nfs-utils
Epoch       : 1
Version     : 1.3.0
Release     : 0.68.el7.2
Architecture: x86_64
Install Date: 2024年04月03日 星期三 00时34分10秒
Group       : System Environment/Daemons
Size        : 1114412
License     : MIT and GPLv2 and GPLv2+ and BSD
Signature   : RSA/SHA256, 2021年10月15日 星期五 22时00分36秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : nfs-utils-1.3.0-0.68.el7.2.src.rpm
Build Date  : 2021年10月14日 星期四 20时29分29秒
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://sourceforge.net/projects/nfs
Summary     : NFS utilities and supporting clients and daemons for the kernel NFS server
Description :
The nfs-utils package provides a daemon for the kernel NFS server and
related tools, which provides a much higher level of performance than the
traditional Linux NFS server used by most users.

This package also contains the showmount program.  Showmount queries the
mount daemon on a remote host for information about the NFS (Network File
System) server on the remote host.  For example, showmount can display the
clients which are mounted on that host.

This package also contains the mount.nfs and umount.nfs program.

[root@bogon ~]# rpm -qc nfs-utils        #列出已安装的指定软件的配置文件
/etc/gssproxy/24-nfs-server.conf
/etc/modprobe.d/lockd.conf
/etc/nfs.conf
/etc/nfsmount.conf
/etc/request-key.d/id_resolver.conf
/etc/sysconfig/nfs
/var/lib/nfs/etab
/var/lib/nfs/rmtab
/var/lib/nfs/state
/var/lib/nfs/xtab

5.查询未安装的 RPM 软件包文件中信息

rpm -qp【子选项】 RPM包文件

常用选项

-qpi查询指定软件包的详细信息
-qpl 查询指定软件包的文件列表
-qpc查询指定软件包的配置文件
-qpd查询指定软件包的软件包文档的位置

 

[root@bogon ~]# rpm -qf /etc/httpd/conf/httpd.conf
httpd-2.4.6-97.el7.centos.5.x86_64
[root@bogon ~]# cd /mnt/Packages/
[root@bogon Packages]# ls | grep httpd-2.4.6
httpd-2.4.6-97.el7.centos.5.x86_64.rpm
[root@bogon Packages]# rpm -qpi httpd-2.4.6-97.el7.centos.5.x86_64.rpm        #查询指定软件包的详细信息
警告:httpd-2.4.6-97.el7.centos.5.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
Name        : httpd
Version     : 2.4.6
Release     : 97.el7.centos.5
Architecture: x86_64
Install Date: (not installed)
Group       : System Environment/Daemons
Size        : 9821136
License     : ASL 2.0
Signature   : RSA/SHA256, 2022年03月25日 星期五 02时21分56秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : httpd-2.4.6-97.el7.centos.5.src.rpm
Build Date  : 2022年03月24日 星期四 22时59分42秒
Build Host  : x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.

6.安装、升级、卸载 RPM 软件包

(1)格式:

rpm 【选项】 RPM包文件
rpm -ivh RPM软件包

(2)常用选项

-i安装一个新的 RPM 软件包
-U升级某个软件包,若未安装过,则进行安装
-F升级某个软件包,若未安装过,则放弃安装
-h在安装或升级软件包的过程中,以“#”号显示安装进度
-v显示软件安装过程中的详细信息
--force强制安装某个软件包,比如要安装版本更旧的软件包
-e卸载指定名称的软件包
--nodeps在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系
[root@bogon Packages]# ls | grep zlib-devel        #安装一个新的 RPM 软件包,显示软件安装过程中的详细信息,并且以“#”号显示安装进度
zlib-devel-1.2.7-20.el7_9.x86_64.rpm
[root@bogon Packages]# rpm -ivh zlib-devel-1.2.7-20.el7_9.x86_64.rpm
警告:zlib-devel-1.2.7-20.el7_9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
        软件包 zlib-devel-1.2.7-20.el7_9.x86_64 已经安装
[root@bogon Packages]#

[root@bogon Packages]# ls | grep pcre-devel        #升级某个软件包,若未安装过,则进行安装
pcre-devel-8.32-17.el7.x86_64.rpm
[root@bogon Packages]# rpm -U pcre-devel-8.32-17.el7.x86_64.rpm
警告:pcre-devel-8.32-17.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
        软件包 pcre-devel-8.32-17.el7.x86_64 已经安装
[root@bogon Packages]#

7.维护RPM数据库

(1)重建 RPM 数据库

当 RPM 数据库发生损坏,可通过 重建RPM数据库 修复
rpm --rebuilddb        

或者

rpm --initdb

(2)导入验证公钥

在没有导入用于数字签名验证的公钥文件之前,安装光盘中的一部分RPM软件包时会报错。需要向RPM数据库中导入位于光盘根目录下的公钥文件

mount /dev/sr0 /mnt/
rpm --import /mnt/RPM-GPG-KEY-CentOS-7

注意:

RPM数据库:用于记录在Linux系统中安装、卸载、升级应用程序的相关信息,由RPM包管理系统自动完成维护,一般不需要用户干预

当RPM数据库发生损坏(误制文件、非法关机、病当破坏等导致),且Linux系统无法自动完成修复时,将导致无法使用rpm命令正常地安装、卸载及查询软件包,这时可以使用-rebuilddb或 initdb重建RPM数据库

在Linux/Unix应用领域,相当一部分软件厂商会对发布的软件包进行数字签名,以确保软件的完整性、合法性,对于用户来说,可以利用软件官方提供的公钥文件,自动对下载的软件包进行验证,如果在安装软件时出现验证失败的提示,则表示该软件包可能已经被非法算改

三、YUM

先配置本地yum源仓库
mount /dev/sr0 /mnt/                     #把光盘挂载到/mnt目录下

cd /etc/yum.repos.d/                          #备份系统自带yum仓库
mkdir repos.bak                                 
mv *.repo repos.bak

cd /etc/yum.repos.d/
vim local.repo
[local]                                                 #仓库类别
name=local                                        #仓库名称
baseurl=file:///mnt                              #指定URL 访问路径为光盘挂载目录
enabled=1                                          #开启此yum源,此为默认项,可省略
gpgcheck=0                                       #不验证软件包的签名

yum clean all && yum makecache     #删除yum缓存并更新

 

四、源码编译安装软件

编译安装的步骤
./config检测安装环境
个性化指定安装目录
个性化设置安装选项
make把人类的高级语言翻译成二进制语言
make install把安装好的程序放到指定的安装目录中

1.使用 yum 安装编译软件环境的依赖包  gcc  gcc-c++  make  ....

2.官网下载,解压软件包
tar xf XXX.tar.gz

3.进入软件包目标使用 ./configure 配置软件的安装目录、安装模块等
cd 软件包目录
./configure --prefix=软件安装目录  --XXX                 #可通过 --help 获取帮助

4.make 编译,将源代码转换成可执行的二进制程序文件

5.make install 安装,复制二进制程序文件和软件配置文件等到软件安装目录

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

gitlab:Could not resolve host

fatal: unable to access http://xxx.git/: Could not resolve host: yyy Git-fatal: unable to access ‘https://gitlab.XX.git/‘: Could not resolve host: gitlab.XX.com.cn_drone unable to access .git/: could-CSDN博客 原因&#xff1a; 克隆的时候使用的是这里的HTT…

jenkins+docker集成harbor实现可持续集成

目录 一、前言 二、Harbor介绍 2.1 什么是Harbor 2.1.1 Harbor架构图 2.2 Harbor 特征 2.3 Harbor 核心组件 2.4 Harbor使用场景 三、Harbor部署 3.1 安装docker compose 3.1.1 安装方式一 3.2 基于python3 pip安装docker compose 3.2.1 安装python3 3.2.2 安装pyt…

我的新书,在西西弗书店上架了!

大家好&#xff0c;我是程序员小灰。今天告诉大家一个好消息&#xff0c;我的新书在西西弗书店上架了&#xff01; 熟悉小灰的朋友都知道&#xff0c;我以前是京东的一名程序员&#xff0c;现在全职投入到IT领域的自媒体创作。在2019年&#xff0c;我出版了人生中的第一本书《漫…

MacBook Pro找不到fffmpeg

报错信息 ffmpeg: command not found 在macOS上&#xff0c;可以使用Homebrew通过运行brew install ffmpeg 这期间可能涉及brew的更新

使用 MTK 迁移 Oracle 11g 数据库 至 MogDB 3.0 运维指南

一、环境概述 本次是进行Oracle到MogDB测试迁移&#xff0c;具体生产迁移&#xff0c;还需考虑更多步骤细节&#xff0c;请查看MogDB官方文档。 操作系统版本内核版本数据库类型数据库版本字符集数据库端口源端CentOS release 6.8 (Final)2.6.32-642.el6.x86_64单机Oracle 11.2…

[C++]哈希应用之位图布隆过滤器

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;c大冒险 总有光环在陨落&#xff0c;总有新星在闪烁 前言&#xff1a; 我们之前…

【Spring进阶系列丨第九篇】基于XML的面向切面编程(AOP)详解

文章目录 一、基于XML的AOP1.1、打印日志案例1.1.1、beans.xml中添加aop的约束1.1.2、定义Bean 1.2、定义记录日志的类【切面】1.3、导入AOP的依赖1.4、主配置文件中配置AOP1.5、测试1.6、切入点表达式1.6.1、访问修饰符可以省略1.6.2、返回值可以使用通配符&#xff0c;表示任…

【深度学习实战(3)】打印自己模型的推理帧率

一、FPS(每秒传输帧数-Frames Per Second) FPS就是目标网络每秒可以处理&#xff08;检测&#xff09;多少帧(多少张图片),FPS简单来理解就是图像的刷新频率&#xff0c;也就是每秒多少帧,假设目标检测网络处理1帧要0.02s&#xff0c;此时FPS就是1/0.0250 其中Processing tim…

配置DHCP服务器实现为动态客户端和静态客户端分配不同网络参数

相关学习推荐&#xff1a;什么是DHCP?为什么要使用DHCP&#xff1f; 华为HCIP课程【视频教程】&#xff1a;华为HCIP必考题&#xff1a;DHCP协议原理与配置 组网需求 如图1所示&#xff0c;Router作为企业出口网关&#xff0c;PC和IP Phone为某办公区办公设备。为了方便统一管…

五子棋:不会下五子棋也没关系,会用Java写五子棋就行

关注公号“微澜网络”获取完整源代码&#xff01; 效果展示&#xff1a; 目录 效果展示&#xff1a; 导语&#xff1a; 游戏介绍&#xff1a; 程序设计&#xff1a; 1.游戏规则和功能&#xff1a; 2.用户界面设计&#xff1a; 3.程序架构设计&#xff1a; 4.可扩展性和灵…

ES增强框架easy-es

因为最近做的功能是关于舆情的,所以数据量比较大的,本来打算用MySQL做时间分表来做,但是经过一段时间的测试,发现数据量太大,用时间分表不能满足性能的要求,所以决定将数据存储改为ES,但是短时间内改底层框架又不是一个小工程,时间上不允许,所以找到了一个很合适的框架,他跟myb…

记一次Oracle DG备库实例宕分析

一、问题现象 同事反馈国外点在国内的XXX备库实例宕&#xff0c;尝试将该实例重启&#xff0c;结果重启报如下错误&#xff0c;未能正常启动该数据库。 Standby crash recovery failed to bring standby database to a consistent point because needed redo hasnt arrived yet…

Python | 宝妈自述:离职4年,求职屡遭拒后,如何成功重返职场

我是⼀名已经30岁的宝妈。 怀孕后检查出来是双胎&#xff0c;为了宝宝健康&#xff0c;毅然决然辞职待产。 孩⼦出生后&#xff0c;因为是龙凤胎&#xff0c;婆婆⼀个人照顾不过来&#xff0c;再加上其中⼀个⾝体较弱&#xff0c;为了专注照顾宝宝&#xff0c;就这样⼀直做了…

(四)qt中使用ffmpeg播放视频,可暂停恢复

一、在qt中添加ffmpeg库及头文件 INCLUDEPATH /usr/local/ffmpeg/include LIBS -L/usr/local/lib -lavutil -lavcodec -lavformat -lswscale 二、详细代码 FFempegVideoDecode 视频解码类&#xff08;放入线程中&#xff09; ffmpegvideodecode.h #ifndef FFMPEGVIDEODE…

SQL——多表连接查询

若一个查询同时涉及两个或两个以上的表&#xff0c; 则称之为连接查询&#xff08;在FROM子句中体现)。 参与连接的表可有多个&#xff0c;但连接操作在两个表之间进行&#xff0c;即两两连接。 连接查询包括&#xff1a; 内连接 等值连接&#xff1a;用“”比较被连接列的列值…

Mistral AI突围:开源大模型Mixtral 8x22B颠覆行业格局

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

SVN的介绍

首先SVN是什么&#xff1a; Apache下的一个开源的项目Subversion&#xff0c;通常缩写为 SVN&#xff0c;是一个版本控制系统。 版本控制系统是一个软件&#xff0c;它可以伴随我们软件开发人员一起工作&#xff0c;让我们编写代码的完整的历史保存下来。 目前它的各个版本的…

RTC的基本概念以及相关例程

实时时钟(RTC) 北京时间跟伦敦时间错8个小时 BKP简介 BKP本质上是RAM存储器&#xff0c;没有掉电不丢失的能力。 VBAT的作用就是&#xff0c;当VDD断电时&#xff0c;BKP会切换到VBAT供电&#xff0c;这样可以继续维持BKP里面的数据&#xff0c;如果VDD断电&#xff0c;VBAT也…

YOLO系列 | 正负样本分配策略

文章目录 1 Max-IoU matching(YOLOv1~V3)2 Multi-Anchor策略(YOLOv4)3 基于宽高比的领域匹配策略(YOLOv5)4 simOTA(Simple Optimal Transport Assignment)匹配策略(YOLOX, YOLOv6)5 领域匹配simOTA(YOLOv7)6 TaskAlignedAssigner匹配策略(YOLOv8, YOLOv9)参考资料 1 Max-IoU ma…

Appium的使用:混合APP切换上下文

网上别的文章说要把移动端的webview设置成调试模式,才能看到下图信息。 但我这里是直接在Android Studio新建了一个空白活动,然后放的webview控件,写的webview代码,直接部署到模拟器上,在确定adb可以连接到模拟器后,在桌面浏览器输入chrome://inspect/#devices后就可以看…