linux系统第三章- 安装及管理程序

1、rpm命令格式

RPM软件可以实现几乎所有的功能,新增,删除,更新等

2、查询

查询已安装的软件包

选项功能效果
rpm -qa显示当前系统中以RPM方式安装的所有软件列表
rpm -q 软件名查询指定软件是否安装
rpm -qi 软件名查询指定软件包的名称、版本、许可协议、用途描述等详细信息
rpm -ql 软件名显示指定的软件包在系统中安装的所有目录、文件列表
rpm -qc 软件名列出已安装的指定软件的配置文件
rpm -qd 软件名列出已安装的指定软件的软件包文档所在位置
rpm -qR 软件名列出已安装的指定软件的的依赖的软件包及文件
rpm -qf 软件名查看指定的文件或目录是由哪个软件包所安装的
rpm -qpd查询未安装指定软件包的位置
rpm -qpi查询未安装指定软件包的完整详细信息
rpm -qpl查询未安装指定软件包的文件列表
rpm -qpc查询未安装指定软件包的配置文件位置

例子

[root@localhost system]# rpm -qa
#查询所有的已rpm方式安装的软件列表

[root@localhost data]# rpm -q httpd
#查看httpd有没有安装
httpd-2.4.6-67.el7.centos.x86_64

[root@localhost data]# rpm -qi httpd
[root@localhost data]# rpm -qi tree 
#查看httpd的详细信息

[root@localhost data]# rpm -ql httpd
[root@localhost data]# rpm -ql tree 
#目录或文件列表

[root@localhost data]# rpm -qc httpd
#配置文件位置

[root@localhost data]# rpm -qd tree 
#软件包文档所在位置
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

[root@localhost data]# rpm -qR tree 
#查看依赖包
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

[root@localhost Packages]# rpm -qf /usr/bin/ls
#查看命令程序由那个包安装的
coreutils-8.22-18.el7.x86_64

[root@localhost Packages]# rpm -qpi tree-1.6.0-10.el7.x86_64.rpm 
#查看未安装软件的
[root@localhost Packages]# rpm -qpc httpd-2.4.6-67.el7.centos.x86_64.rpm 
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d/00-base.conf6
/etc/httpd/conf.modules.d/00-dav.conf

3、挂载

mount 设备 加文件夹路径 (已存在且是空的文件夹,原来的数据将被隐藏)

挂载规则

1.一个挂载点同一时间只能挂载一个设备

2.一个挂载点同一时间挂载了多个设备,只能看到最后一个挂载设备的数据,其他设备将被隐藏

3.一个设备可以同时挂载到多个挂载点

4.通常挂载点一般是已存在的空的目录

选项


-t fstype 指定要挂载的设备上的文件系统类型,:ext4,xfs
-r readonly,只读挂载
-w read and write, 读写挂载,此为默认设置,可省略
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
-L 'LABEL' 以卷标指定挂载设备
-U 'UUID'UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上
-o options:(挂载文件系统的选项),多个选项使用逗号分隔

[root@localhost mnt]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost mnt]# cd /mnt/
##重新进入下有时不显示

[root@localhost mnt]# ls
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

[root@localhost mnt]# cd /opt/
[root@localhost opt]# umount /mnt
[root@localhost opt]# ls /mnt/
/dev/sr0    /mnt    iso9660     defaults    0 0     
设备文件     挂载点    文件类型     默认挂载方式(读写)备份 

4、安装、卸载、升级

rpm [选项] rpm软件包

选项效果
-i安装一个新的RPM软件包
-U升级某个软件包,若未安装则进行安装
-F升级某个软件包,若未安装过则直接结束
-h在安装过程中显示以#号显示读条
-v显示安装过程的详细信息
–force强制安装某个软件包
-e卸载指定的软件
–nodeps在安装或升级、卸载一个软件包时,不检查与其他包的依赖关系
[root@localhost Packages]#rpm -e tree
[root@localhost Packages]#rpm -ive tree

