DEBIAN中的软件包-第I部分(软件包,存储库和软件包管理器)。

问候,亲爱的网络阅读器,

这将是 系列10 相关 包装研究,这对于 GNU / Linux操作系统 一般而言,但专注于 发行版DEBIAN.

DEBIAN套餐

在第一部分中,我们将集中在概念上: 软件包,存储库和软件包管理器。

  • 套餐

软件包GNU / Linux操作系统 通常是 压缩文件 具有预定义的内部结构,有助于并允许其进行操作 软件管理工具(软件包管理器) 以舒适,安全,稳定和集中的方式在操作系统上实现其编译和/或安装,更新和/或消除。 一个包是 可编译的 如果您的安装直接基于您的源代码 (例如* .Tar.gz) o 可安装 如果您以针对特定架构或平台已编译的二进制文件执行此操作 (例如* .Deb).

大多数包装都随附 随附文件,其 安装前和安装后脚本,其 初始配置文件,其 资源文件,以及他们 二进制或源代码 提供您需要编译的所有内容。

大多数软件包格式都带有相应的格式 软件管理工具,最著名的是 为DEBIAN发行版创建的.deb 及其所有衍生产品,以及 由Red Hat为自己的发行版创建的.rpm,并像Fedora和Open SU​​SE一样派生。 也有 可编译包 Gentoo .ebuilds.

为特定发行版创建软件包的事实并不意味着只能在该发行版或派生版本中使用它,因为在任何其他发行版中都有专门的工具足以管理这些格式,因此可以使用他们。 在这些工具中,我们拥有: Dpkg,Apt-get,Aptitude,RPM,Emerge,Alíen等).

每个发行版都保留其 仓库中的包裹,在媒体和 CD / DVD 如在 远程服务器,这允许 通过网络(Internet)更新和安装全部或部分操作系统 从一个 安全可靠的位置(官方存储库) 除非绝对必要,否则避免去寻找未知(和不安全)的服务器。

每个发行版通常都会贡献自己的 安全软件包(补丁)和增强功能(更新),以便向他们提供 用户社区 大量的 集成到操作系统中的功能完善的软件。 至于 依存关系 在每个包装之间,通常 自动管理以避免潜在的问题 少一些专家用户。

编译还是安装? 关于编译的好处 与安装相反,可以说主要是为系统和二手软件指定编译选项,以更好地利用资源并适应用户/管理员的偏好, 和坏的 这个过程会变得多么缓慢和复杂。 由于一般而言 安装软件包(例如* .deb)非常快捷,容易,但 它通常没有很好地更新或调整到我们使用或计算机设备资源的发行版中。

如果您想进一步了解 DEBIAN套餐 我留下以下链接供您详细阅读:

  1. DEBIAN-套餐
  2. Debian开发人员专区
  3. Debian新开发者指南
  4. Debian软件包创建指南
  • 资料库

仓库很大 服务器(外部/内部) 他们表现得像 托管基于Linux的操作系统所需的应用程序(程序包)的数据库,无论是 旧的,当前的,新的或正在开发中,使用 包装经理。 所有这一切的目的是 保持操作系统最新 特别是在 安全补丁. 储存库可以是 两(2)种类型:官方和非官方.

基于Linux的操作系统(发行版) 它们通常具有一个文件,在该文件中,我们可以通过以下方式访问存储库列表(正式或不正式) 包装经理 为了你的 下载,安装,更新或删除。 该文件通常位于以下位置 / etc / package_manager_name / 哪里 “ Package_manager_name” 这通常是Distro的程序包管理器的名称。 例如在 DEBIAN将在/etc/apt/sources.list中.

官方存储库存储我们的发行版支持的应用程序包。 它们始终分为一个(分支和版本)结构,根据其创建者的策略,在非常严格的检查协议下保证(确保)它们包含的所有程序包均处于最佳状态且不代表安全风险或系统的稳定性,以及针对那些更高级或经验丰富的用户的新产品或在单独分支中的开发。

对于DEBIAN,存储库具有3个分支:

  • 主要: 分支机构存储官方Debian发行版中包含的所有软件包,根据 Debian自由软件准则。 官方的Debian发行版完全由该分支机构组成。
  • 贡献(贡献): 分支,用于存储软件包的创建者已授予其免费许可证,但它们依赖于其他非免费程序。
  • 非免费: 分支,用于存储具有某些苛刻许可条件的软件包,这些软件包会限制其使用或重新分发。

DEBIAN存储库分为以下版本:

  • 老稳定(老马St):  存储属于旧版稳定版DEBIAN的软件包的版本。 当前,它属于Wheezy版本。
  • 稳定:  存储属于DEBIAN当前稳定版本的软件包的版本。 当前,它属于Jessie版本。
  • 测试:  存储属于未来DEBIAN稳定版本的软件包的版本。 当前,它属于拉伸版本。
  • 不稳定: 存储属于将来正在持续开发和测试的软件包的软件包的版本,该软件包最终可能属于Version 测试中 由DEBIAN。 这始终属于SID版本。

