二進位制發行包還是編譯安裝
這引出了一個真正的問題——在linux下安裝軟體時,使用二進位制發行包還是編譯安裝?
當然,php是屬於比較極端的例子,它依賴大量的c語言庫,我編譯python、mysql、nginx時都是很簡單的,沒出過什麼問題,但這還只是編譯過程,在使用過程中出現問題呢?每個人的編譯結果都會有細微差別,各種軟體搭配到一起,出現的問題更是千奇百怪,一個全部是編譯安裝的軟體堆疊(指lamp這樣的組合),很可能出現的問題是別人很少遇到的,網上也不一定找得到解決方法,如果對linux、c、c++不太懂,想自己解決是非常困難的。
使用二進位制發行包則可以極大的縮小問題出現的範圍。程式檔案的一致,使得使用者碰到的問題也類似,很容易在網上找到解決方法。事實上,因為二進位制發行包使用者眾多,出現問題很快被反饋、修復,也就很少出問題。因此,應該儘量先安裝二進位制發行包,在二進位制發行包版本實在太低或預設安裝缺乏某些編譯引數,導致無法提供某些功能,或者要大規模部署,需要很深入的系統調優時,才有必要編譯安裝。
[@more@]以前對於原始碼編譯安裝軟體的方式還是很喜歡的,然而實際使用中我發現,編譯安裝會出現各種各樣的問題,比如centos下編譯PHP,centos5.2中除了curl-devel,還必須安裝好e2fsprogs-devel krb5-devel libidn-devel openssl-devel才可以把curl編譯進php,5.3版則不需要,但5.3版centos中make時又要加 ZEND_EXTRA_LIBS='-liconv' ,否則可能出現 undefined reference to 'libiconv_open' 錯誤,5.2版則不需要,如果php依賴的libmcrypt和mhash也是編譯安裝,可能還需要把生成的檔案連結到/usr/lib資料夾下...你說頭大不頭大。其結果就是每次軟體升級,我都要檢視有沒有新的編譯錯誤出現,一旦出現新錯誤又要趕快去解決,而且這類瑣碎的問題對我自身技術的提高沒有任何幫助,大多數情況只不過是彌補開發人員的小疏漏,比如以前碰到過開發者在ubuntu下編譯測試過,但有使用者發現到centos下就報錯,原因是二者的gcc不一樣,原始碼裡有1句c的程式碼在ubuntu下的gcc通得過,centos下通不過……這時我才理解為什麼有專家建議普通使用者不要自己編譯安裝各種軟體,儘量直接使用二進位制發行包。
當然,php是屬於比較極端的例子,它依賴大量的c語言庫,我編譯python、mysql、nginx時都是很簡單的,沒出過什麼問題,但這還只是編譯過程,在使用過程中出現問題呢?每個人的編譯結果都會有細微差別,各種軟體搭配到一起,出現的問題更是千奇百怪,一個全部是編譯安裝的軟體堆疊(指lamp這樣的組合),很可能出現的問題是別人很少遇到的,網上也不一定找得到解決方法,如果對linux、c、c++不太懂,想自己解決是非常困難的。
使用二進位制發行包則可以極大的縮小問題出現的範圍。程式檔案的一致,使得使用者碰到的問題也類似,很容易在網上找到解決方法。事實上,因為二進位制發行包使用者眾多,出現問題很快被反饋、修復,也就很少出問題。因此,應該儘量先安裝二進位制發行包,在二進位制發行包版本實在太低或預設安裝缺乏某些編譯引數,導致無法提供某些功能,或者要大規模部署,需要很深入的系統調優時,才有必要編譯安裝。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23595918/viewspace-1035054/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 安裝編譯好的二進位制mysql並更改路徑編譯MySql
- centos7環境下二進位制編譯安裝ffmpegCentOS編譯
- MySQL 安裝指南 二進位制安裝MySql
- 【Redis】原始碼編譯二進位制包Redis原始碼編譯
- PostgreSQL二進位制安裝流程SQL
- Mysql二進位制包安裝MySql
- MySQL linux二進位制安裝MySqlLinux
- 二進位制檔案安裝安裝etcd
- mysql安裝-----二進位制包安裝及解除安裝MySql
- 什麼是二進位制?二進位制如何轉換?
- Mysql for Linux安裝配置之——二進位制安裝MySqlLinux
- centos 7 二進位制安裝mysql 5.7.25CentOSMySql
- PostgreSQL 10.23 二進位制安裝SQL
- 使用二進位制包來安裝MySQLMySql
- ubuntu mysql5.6二進位制安裝UbuntuMySql
- MySQL5.7 windows二進位制安裝MySqlWindows
- 二進位制方式安裝mysql 5.6.15MySql
- window環境的openssl二進位制發行版安裝
- 03二進位制包安裝與介紹
- 二進位制方式安裝 k8sK8S
- RHEL 7.2 安裝二進位制MySQL 5.7.18MySql
- Linux安裝二進位制PHP7.2LinuxPHP
- yum安裝nginx-php-mysql二進位制NginxPHPMySql
- MySQL5.7 linux二進位制安裝MySqlLinux
- (OEL 6.3) Mysql6.5二進位制安裝MySql
- 二進位制安裝 Docker 以及 Docker ComposeDocker
- centos7二進位制方式安裝rabbitmqCentOSMQ
- Ubuntu 24.04 二進位制安裝 MySQL 8.0.20UbuntuMySql
- 二進位制備份還原案例
- CentOS7 安裝 MySQL8.0(二進位制)CentOSMySql
- mysql5.7 for windows二進位制安裝及配置MySqlWindows
- ASCII碼是幾位二進位制碼?ASCII
- 二進位制與二進位制運算
- 簡單二進位制編碼(SBE)
- 進位制詳解:二進位制、八進位制和十六進位制
- Windows 安裝 Scoop 來進行包管理WindowsOOP
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- MySQL 5.7 原始碼安裝、Yum倉庫安裝、RPM安裝、二進位制安裝MySql原始碼