rpm 檔轉 deb 檔
接下來我們示範如何將 .rpm 檔轉換為 .deb 檔,讓 Debian 系列的 Linux 可以使用,使用的測試環境為 :
lsb_release -a
No LSB modules are available. Distributor ID: elementary OS Description: elementary OS Freya Release: 0.3.2 Codename: freya
這個系統中的 shells 有這一些:
cat /etc/shells
/bin/sh /bin/dash /bin/bash /bin/rbash
以下我們示範從 CentOS 6 的套件庫下載 zsh 的 .rpm 檔,使用 Alien 把 .rpm 檔轉換成 .deb 檔來安裝。
Step 1
從 CentOS 7 的套件庫下載 zsh 的 .rpm 檔:
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/zsh-4.3.11-4.el6.centos.x86_64.rpm
Step 2
使用 Alien 將 .rpm 檔轉換為 .deb 檔:
sudo alien --to-deb --scripts zsh-4.3.11-4.el6.centos.x86_64.rpm
這時候可能會有這樣的警告訊息:
warning: zsh-4.3.11-4.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
這是套件簽署的問題,可以不用管它。正常來說,這樣就會產生 .deb 擋了。
Step 3
使用 dpkg
安裝產生出來的 .deb 檔:
sudo dpkg -i zsh_4.3.11-5_amd64.deb
安裝完成後,查看一下可用的 shells:
cat /etc/shells
輸出為:
# /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash /bin/zsh
實際執行 zsh
測試:
zsh --version
輸出為:
zsh 4.3.11 (x86_64-redhat-linux-gnu)
看起來正常可以執行,這樣就完成了。
處理器架構問題
如果我們手上套件的處理器架構與系統的處理器架構不同,將 .rpm 檔轉為 .deb 檔時,就會出現這樣的錯誤訊息:
zsh-4.3.11-4.el6.centos.i686.rpm is for architecture i386 ; the package cannot be built on this system
通常若遇到這樣的問題是沒有辦法使用的,最好的方式是再找找看有沒有符合自己系統處理器架構的 .rpm 套件可以使用。
如果想要強制它產生套件的話,可以用另一種方式:
sudo alien -g --script zsh-4.3.11-4.el6.centos.i686.rpm
Directories zsh-4.3.11 and zsh-4.3.11.orig prepared.
接著進入套件的目錄中,修改 debian/control
這個設定檔:
cd zsh-4.3.11 sudo vi debian/control
debian/control
的檔案內容會像這樣:
Source: zsh Section: alien Priority: extra Maintainer: GTWang <gtwang@gtwang-linux> Package: zsh Architecture: i386 Depends: ${shlibs:Depends} Description: A powerful interactive shell The zsh shell is a command interpreter usable as an interactive login shell and as a shell script command processor. Zsh resembles the ksh shell (the Korn shell), but includes many enhancements. Zsh supports command line editing, built-in spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and more. . (Converted from a rpm package by alien version 8.90.)
把 i386
改為自己處理器的架構,例如 amd64
:
Architecture: amd64
然後儲存檔案並離開。接著執行:
sudo debian/rules binary
產生 .deb 檔,這個過程中會有很多輸出訊息,正常的話最後一行會有這樣的訊息:
dpkg-deb:把套件 `zsh' 製作為 `../zsh_4.3.11-5_amd64.deb'。
這樣就表示已經成功在上一層目錄中產生 .deb 檔了,不過雖然這樣可以產生 .deb 檔,也可以安裝,但不表示可以正常使用,通常不同處理器架構的執行檔會使用不同的函式庫,如果系統上沒有經過特別的設定,也是沒辦法正常使用的。
參考資料:Tecmint
繼續閱讀: 12