Linux軟體包(原始碼包和二進位製包)及其區別和特點

2022-03-10 04:08:13 字數 2648 閱讀 8007

linux 下的軟體包眾多,而且幾乎都是經 gpl 授權的,也就是說這些軟體都免費,振奮人心吧?而且更棒的是,這些軟體幾乎都提供源**(開源的),只要你願意,就可以修改程式源**,以符合個人的需求和習慣。當然,你要具備修改這些軟體的能力才可以。

原始碼包到底是什麼呢?其實就是軟體工程師使用特定的格式和語法所書寫的文字**,是人寫的計算機語言的指令,一般由英文單詞組成。是不是有點暈?

其實源**程式是程式設計師寫的計算機指令,符合特定的格式和語法。那麼,眾所周知,計算機可以識別的是機器語言,也就是二進位制語言,所以需要一名翻譯官把abed翻譯成二進位制機器語言。我們一般把這名翻譯官稱為編譯器,它的作用就是把人能夠識別的 abcd 翻譯成二進位制機器語言,讓計算機可以識別並執行。

原始碼包不用擔心收費問題,但是我並不會 c 語言怎麼辦?那一大堆的源**程式到底如何使用呢?這個原始碼包容易安裝嗎?原始碼包的安裝因為要把源**編譯為二進位制語言,所以安裝的時間較長。比如,在 windows 下大家可能安裝過 qq,現在的 qq 功能較多,程式相對較大,大概有 60 mb,但由於 qq 並不是以源**形式發布的,而是經過編譯之後發布的,所以只需要幾分鐘並經過簡單的配置就可以安裝成功。安裝時間較短(當然功能也基本不能自定義)。

在 linux 中安裝乙個 mysql 資料庫,這個資料庫的壓縮包大概有 23 mb,需要多長時間呢?答案是 30 分鐘左右(根據計算機硬體配置不同)。這樣看來編譯還是很浪費時間的,而且絕大多數使用者並不熟悉寫程式的語言,所以我們要祈禱程式不要報錯,否則對初學者來講很難解決。

為了解決原始碼包的這些問題,在 linux 中就出現了二進位製包,也就是原始碼包經過編譯之後的包。這種包因為編譯過程在發布之前已經完成,所以使用者安裝時速度較快(和 windows 下安裝軟體速度相當),而且報錯也大大減少。

二進位製包是 linux 下的預設安裝軟體包,所以有時我們也把二進位製包稱作預設安裝軟體包。目前主要有兩個系列的二進位製包管理系統:乙個是 red hat 上的 rpm 包管理系統;另乙個是 debian 和 ubuntu 上的 dpkg 包管理系統。本教程講的是 red hat 公司的 centos linux,所以我們主要講解 rpm 包管理系統。不過這兩個系列的二進位製包管理的原理與形式大同小異,可以觸類旁通。

說了這麼多,到底原始碼包和二進位製包哪個好呢?舉個例子,我們想做一套家具,原始碼包就像所有的家具完全由自己動手手工打造(手工編譯),想要什麼樣的板材、油漆、顏色和樣式都由自己決定(功能自定義,甚至可以修改源**)。想想就覺得爽,完全不用被黑心的廠商所左右,而且不用擔心質量問題(軟體更適合自己的系統,效率更高,更加穩定)。但是,所花費的時間大大超過了買一套家具的時間(編譯浪費時間),而且我自己真的有做木工這個能力嗎(需要對源**非常了解)?就算請別人定製好的家具,再由我自己組裝,萬一哪個部件不匹配(報錯很難解決),怎麼辦?

那麼二進位製包呢?也是我需要一套家具,可是我去商場買了一套(安裝簡單),家具都是現成的,不會有哪個部件不匹配,除非因為我沒有量好尺寸而導致放不下(報錯很少)。但是我完全不知道這套家具用的是什麼材料、油漆是否合格,而且家具的樣式不能隨意選擇(軟體基本不能自定義功能)。

好了,通過這個例子大家可以了解原始碼包和二進位製包之間的區別。

原始碼包的壓縮包中一般會包含如下內容:

源**檔案。

配置和檢測程式(如configure或config等)。

軟體安裝說明和軟體說明(如install或 readme)。

原始碼包的缺點如下:

安裝過程步驟較多,尤其是在安裝較大的軟體集合時(如 lamp 環境搭建),容易出現拼寫錯誤。

編譯時間較長,安裝時間比二進位制安裝要長。

因為軟體是編譯安裝的,所以在安裝過程中一旦報錯,新手很難解決。

二進位製包是在軟體發布的時候已經進行過編譯的軟體包,所以安裝速度比原始碼包快得多(和 windows 下軟體安裝速度相當)。但是因為已經進行通譯,大家也就不能在看到軟體的源**了。目前兩大主流的二進位製包系統是 dpkg 包和 rpm 包。

dpkg 包是由 debian linux 所開發的包管理機制,通過 dpkg 包,debian linux 就可以進行軟體包管理,主要應用在 debian 和 ubuntu 中。

rpm 包是由 red hat 公司所開發的包管理系統,功能強大,安裝、公升級、查詢和解除安裝非常簡單方便。

目前很多 linux 版本都在使用這種包管理方式,包括 fedora、centos、suse 等。linux 預設採用 rpm 包來安裝系統,所以常用的 rpm 包都在安裝光碟中。

rpm 包的優點如下:

包管理系統簡單,只通過幾個命令就可以實現包的安裝、公升級、查詢和解除安裝。

安裝速度比原始碼包安裝快得多。

rpm 包的缺點如下:

經過編譯,不能在看到源**。

功能選擇不如原始碼包靈活。

依賴性。有時我們會發現,在安裝軟體包 a 時需要先安裝 b 和 c,而在安裝 b 時需要先安裝 d 和 e。這就需要先安裝 d 和 e,再安裝 b 和 c,最後才能安裝 a。比如,我買了乙個漂亮的燈具,打算安裝在客廳裡,可是在安裝燈具之前,客廳需要有頂棚,並且頂棚需要刷好油漆。安裝軟體和裝修及其類似,需要有一定的順序,但是有時依賴性會非常強。

看到裡,我們發現gnu/linux不同發行版之間有著不同的二進位製包格式,為什麼linux發行版之間不能有乙個統一的二進位制軟體包標準?

**自:

linux軟體包管理之原始碼包和RPM包的區別

原始碼包優點 1 開源,如果有足夠的能力,可以修改源 2 可以自由選擇安裝所需功能 3 軟體是編譯安裝,所以更加適合自己的系統,更加穩定,效率更高 4 解除安裝方便 缺點 1 安裝步驟比較多,尤其是安裝較大的軟體集合是 如lamp環境搭建 容易2 出現拼寫錯誤 3 編譯時間長 4 因為是編譯安裝,報...

原始碼編譯安裝軟體包

1 準備編譯環境,linux中絕大多數軟體的原始碼都是用c語言寫的,少部分用c 或其他語言編寫。因此想要編譯源 需要先按照gcc編譯器和gcc c 編譯器。安裝編譯器和常用庫 yum groupinstall y development tools yum install y gcc gcc c a...

linux軟體包管理 yum原始碼包

1 優缺點 優點 開源 自由選擇所需的功能 編譯安裝,穩定性好 效率高,解除安裝方便 缺點 安裝步驟多,時間長 幾個g安裝要3天,報錯新手很難解決 2 yum命令 檢視 yum list 檢視所有可用軟體包列表 yum search 關鍵字 安裝 yum y install 包名 y 自動回答yes...