Linux学习_12

第十一章 管理Linux软件包和进程

主要包括源码下载安装软件,PRM管理工具,YUM/DNF管理工具

源码下载安装软件

源码文件:是指包含计算机程序源代码的文本文件。源代码是用特定编程语言编写的人类可读指令,它描述了计算机程序的逻辑、算法和功能实现。程序员通过编写源代码来创建软件应用程序、操作系统、驱动程序、库等各种计算机程序。
特点:高度可定制性,获取最新版本和功能,增强对软件的理解和控制
安装过程:

安装依赖工具和库,例如gcc,gcc-c++

获取源码(.tar.gz.tar.bz2.zip

解压源码包

分析安装环境(./configure)

编译软件(make)

安装软件(make install)

RPM管理工具

RPM概念

由Red Hat公司提出的一种软件包管理标准

是Linux各发行版中应用最广泛的软件包格式之一(还有debian的发行版deb安装包)

RPM安装软件要求:

软件安装环境必须与打包软件环境一致

必须满足软件依赖性

软件卸载时必须小心,最底层软件不能先卸载

RPM软件包命名格式:

如:zsh-5.0.2-14.el7.x86_64.rpm

RPM包相关网站:

Rpmfind mirror

RPM Search
RPM软件安装

rpm -参数 软件包名

参数

安装过程:

读取PRM软件包头部数据,进行软件依赖性查询

若满足条件则安装否则安装失败

例:安装nginx

[root@localhost ~]# wget http://nginx.org/packages/rhel/9/x86_64/RPMS/nginx-1.24.0-1.el9.ngx.x86_64.rpm

[root@localhost ~]# ls
Desktop                                  phpMyAdmin-5.2.1-all-languages
Documents                                Pictures
Downloads                                Public
google-chrome-stable_current_x86_64.rpm  QQ_3.2.13_241104_x86_64_01.rpm
libXScrnSaver-1.2.3-10.el9.x86_64.rpm    Templates
Music                                    Videos
nginx-1.24.0-1.el9.ngx.x86_64.rpm

[root@localhost ~]# rpm -ivh nginx-1.24.0-1.el9.ngx.x86_64.rpm -y

卸载:

[root@localhost ~]# rpm -e linuxqq 

RPM查询

rpm --q 包名 # -q常与下面参数组合使用

[root@localhost ~]# rpm -q httpd
httpd-2.4.57-8.el9.x86_64
[root@localhost ~]# rpm -ql gcc
/usr/bin/c89
/usr/bin/c99
/usr/bin/cc
/usr/bin/gcc
/usr/bin/gcc-ar
/usr/bin/gcc-nm
......
[root@localhost ~]# rpm -qf /usr/bin/ls
coreutils-8.32-35.el9.x86_64

YUM/DNF管理工具

概念:

YUM:RHEL9中默认使用的软件批量管理工具由原版本的yum换成了速度更快的dnf(DNF = Dandified YUM),原有的yum命令仅为dnf的软链接,依旧可以使用。

[root@localhost ~]# ll `which yum`
lrwxrwxrwx. 1 root root 5 Oct 26  2023 /usr/bin/yum -> dnf-3

功能:

在线下载、 安装、 卸载、 升级rpm软件包

自动查找并解决rpm包之间的依赖关系,一次性安装所有具有依赖关系的rpm包,而无需管理员逐个、 手工地去安装每一个rpm包

原理:

系统会去读取/etc/yum.repos.d/ 目录下的.repo 结尾的文件,从该文件中读取以下内容实现装

包:

包含各种rpm安装文件的软件仓库(rhel8开始有两个仓库,rhel7只有一个仓库)

BaseOS存储库:提供一套核心的底层操作系统功能,为基础软件安装库

AppStream存储库:包括额外的用户空间应用程序、运行时语言和数据库

[root@localhost ~]# dnf repolist all
[root@localhost ~]# dnf list all
[root@localhost ~]# dnf info httpd

# 安装、更新包和包组
dnf install [-y] 包名
dnf update [-y] 包名 
dnf groupinstall 包组名
# 卸载软件包
dnf remove [-y] 包名 
# 搜索文件由哪个包产生
dnf provides 文件名
dnf whatprovides /etc/fstab 
# 模糊搜索包名
dnf search 模糊包名 
# 清空缓存
dnf clean packages all 

配置本地DNF源

[root@localhost /]# mkdir /haha
[root@localhost /]# mount /dev/cdrom /haha/
[root@localhost /]# cd /haha/
[root@localhost haha]# ls
AppStream  EULA              images      RPM-GPG-KEY-redhat-beta
BaseOS     extra_files.json  isolinux    RPM-GPG-KEY-redhat-release
EFI        GPL               media.repo
[root@localhost haha]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
[root@localhost yum.repos.d]# vim haha.repo 

[AppStream]
name=AppStream
baseurl=file:///haha/AppStream
gpgcheck=0
enabled=1

[BaseOS]
name=BaseOS
baseurl=file:///haha/BaseOS
gpgcheck=0
enabled=1

[root@localhost yum.repos.d]# dnf makecache
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

AppStream                                         3.1 MB/s | 3.2 kB     00:00    
BaseOS                                            2.7 MB/s | 2.7 kB     00:00    
Metadata cache created.
[root@localhost yum.repos.d]# dnf repolist
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

repo id                                  repo name
AppStream                                AppStream
BaseOS                                   BaseOS
相关推荐
王夏奇1 小时前
C代码—单元测试中的覆盖率—学习笔记
笔记·学习·单元测试
雷神乐乐1 小时前
Flume学习
hadoop·学习·flume
向上的车轮1 小时前
ODOO学习笔记(8):模块化架构的优势
笔记·python·学习·架构
HC182580858322 小时前
“倒时差”用英语怎么说?生活英语口语学习柯桥外语培训
学习·生活
学习路上_write3 小时前
FPGA/Verilog,Quartus环境下if-else语句和case语句RT视图对比/学习记录
单片机·嵌入式硬件·qt·学习·fpga开发·github·硬件工程
非概念3 小时前
stm32学习笔记----51单片机和stm32单片机的区别
笔记·stm32·单片机·学习·51单片机
无敌最俊朗@4 小时前
stm32学习之路——八种GPIO口工作模式
c语言·stm32·单片机·学习
EterNity_TiMe_4 小时前
【论文复现】STM32设计的物联网智能鱼缸
stm32·单片机·嵌入式硬件·物联网·学习·性能优化
L_cl5 小时前
Python学习从0到1 day28 Python 高阶技巧 ⑤ 多线程
学习
前端SkyRain5 小时前
后端Node学习项目-用户管理-增删改查
后端·学习·node.js