Linux軟件安裝方式 - Tarball&RPM&YUM

軟件安裝簡介概念詳解# 概念詳解- 開放源碼: 程序碼, 寫給人類看的程序語言, 但機器并不認識, 所以無法執行;- 編譯器: 將程序碼轉譯成為機器看的懂得語言, 就類似翻譯者的角色;- 可可執行文件: 經過編譯器變成二進制程序后, 機器看的懂所以可以執行的文件;- make: 作用是開始進行源代碼編譯;- configure: 一般用來生成 Makefile, 為下一步的編譯做準備;- Tarball軟件: 所謂的 Tarball 文件, 其實就是將軟件的所有源代碼文件先以 tar 打包, 然后再以壓縮技術來壓縮, 通常最常見的就是以 gzip 來壓縮;- Tarball: linux系統下最方便的打包工具, 以tar這個指令來打包與壓縮的檔案;- RPM: 全名是"RedHat Package Manager"簡稱則為 RPM; 通過預先編譯并打包成為 RPM 文件格式后, 再安裝軟件的一種方式;- SRPM: SRPM 所提供的套件內容并沒有經過編譯, 提供的是原始碼;其中SRPM中包含了所有 RPM 檔案所提供的數據;- YUM: Yum是一個交互式的、基于RPM的包管理器; 它可以自動執行系統更新, 包括依賴關系基于"倉庫"元數據的分析和廢棄處理;# 常用相關命令- file: 用于識別文件的類型, 也可以用來辨別一些內容的編碼格式, 通過分析文件頭部信息中的標識來顯示文件類;- type: 用來顯示指定命令的類型, 判斷給出的指令是內部指令還是外部指令;# 軟件安裝方式##Tarball方式- 取得原始文件: 將 tarball 文件在 /usr/local/src 目錄下解壓縮;- 取得步驟流程: 進入新創建的目錄下面,去查閱 INSTALL 與 README 等相關文件內容(很重要的步驟) ;- 相依屬性軟件安裝: 根據 INSTALL/README 的內容察看并安裝好一些相依的軟件(非必要) ;- 創建 makefile: 以自動偵測程序(configure 或 config)偵測作業環境,并創建 Makefile 這個文件;- 編譯: 以 make 這個程序并使用該目錄下的 Makefile 做為他的參數配置文件 , 來進行 make(編譯或其他)的動作;- 安裝: 以 make 這個程序,并以 Makefile 這個參數配置文件,依據 install 這個標的(target)的指定來安裝到正確的路徑;##RPM方式- 將 RPM 由廠商的網頁下載下來;- 解決 RPM 包管理依賴;- 通過 RPM -ivh 安裝軟件;##YUM方式- 配置網絡(網絡可通);- 修改數據源;- 通過 yum install命令安裝軟件;目前在 Linux 界軟件安裝方式最常見的有兩種,分別是:

  • dpkg:這個機制最早是由 Debian Linux 社群所開發出來的, 通過 dpkg 的機制,Debian 提供的軟件就能夠簡單的安裝起來, 同時還能提供安裝后的軟件信息, 實在非常不錯;只要是衍生于 Debian 的其他 Linux distributions 大多使用 dpkg 這個機制來管理軟件的,包括 B2D, Ubuntu 等等;
  • RPM:這個機制最早是由 Red Hat 這家公司開發出來的, 后來實在很好用, 因此很多 distributions 就使用這個機制來作為軟件安裝的管理方式; 包括 Fedora, CentOS, SuSE 等等知名的開發商都是用這咚咚;
istribution 代表軟件管理機制使用指令線上升級機制(指令)Red Hat/FedoraRPMrpm, rpmbuildYUM (yum)Debian/UbuntuDPKGdpkgAPT (apt-get)RPM 與 SRPM區別:
文件格式文件名格式直接安裝與否內含程序類型可否修改參數并編譯RPMxxx.rpm可已編譯不可SRPMxxx.src.rpm不可未編譯之源代碼可
file 命令使用
# 查看系統的文件$ file /bin/bash/bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=9223530b1aa05d3dbea7e72738b28b1e9d82fbad, stripped# 是 binary 且是可以執行的時候, 就會顯示可執行文件類別 (ELF 64-bit LSB executable), 同時會說明是否使用動態函數庫 (shared libs);# 查看系統提供的文件$ file /etc/init.d/network/etc/init.d/network: Bourne-Again shell script, ASCII text executable# 如果是一般的 script , 就會顯示出 text executables 之類的字樣;命名規范Linux安裝包命名規范,通過 rp-pppoe-3.11-5.el7.x86_64.rpm 查看文件的意義:
  • rp-pppoe: 軟件名稱;
  • 3.11: 軟件版本信息;
  • 5: 釋出版本次數;
  • el7.x86_64: 操作硬件平臺;
  • rpm: 擴展名;
平臺名稱適合平臺說明i386幾乎適用于所有的 x86 平臺,不論是舊的 pentum 或者是新的 Intel Core 2 與 K8 系列的 CPU 等等,都可以正常的工作!那個 i 指的是 Intel 相容的 CPU 的意思,至于 386 不用說,就是 CPU 的等級啦!i586就是針對 586 等級的計算機進行最優化編譯 。那是哪些 CPU 呢?包括 pentum 第一代 MMX CPU, AMD 的 K5, K6 系列 CPU (socket 7 插腳) 等等的 CPU 都算是這個等級;i686在 pentun II 以后的 Intel 系列 CPU ,及 K7 以后等級的 CPU 都屬于這個 686 等級! 由于目前市面上幾乎僅剩 P-II 以后等級的硬件平臺,因此很多 distributions 都直接釋出這種等級的 RPM 文件 。x86_64針對 64 位的 CPU 進行最優化編譯設置 , 包括 Intel 的 Core 2 以上等級 CPU,以及 AMD 的 Athlon64 以后等級的 CPU,都屬于這一類型的硬件平臺 。noarch就是沒有任何硬件等級上的限制 。一般來說,這種類型的 RPM 文件 , 里面應該沒有 binary program 存在, 較常出現的就是屬于 shell script 方面的軟件 。Tarball&RPM&YUMTarball

推薦閱讀