[root@localhost Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm 
#进入
错误:依赖检测失败:
	httpd-tools = 2.4.6-67.el7.centos 被 httpd-2.4.6-67.el7.centos.x86_64 需要

5、yum仓库

先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装

yum需要依赖于环境,依赖于服务端和客户端,允许跨网络

服务器:

1.RPM包(Packages文件夹中)

2.元数据(repodata文件夹:目录 (软件的目录),1.软件的依赖关系,2.软件的位置)

最终形成两个文件夹Packages (包文件夹一般取名packages)和 repodata(元数据文件夹)

客户端

1.编写客户端配置文件

仓库类型

1.光盘的基本仓库

2.epel扩展仓库

5.1 yum仓库实现过程

在这里插入图片描述

详情见具体yum仓库的搭建

5.2 yum的基础命令

命令总结

命令不加关键字加入关键字、软件包、软件包组
yum list显示所有可用的包单个可安装的包
yum info显示所有可用包的信息单个具体信息
yum search\模糊查找所有的相关信息
yum provides\精确查找
yum install\安装具体软件包
yum update所有软件升级需要的更新源具体软件升级
yum remove\卸载具体软件
yum history产看当前yum操作历史
yum history undo加入序号卸载序号里安装的软件
yum history redo加入序号重新执行序号里的操作

6、dpkg包管理系统

6.2 简要介绍DPKG

dpkg(Debian Package)是 Debian 和 Ubuntu 系统的基础包管理工具,用于安装、卸载、查询 .deb 软件包。它是 apt(高级包管理工具)的底层工具,但不会自动处理依赖关系

相当于时Ubuntu的“rpm”

  • dpkg是 Debian 及其衍生发行版(如 Ubuntu)默认的低层包管理工具
  • 用于安装、构建、删除、查询 .deb 格式的包
  • 它不解决依赖关系

特点:

  • 仅管理 本地 deb 安装包,不负责自动下载依赖;
  • 执行速度快,适合脚本和自定义包管理任务;
  • 与 APT 协同工作:APT 用于处理依赖并自动下载包,最终还是调用 dpkg 完成安装。

语法:

dpkg [选项] <软件包>

常见选项

选项作用
-i安装.deb软件包
-r卸载软件包(保留配置文件)
-p完全卸载软件包(删除配置文件)
-l列出已安装的软件包
-s查看指定的软件包的状态
-L列出软件包安装文件路径
-S查找某个文件属于哪个软件包

7、 APT包管理系统

APT(Advanced Package Tool)是 Debian 系和 Ubuntu 系 Linux 发行版中的一个包管理工具,用于简化软件包的安装、更新和卸载过程。了解 APT 仓库的工作原理有助于更好地理解如何管理和维护系统中的软件包。以下是 APT 仓库的基本原理。

7.1 APT仓库的概述

7.1.1 APT仓库的优势

  • 自动化依赖处理:APT 自动处理复杂的依赖关系,避免用户手动解决依赖问题。
  • 集中管理:APT 通过集中仓库管理系统的软件包,简化了软件的安装和维护工作。
  • 一致性和安全性:APT 使用签名和认证机制确保从仓库下载的软件包是可信的,并且来自官方或可靠的来源。

7.1.2 APT仓库的组成部分

  • 二进制包(deb):这是可以直接安装的软件包,已经经过编译和打包,可以直接在系统中使用。
  • 源代码包(deb-src):包含源代码,可以用于编译和定制软件包。通常开发者或需要特定版本的用户使用。
  • 包清单(Package List):包含仓库中所有软件包的列表,描述了软件包的名称、版本、依赖关系、安装大小等。
  • 索引文件(Index Files):用于加速软件包查找和依赖关系解析,APT 会先下载这些索引文件到本地。

7.1.3 APT仓库的原理

在服务器上先复制所有DEB包,然后用APT的分析工具genbasedir根据每个DEB 包的包头(Header)信息对所有的DEB包进行分析,并将该分析结果记录在文件夹base内的一个DEB 索引清单文件中,一旦APT 服务器内的DEB有所变动,要使用genbasedir产生新的DEB索引清单。客户端在进行安装或升级时先要查询DEB索引清单,从而获知所有具有依赖关系的软件包,并一同下载到客户端以便安装。当客户端需要安装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压缩文件后,会将其解压置放于 /var/cache/apt/,而客户端使用apt-get install或apt-get upgrade命令的时候,就会将这个文件夹内的数据和客户端计算机内的DEB数据库比对,知道哪些DEB已安装、未安装或是可以升级的

7.2 APT仓库文件解析

APT 仓库源配置文件决定了 Ubuntu 系统从哪些服务器下载和更新软件包。主要的配置文件包括

  • /etc/apt/sources.list
  • /etc/apt/sources.list.d/ 目录下的文件

APT 会读取 /etc/apt/sources.list文件和 /etc/apt/sources.list.d/目录下的所有文件。只要文件中的格式正确,APT 都会将其内容作为仓库源配置来处理。也就是说,即使文件不以 .list结尾,APT命令仍然会读取和处理这些文件

7.2.1 配置文件

APT 的主配置文件/etc/apt/sources.list,用于定义系统的主要软件源。每一行定义一个仓库源,格式如下:

deb [选项] http://服务器地址/ubuntu 发行版名称 分支名称
deb-src [选项] http://服务器地址/ubuntu 发行版名称 分支名称

  • deb:表示二进制软件包(已编译好,可以直接安装)。
  • deb-src:表示源代码包(需要编译)。
  • [选项]:可选,指定仓库源的附加选项,如认证密钥。[trusted=yes]
  • http://服务器地址/ubuntu:软件仓库服务器的URL。
  • 发行版名称:系统版本代号,如 noble(Ubuntu 24.04) 、focal(Ubuntu 20.04)、bionic(Ubuntu 18.04)

分支名称:软件包的分支,如 main、universe、restricted、multiverse

  • main:Canonical 官方支持的自由开源软件。
  • universe:社区维护的自由开源软件
  • restricted:Canonical 支持但非自由开源的软件,如某些硬件驱动
  • multiverse:非自由软件,可能因版权或法律问题无法在所有国家使用

7.3 基础命令

选项作用
apt list列出所有的安装包
apt search 软件包搜索软件包
apt show 软件包查看软件包的详细信息
apt-cache madison 软件名查看仓库中指定软件的所有版本
apt depends 软件名查看软件的依赖
apt install 软件名安装软件
apt remove 软件包卸载软件
apt autoremove 软件包解决依赖关系
apt remove --purge 软件包删除配置文件
apt purge 软件包卸载并删除配置文件
apt update更新曾仓库
apt download 软件只下载软件

7.3.1 apt 与apt -get

Debian 使用apt 工具集来管理包系统,apt-get 是其中一个常用的命令行工具,另外一款较为流行的命令行与 GUl兼顾的工具是 aptitude ,之前最常用的 Linux包管理命令都被分散在了 apt-get、apt-cache和 apt-config 这三条命令中

在 2014年apt命令发布第一个稳定版,Ubuntu 16.04 引入新特性之一便是 apt 命令,apt 命令解决了命令过于分散的问题,它包括 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和aptconfig 命令中很少用到的功能。在使用 apt 命令时,用户不必再由 apt-get转到 apt-cache 或 apt-config,提供管理软件包所需的必要选项

apt相当于 apt-get、apt-cache和 apt-config 中最常用命令选项的集合apt 具有更精减但足够的命令选项,而且参数选项的组织方式更为有效。此外,启用的几个特性也非常有帮助。例如:可以在使用 apt 命令安装或删除程序时看到进度条,apt 还会在更新存储库数据库时提示用户可升级的软件包个数

apt与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令,也即可用 apt 替换部分apt-get 系列命令,但不是全部

apt 命令被取代的命令命令的功能
apt installapt-get install安装软件包
apt removeapt-get remove移除软件包
apt purgeapt-get purge移除软件包及配置文件
apt updateapt-get update刷新存储库索引
apt upgradeapt-get upgrade升级所有可升级的软件包
apt autoremoveapt-get autoremove自动删除不需要的包
apt full-upgradeapt-get dist-upgrade在升级软件包时自动处理依赖关系
apt searchapt-cache search搜索应用程序
apt showapt-cache show显示安装细节
apt list列出包含条件的包(已安装,可升级等)
apt edit-sources编辑源列表
apt-cache madison docker-ce查看仓库中的指定软件的所有版本
apt dependsapt-cache depends查看文件的依赖

ubuntu与centos建立本地yum仓库均在yum仓库的搭建中体现,在此就不再过多赘述。

linux是需要不断练习的,韶华易逝,劝君惜取少年时,大家共勉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值