OrangePi KunPengPro
| linux
系统下软件包管理
时间:2024年6月7日06:30:44
文章目录
- `OrangePi KunPengPro` | `linux`系统下软件包管理
- 1.参考
- 2.静态软件包的管理
- 2-1.软件包的命名
- 2-2.软件包的优先级
- 2-3.软件包的状态
- 2-4.软件包的依赖性关系
- 2-5.获取系统中已安装的软件包信息
- 2-6.获取未安装的软件包(Deb包)文件信息
- 2-7.制作一个软件包
- 制作Debian(.deb)软件包的步骤:
- 注意事项:
- 3.`yum`(软件包管理器)
- 3-1.yum 源
- 3-2.yum配置文件
- 3-3.yum命令
- 安装软件包
1.参考
2.yum命令详解和使用
2.静态软件包的管理
Debain Linux首先提出“软件包”的管理机制-Deb软件包。
DEB软件包是Linux系统中,特别是在基于Debian的发行版(如
Debian
、Ubuntu
、Linux Mint
等)中常见的一种软件分发和安装格式。以下是关于DEB软件包的详细解释:
- 简介:
DEB
软件包是一种二进制软件包,包含了已经编译过的程序、库、配置文件以及其他必需的资源。- 这种软件包格式最初是为
Debian
发行版设计的,但后来被许多其他基于Debian
的Linux
发行版所采用。DEB
软件包使用.deb
文件扩展名,旨在简化软件的分发、安装和升级。
- 组成结构:
DEB
包本身由三部分组成:
- 数据包(
data.tar.XXX
):包含实际安装的程序数据。这里的“XXX
”是经过压缩后的后缀名,如gzip
格式的“gz
”。- 安装信息及控制脚本包(
control.tar.gz
):包含deb的安装说明、标识、脚本等。它通常包含以下文件:
control
:记录软件标识、版本号、平台、依赖信息等数据。preinst
:在解包data.tar.gz前运行的脚本。postinst
:在解包数据后运行的脚本。prerm
:卸载时,在删除文件之前运行的脚本。postrm
:在删除文件之后运行的脚本。
- 二进制数据:包括文件头等信息,一般看不到,但在某些软件中打开可以看到。
- 压缩方式:
DEB
包本身可以使用不同的压缩方式,其中最常用的是gzip
格式(data.tar.gz
)。- 其他常见的压缩格式还包括
bzip2
和lzma
,其中lzma
的压缩率最高,但压缩需要的CPU
资源和时间都比较长。
- 安装方法:
- 在
Ubuntu
等基于Debian
的系统中,可以使用dpkg命令
或apt命令
来安装DEB软件包。
- 使用
dpkg
命令:通过终端进入包含.deb文件的目录,然后执行sudo dpkg -i example.deb
命令(其中“example.deb
”是软件包的名称)。- 使用apt命令:从Ubuntu 16.04开始,apt命令支持直接安装本地
.deb
文件,执行sudo apt install ./example.deb
命令(注意前面的“./”是必须的)。
- 特点:
DEB
软件包在Linux操作系统中类似于Windows中的软件包(msi
),几乎不需要复杂的编译即可通过鼠标点击或命令行安装使用。- 由于
Unix
类系统对权限、所有者、组的严格要求,而DEB
格式安装包又经常会涉及到系统底层的操作,所以权限等的设置尤其重要。
2-1.软件包的命名
Filename_Version-Reversion_Architecture.deb
Filename
:软件包名称
Version
:软件版本
Reversion
:修订版本
Architecture
:体系结构
2-2.软件包的优先级
NA
2-3.软件包的状态
NA
2-4.软件包的依赖性关系
NA
2-5.获取系统中已安装的软件包信息
NA
2-6.获取未安装的软件包(Deb包)文件信息
NA
2-7.制作一个软件包
手把手教你如何在linux环境下制作deb软件包 “
dep
” 通常指的是Go
语言的包管理工具,但如果您是在询问如何制作 Debian(.deb)软件包,那么下面是根据您的要求归纳的制作步骤:制作Debian(.deb)软件包的步骤:
- 创建工作目录:
- 首先,为您的软件包创建一个工作目录。这个目录通常会以您的软件包名称和版本号命名,便于组织和管理。
- 准备软件包内容:
- 将您的应用程序文件、配置文件、文档等放置在相应的子目录中,以模仿 Linux 系统的标准目录结构(如
/usr
,/usr/bin
,/etc
等)。
- 创建DEBIAN目录和控制文件:
- 在工作目录中创建一个名为
DEBIAN
的子目录(注意大写)。- 在
DEBIAN
目录下创建一个名为control
的文本文件。这个文件包含了软件包的元数据,如软件包的名称、版本、维护者信息、依赖关系等。
- 编写安装、升级和卸载脚本(如果需要):
- 如果您的软件包需要特殊的安装、升级或卸载步骤,您可以在
DEBIAN
目录下创建相应的脚本文件,如preinst
、postinst
、prerm
和postrm
。
- 构建软件包:
- 使用
dpkg-deb
命令来构建最终的.deb
文件。例如,在工作目录的上级目录中运行dpkg-deb --build 工作目录名
。- 这将生成一个
.deb
文件,您可以将其分发给用户进行安装。
- 测试软件包:
- 在构建完成后,务必在不同的环境中测试您的
.deb
软件包以确保其正常工作。- 检查安装、升级和卸载过程是否按预期进行,并确保软件包中的所有文件都被正确放置。
注意事项:
- 确保您的系统中安装了
dpkg-dev
包或其他必要的构建工具。- 遵循 Debian 软件包命名约定,即
<name>_<version>-<revision>_<architecture>.deb
。- 在编写控制文件和脚本时,确保遵循 Debian 的政策和标准。
如果您实际上是在询问 Go 语言的
dep
包管理工具的相关内容,请注意这与 Debian 软件包制作无关。dep
是一个用于管理 Go 项目依赖关系的工具,它可以帮助您获取、管理和锁定项目的依赖包版本。然而,这与制作.deb
软件包是两个完全不同的概念。
3.yum
(软件包管理器)
3-1.yum 源
[root@openEuler yum.repos.d]# pwd
/etc/yum.repos.d
[root@openEuler yum.repos.d]# ls
openEuler.repo
[root@openEuler yum.repos.d]# cat openEuler.repo
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.
[OS]
name=OS
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/EPOL/main/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler
[debuginfo]
name=debuginfo
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/debuginfo/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/debuginfo/$basearch/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/source/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/source/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/update/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler
[update-source]
name=update-source
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/update/source/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/source/RPM-GPG-KEY-openEuler
3-2.yum配置文件
[root@openEuler etc]# ls yum.conf -l
lrwxrwxrwx 1 root root 12 4月 17 16:10 yum.conf -> dnf/dnf.conf
[root@openEuler etc]# cat dnf/dnf.conf
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
这是一个
dnf.conf
文件的示例,它是 dnf(一个基于 RPM 的包管理器,常用于 Fedora、CentOS 和类似的 Linux 发行版)的配置文件。这个文件位于/etc/dnf/
目录下,并定义了 dnf 的默认行为。下面是对你给出的
dnf.conf
文件内容中各个选项的简要解释:
- gpgcheck=1:
- 这个选项表示当从仓库安装或更新软件包时,dnf 会检查 GPG 签名以验证软件包的完整性和来源。设置为 1 表示启用签名检查,设置为 0 则禁用。
- installonly_limit=3:
- 这个选项限制了在系统上“仅安装”的软件包(通常是内核版本)的数量。当安装新的“仅安装”软件包时,最旧的一个将被删除以保持此限制。这里的限制是 3,意味着最多可以有 3 个这样的软件包被保留。
- clean_requirements_on_remove=True:
- 当使用 dnf 移除一个软件包时,这个选项控制是否也移除那些仅作为依赖项被安装但不再被其他任何软件包需要的软件包。设置为 True 表示会这样做,设置为 False 则不会。
- best=True:
- 当有多个软件包版本可用时,这个选项控制 dnf 是否选择最新的版本。True 表示选择最新版本,False 则可能选择其他版本(但通常这种情况不常见,因为默认行为就是选择最新版本)。
- skip_if_unavailable=False:
- 这个选项控制当 dnf 尝试安装一个不可用的软件包时是否跳过它。设置为 False 表示如果软件包不可用,dnf 将报告错误并停止。设置为 True 则会跳过不可用的软件包并继续安装其他可用的软件包。
这些设置都是用来控制 dnf 的默认行为的,以确保你的系统以期望的方式更新和管理软件包。
3-3.yum命令
安装软件包