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
相关推荐
strongwyy1 小时前
9、nRF52xx蓝牙学习(pca10056.h学习)
单片机·嵌入式硬件·学习
每天题库1 小时前
2025 年江苏保安员职业资格考试经验分享
学习·安全·考试·题库·考证
viperrrrrrrrrr76 小时前
大数据学习(105)-Hbase
大数据·学习·hbase
行思理8 小时前
go语言应该如何学习
开发语言·学习·golang
oceanweave9 小时前
【k8s学习之CSI】理解 LVM 存储概念和相关操作
学习·容器·kubernetes
吴梓穆11 小时前
UE5学习笔记 FPS游戏制作43 UI材质
笔记·学习·ue5
学会870上岸华师11 小时前
c语言学习16——内存函数
c语言·开发语言·学习
XYN6112 小时前
【嵌入式面试】
笔记·python·单片机·嵌入式硬件·学习
啊哈哈哈哈哈啊哈哈12 小时前
R3打卡——tensorflow实现RNN心脏病预测
人工智能·深度学习·学习
KangkangLoveNLP12 小时前
深度探索:策略学习与神经网络在强化学习中的应用
人工智能·深度学习·神经网络·学习·机器学习·自然语言处理