注意: 很多时候,版本名称通常都带有前缀 “-更新” o “-建议的更新” 强调说 虽然它们属于该版本,但通常存储在此处 更多更新,因为它们来自 下一个更高版本。 在其他时候 安全资料库 前缀通常是 “/ 更新”.

可以按内容过滤DEBIAN存储库:

  • deb: 仅包含编译包的存储库。
  • deb-src: 仅包含可用编译包源代码的存储库。

DEBIAN的存储库示例:


#######################################################
# REPOSITORIOS OFICIALES DE LINUX DEBIAN 8 (JESSIE)
deb http://ftp.us.debian.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://ftp.us.debian.org/debian/ jessie-updates main contrib non-free
# deb http://ftp.us.debian.org/debian/ jessie-proposed-updates main contrib non-free
# deb http://ftp.us.debian.org/debian/ jessie-backports main contrib non-free
# deb http://www.deb-multimedia.org jessie main non-free
# aptitude install deb-multimedia-keyring
# ####################################################

注意: 那些以字符开头的行 »#« 他们是从包管理器中禁用的。 此字符也用于 插入评论资料库行说明 或应该用于的命令行 添加存储库密钥 描述。

  • 包装经理

过去,许多Linux软件包(程序)都作为源代码分发,需要转换(编译)成所需的程序或一组程序,以及它们各自的文档(手册页),配置文件和所有其他必要的东西。 。 但是,当前,大多数Linux Distros使用 程序包(预制程序或程序集),它们准备安装在所述发行版中。

有了这些 包管理工具 你可以轻松地 知道,下载,安装,更新和删除任何软件包e。 就我们而言 DEBIAN 我们将专注于 Apt-get,Aptitude,Apt和DPKG软件包管理器。 它同时使用DEBIAN和派生自DEBIAN的Distro(例如Ubuntu)。

尽管基本的软件包管理功能通过终端(Console)的命令具有更强大的功能,但是一直致力于尽最大努力使Linux易于使用的Linux开发人员已经将这些基本工具与其他工具进行了补充 具有图形用户界面的工具(GUI工具),它试图降低基本工具的可能复杂性,以免使最终用户复杂化。

但是基本上,它们都可以执行软件包上已经提到的相同基本操作。 基本的工具具有命令行功能,而其他工具则可以提供更加用户友好的界面。 它们都可以从Internet检索软件包,因为已安装软件包的信息通常保存在单个数据库中。

以下是每个命令中最有用和最常用的命令命令 包装经理:


Apt-get:

Actualizar Listas: apt-get update
Chequear actualización de Listas: apt-get check
Instalar paquete: apt-get install nombre_paquete
Reinstalar paquete: apt-get install --reinstall nombre_paquete
Actualizar Distro: apt-get upgrade / apt-get dist-upgrade / apt-get full-upgrade
Actualizar paquete: apt-get upgrade nombre_paquete
Actualizar paquetes usando dselect: apt-get dselect-upgrade
Eliminar paquetes: apt-get remove / apt-get autoremove
Purgar paquetes: apt-get purge
Conocer paquete: apt-cache show nombre_paquete / apt-cache showpkg nombre_paquete
Listar paquetes: apt-cache search nombre_paquete
Listar dependencias de un paquete: apt-cache depends nombre_paquete
Listar paquetes instalados: apt-cache pkgnames --generate / apt-show-versions
Validar dependencias incumplidas de un paquete: apt-cache unmet nombre_paquete
Configurar dependencias de un paquete: apt-get build-dep nombre_paquete
Descargar paquetes: apt-get source nombre_paquete
Corregir problemas post-instalación de paquetes: apt-get install -f
Forzar ejecución de orden de comando: apt-get comando  -y
Eliminar descargas de paquetes: apt-get clean
Eliminar paquetes obsoletos y sin usos: apt-get autoclean
Otros importantes: apt-file update / apt-file search nombre_paquete / apt-file list nombre_paquete

Nota: Para mayor información sobre este comando ejecute la orden de comando: man apt-get  
 

Aptitude:

