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
相关推荐
山山而川粤11 分钟前
废品买卖回收管理系统|Java|SSM|Vue| 前后端分离
java·开发语言·后端·学习·mysql
TensorFlowGAN21 分钟前
华三预赛从零开始学习笔记(每日编辑,复习完为止)
笔记·学习·华三
Mephisto.java32 分钟前
【大数据学习 | Spark-Core】RDD的缓存(cache and checkpoint)
大数据·学习·spark
zmd-zk1 小时前
flink学习(3)——方法的使用—对流的处理(map,flatMap,filter)
java·大数据·开发语言·学习·flink·tensorflow
垂杨有暮鸦⊙_⊙2 小时前
阅读《先进引信技术的发展与展望》识别和控制部分_笔记
笔记·学习
埋头编程~3 小时前
【C++】踏上C++学习之旅(十):深入“类和对象“世界,掌握编程黄金法则(五)(最终篇,内含初始化列表、静态成员、友元以及内部类等等)
java·c++·学习
世伟爱吗喽4 小时前
NUXT3学习日记四(路由中间件、导航守卫)
学习
飞凌嵌入式5 小时前
飞凌嵌入式旗下教育品牌ElfBoard与西安科技大学共建「科教融合基地」
嵌入式硬件·学习·嵌入式·飞凌嵌入式
Red Red11 小时前
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网络·笔记·学习·安全·web安全
Natural_yz12 小时前
大数据学习17之Spark-Core
大数据·学习·spark