Linux 基础-5

软件包管理器

RPM

RPM (RedHat Package Manager) 红帽软件包管理器,用于软件的安装、查询、卸载、升级等工作。但是 RPM 软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个 RPM 包组成时需要确定软件安装顺序

软件依赖性

当安装软件 A 时,需要依赖软件 C。而若软件 C 需要依赖软件 B 时,安装软件 A 的顺序为 : B-C-A

rpm 包命名 : bash-3.0-19.2.i386.rpm

  • bash : 软件包名
  • 3.0-19.2 : 软件版本
  • i386 : 硬件架构
# RPM 命令
rpm [OPTION...]
# -q 查询指定软件包是否安装
# -qa 显示所有软件包
# -qi 查询指定软件包信息
# -ql 查询指定软件包所包含的文件列表
# -qf 查询文件所属的软件包
# -i 安装指定软件包
# -v 查询软件版本/安装时显示详细信息
# -h 安装时显示安装进度
# -e 卸载软件
# -U 更新指定软件包

DEB

DEB (Debian Package) 是由 Debian 项目开发的软件包格式,广泛用于 Debian 及其衍生的 Linux 发行版,如 Ubuntu 等,对应的软件包管理器是 dbkg

# dpkg 命令
dpkg [<option>...] <command>
# -i 安装软件包
# -r 卸载
# -P 卸载 (包括配置文件)
# -l 显示已安装的软件包
# -L 查询指定软件包所包含的文件列表
# --confiugre 指定安装配置

YUM 和 DNF

YUM (Yellowdog Updater Modified) 是基于 RPM 的 Linux 发行版中广泛使用的软件包管理器,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。DNF (Dandified YUM) 是 YUM 的一个改进版本,提供了更好的性能和更现代化的功能

# YUM 命令
yum [options] COMMAND
yum update # 更新所有已安装的软件包
yum upgrade # 更新所有已安装的软件包(包含依赖)
yum install package_name # 安装指定的软件包
yum remove package_name # 卸载指定的软件包
yum purge package_name # 卸载指定的软件包(包含配置)
yum search search_term # 搜索软件包
yum info package_name # 显示指定软件包的详细信息
yum list installed # 列出所有已安装的软件包
yum clean all # 清理缓存,释放磁盘空间
yum makecache # 重载缓存
# -y 自动回复 "yes" 并继续执行

# DNF 命令
dnf [options] COMMAND
dnf update # 更新所有已安装的软件包
# 由于 DNF 旨在替代 YUM,因此大多数 YUM 命令在 DNF 中仍然有效

APT

APT (Advanced Package Tool) 高级包管理工具是为 Debian 及其衍生发行版设计的工具,和 YUM、DNF 一样会自动安装所有必需的依赖包,简化软件的安装、更新和维护过程

# APT 命令
apt [options] command
apt update # 更新所有已安装的软件包
apt upgrade # 更新所有已安装的软件包(包含依赖)
apt install package_name # 安装指定的软件包
apt remove package_name # 卸载指定的软件包
apt purge package_name # 卸载指定的软件包(包含配置)
apt search search_term # 搜索软件包
apt show package_name # 显示指定软件包的详细信息
apt list --installed # 列出所有已安装的软件包
apt autoremove # 自动删除不再需要的软件包
apt clean # 清理下载的软件包文件,释放磁盘空间
# -y 自动回复 "yes" 并继续执行

软件源

软件源通常指的是软件仓库的配置信息,包括仓库的 URL、名称、密钥等,这些信息告诉包管理器如何访问和验证软件包。在 Linux 发行版的包管理器中,软件源的配置文件通常位于特定的目录下

RedHat

对于基于 RPM 的系统,软件源配置文件通常以 .repo 扩展名存在于 /etc/yum.repos.d//etc/dnf.repos.d/ 目录下

# 描述
[baseos]
# 仓库名称
name=CentOS Stream $releasever - BaseOS
# 仓库 URL
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$stream/BaseOS/$basearch/os/
# 本地仓库
# baseurl=file:///media/cdrom/BaseOS
# 仓库启用状态
enabled=1
# 仓库的 GPG 校验
gpgcheck=1
# GPG 密钥
gpgkey=http://example.com/repo/RPM-GPG-KEY-my-repo

更新配置后需要使用 dnf makecache 来更新缓存

Debian

对于基于 Debian 的系统,软件源配置文件通常位于 /etc/apt/sources.list 文件或 /etc/apt/sources.list.d/ 目录下的文件中

# 默认的 Ubuntu 仓库
# deb [选项] <仓库地址> <发行版名称> [组件]
deb http://archive.ubuntu.com/ubuntu/ focal main restricted
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware

编辑配置后需要使用 apt update 来更新本地软件包索引

源码编译

用户从开发者那里获取最新的源代码,使用软件的最新功能。源码编译提供了高度的灵活性和定制性,但编译过程可能需要较长时间,需要用户安装和管理所有必需的编译工具和库,维护难度较大。操作步骤如下 :

配置环境

安装编译工具,如 gcc 编译器和 make 工具

# RedHat
yum groupinstall "Development Tools"
# Debian
apt install build-essential

获取软件源代码

使用 wgetgit 从官方网站、软件仓库获取软件的源代码。以 Nginx 为例

# wget
wget http://nginx.org/download/nginx-1.26.1.tar.gz

# 解压
tar -xzvf nginx-1.26.1.tar.gz
cd nginx-1.26.1.tar.gz

# 或者使用 Git 克隆源代码
git clone https://github.com/nginx/nginx.git
cd nginx

配置编译参数

使用 ./configure 命令来配置参数,例如指定安装路径等,生成 Makefile 文件

./configure \
    --prefix=/usr/local/nginx/ \
    --with-http_gzip_static_module

编译和安装

使用 make 命令将源代码编译成二进制文件

make

使用 make install 命令将二进制文件安装

make install

验证安装

/usr/local/nginx/sbin/nginx
ps -ef | grep nginx
上一篇
下一篇