Actualizar Listas: aptitude update
Instalar paquete: aptitude install nombre_paquete
Reinstalar paquete: aptitude reinstall nombre_paquete
Actualizar Distro: aptitude upgrade / aptitude safe-upgrade / aptitude full-upgrade
Actualizar paquete: aptitude upgrade nombre_paquete
Eliminar paquetes: aptitude remove
Purgar paquetes: aptitude purge
Listar paquetes: aptitude search nombre_paquete
Listar paquetes instalados / rotos: apt search [*] | grep "^i" / apt search [*] | grep "^B"
Configurar dependencias de un paquete: aptitude build-dep nombre_paquete
Descargar paquetes: aptitude download nombre_paquete
Corregir problemas post-instalación de paquetes: aptitude install -f
Forzar ejecución de orden de comando: aptitude comando  -y
Eliminar descargas de paquetes: aptitude clean
Eliminar paquetes obsoletos y sin usos: aptitude autoclean
Otros importantes: aptitude (un)hold, aptitude (un)markauto, why, why-not
Conocer paquete:
aptitude show nombre_paquete
aptitude show "?installed ?section(fonts)" | egrep '(Paquete|Estado|Versión)'
aptitude show "?not(?installed) ?section(fonts)" | egrep '(Paquete|Estado|Versión)'
aptitude show "?section(fonts)" | egrep '(Paquete|Estado|Versión)'

Nota: Para mayor información sobre este comando ejecute la orden de comando: man aptitude  

Apt:

Actualizar Listas: apt update
Instalar paquete: apt install nombre_paquete
Reinstalar paquete: apt install --reinstall nombre_paquete
Actualizar Distro: apt upgrade / apt full-upgrade
Actualizar paquete: apt upgrade nombre_paquete
Eliminar paquetes: apt remove / apt autoremove
Purgar paquetes: apt purge
Conocer paquete: apt show nombre_paquete
Listar paquetes: apt search nombre_paquete
Listar paquetes instalados / actualizables: apt list --installed / apt list --upgradeable
Corregir problemas post-instalación de paquetes: apt install -f
Forzar ejecución de orden de comando: apt comando  -y
Eliminar descargas de paquetes: apt clean
Eliminar paquetes obsoletos y sin usos: apt autoclean
Otros importantes: apt edit-sources

Nota: Para mayor información sobre este comando ejecute la orden de comando: man apt

DPKG:

Instalar paquete: dpkg -i nombre_paquete
Eliminar paquete: dpkg -r nombre_paquete / dpkg --force -r nombre_paquete / dpkg --purge -r nombre_paquete
Purgar paquete: dpkg -P nombre_paquete
Descomprimir paquete: dpkg --unpack nombre_paquete
Conocer paquete: dpkg -c nombre_paquete / dpkg --info nombre_paquete / dpkg -L nombre_paquete
Buscar archivos de paquetes instalados: dpkg -S nombre_archivo
Configurar paquetes: dpkg --configure nombre_paquete / dpkg --configure --pending / dpkg --configure -a
Listar paquetes: dpkg -l patrón_búsqueda / dpkg --get-selections nombre_paquete / dpkg --get-selections | grep -v deinstall > lista-paquetes-actuales.txt

好吧,到目前为止,我希望本文对您有所帮助。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   卡夫拉

    需要注意的是... gentoo .ebuilds本身不是软件包,它们是指示如何安装软件包的脚本,通常是从源代码中选择开发人员选择的软件包。

  2.   查帕拉尔

    极好的信息。 我会将其与已经在Debian上发布的其他文章一起保存,因为它们对我非常有用。 我感谢作者的出色工作和投入。

  3.   梅尔文

    出色的何塞·艾伯特(JoséAlbert),您真的很出色,恭喜您,并继续为我们提供指导

  4.   梅尔文

    很好,何塞·艾伯特(JoséAlbert)继续为我们祝贺

  5.   梅尔文

    很好的文章

  6.   文丘里

    感谢您的贡献,尽管有一些错误。 出于好奇,您是一个Debian开发人员或贡献者吗? 感谢您散布有关如何与Debian合作的信息,出于我的口味,有必要提及帮助合作进行软件包,安装程序,网页等的始终必要的翻译或修订的可能性。以后的交货也一样。

    对出版物的问候和鼓励。

  7.   Ing。Jose Albert

    没有! 我不是DEBIAN的官方开发人员或直接贡献者,尽管我为上述发行版创建了大约2个单独的程序包和许多脚本。 我希望在另一篇文章中加入您告诉我的内容。 并感谢您的支持!

    DEBIAN是我最喜欢的发行版!

    1.    曼努埃尔·“文图里”·波拉斯·佩拉尔塔

      应该的! 🙂

  8.   亚历杭德罗·托玛(Alejandro TorMar)

    优秀的文章...恭喜,我是自由软件的爱好者,我学习计算机科学,这非常有用
    波哥大的问候

  9.   奥斯卡

    非常感谢您的时间和耐心……以及分享!

    问候!
    谢谢!!!!

  10.   Ing。Jose Albert

    非常感谢您的所有支持性评论,祝贺和动力!

  11.   卡洛斯·雷耶斯(Carlos Reyes)

    非常感谢您,至少对于我们中那些仍然了解很多的人。

  12.   巴鲁阿

    非常感谢您的提交和咨询。

  13.   萨维尔

    多么好的安东尼奥朋友,可以理解和很好的使用...