在ubuntu上安裝yum會怎樣?

不知道在ubuntu上安裝yum後會怎樣?反過來在centos上安裝apt-get又會怎樣?有人試過沒?


回答你的問題之前先來談談這個yum及apt的安裝過程。

使用yum/apt之前,你很可能會遇到配置源(ubuntu下一般內置的就比較好,所以可能很少人手動配置),那這個源是什麼呢,就是告訴apt/yum,安裝軟體的時候你要從哪裡下載。比如你使用163的源,然後你apt-get/yum install xxx的時候,就從你的源配置文件中讀取位置(這裡是163的伺服器),然後可能在第一次會更新本地資料庫(這個資料庫中記錄163伺服器上擁有的軟體包,軟體包的依賴情況等),本地更新完了就從本地緩存資料庫中讀取依賴情況以及軟體包的具體url,然後就會下載到本地緩存目錄。下載完成後執行安裝操作。

說到安裝操作,就要談談兩種方式獲取到的包的區別。yum獲取到的是rpm,apt獲取的是deb,其實你都可以看成是一個壓縮包。裡面有對應的軟體。因為開發者不一樣,所以兩種軟體包的解包方式不一樣,和gz,rar包差不多,需要特定的命令去解,rpm包是rpm命令,deb是dpkg命令。

那解開後能不能通用呢( 比如把deb解開後放到rhel中運行)。這個也不是不行但是要考慮到很多因素,假設包中是經過編譯的二進位文件(就像windows下的可執行文件),那麼就要考慮到依賴。如果是腳本文件就要好些,因為大部分腳本兼容性都比較好。

這個依賴,就比較複雜了,當然也可以簡單的說說,和windows的.dll類似,linux也有動態鏈接庫文件,後綴一般為so,某些軟體可能會依賴這些庫,本來你的系統glibc是2.12版本的,而你移植過來是需要2.14版本的,你會發現運行不了。當然,是可以解決的,只是解決起來也麻煩

好了,回到yum/apt了,apt/yum可以自動解決依賴,但是有個問題,比如剛剛那個移植過來的軟體,你安裝的時候回提示glibc版本過低需要升級,但是升級就意味著你升級過後,原有的依賴glibc的軟體,會發現glibc版本過高,可能不兼容,然後就衝突了,到底是你要滿足舊的軟體還是滿足新的軟體呢。如果你全交給apt/yum解決,結果是軟體遇到大更新,更新結果軟體衝突咱先不說,你就為了安裝一個apache,導致你下載幾百兆甚至幾個G的東西,你這不是更麻煩了嗎。如果你真有需要,你可以先apt-get source之類的命令下載源碼,放到另一個系統中嘗試編譯,或者apt-get download下載deb包然後解開,拷貝到另一個系統,嘗試手動解決依賴。

你的問題理論上可以實現,但是很少人會去實現,反正我沒做過。不過也並不一定不值得去做。很多時候別人說的,和實際情況會不一樣,實踐出真理。


推薦閱讀:

公司新發了一個 Dell 本,安裝 Ubuntu 還是 Arch Linux?
Linux上有沒有類似 Win下 Notepad++ 的軟體?
怎麼下載 Linux 系統?
Terminal, PyCharm常用快捷鍵
個人雲伺服器建設——(3)Ubuntu16.04安裝WordPress

TAG:操作系統 | Linux | Ubuntu |