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)。

儘管基本的軟件包管理功能通過終端(控制台)中的命令具有更強大的功能,但是一直致力於盡最大努力使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 他說:

    沒有! 儘管我為該發行版創建了大約2個獨立的軟件包和許多腳本,但我不是DEBIAN的官方開發人員或直接貢獻者。 我希望將您告訴我的內容包含在另一篇文章中。 並感謝您的支持!

    DEBIAN是我最喜歡的發行版!

    1.    曼努埃爾·“文圖裡”·波拉斯·佩拉爾塔 他說:

      應該的! 🙂

  8.   亞歷杭德羅·托馬爾 他說:

    優秀的文章...恭喜,我是自由軟件的愛好者,我學習計算機科學,這非常有用
    波哥大的問候

  9.   奧斯卡 他說:

    非常感謝您的時間和耐心……以及分享!

    一聲問候!
    謝謝你!

  10.   Ing。Jose Albert 他說:

    非常感謝您的所有支持性評論,祝賀和動力!

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

    非常感謝您,至少對於我們仍然對這一主題了解很多的那些人。

  12.   巴魯阿 他說:

    非常感謝您的貢獻和諮詢。

  13.   薩維爾 他說:

    多麼好的安東尼奧朋友,可以理解和很好的使用...