1、首先是編譯環境,需要最基本的gcc,autotool工具,不同平台不同的安裝方式,具體可以網路一下
2、在linux下,開源軟體的編譯安裝會有固定的通用步驟:
3、對於在linux下編譯zlib請參考步驟2,相信你能行,加油
❷ 如何查看linux已安裝的編譯器及其版本
gcc -v、rpm -qa glibc、rpm -qa zlib。
FC6可以用這些命令,rpm -qa gcc glibc zlib。
補充:Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。
嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和資料庫的操作系統。
❸ Linux入門系列——軟體包管理
RedHat 系統中使用的是: rpm (redhat package manager) 現在稱:RPM is Package Manager
Debian : dpt
Ubuntu : apt
在安裝軟體的時候,有可能出現軟體包的相互依賴關系;所以紅帽公司推出了:yum(Yellowdog update modifier)
包的組成部分:
主包:
bind-9.7.1-1..e15.i586.rpm
子包:
bind-libs-9.7.1-1..e15.i586.rpm
bind-utils-9.7.1-1..e15.i586.rpm
包名:
PackageName-Version-Release.Arch.rpm
bind-major-minor-releases-release.arch.rpm
包名-主版本號-次版本號-發行號-rpm包的製作者的發行號.硬體平台.rpm
主版本號:重大改進;
次版本號:某個子功雀或能發生重大變化;
發行號:修改BUG,調整了一點功能;
bind-9.7.1-1.noarch.rpm 這里的noarch表示不區分硬體平台,32和64都可以使用;如果是ppc則是在PowerPc上使用的包;
# rpm -ivh /path/to/Package_Name
-i,--install 表示安裝
-v 表示顯示安裝過程的信息
-h 表示以#顯示安裝的進程,總數為50個;
-vv 顯示更詳細的過程;
--nodeps 安裝的時候忽略依賴關系;
--force 無論之前是否安裝過,都強制安裝,可以實現重裝、降級;
--replacepkgs 重新安裝,替換原有的安裝;
--oldpackage 對軟體包進行降級;
--test Do not install the package, simply check for and report potential conflicts. 不進行安裝,只測試看在安裝的時候有沒有依賴包要裝;
rpm -q soft_name
# rpm -q httpd
rpm -qa 查詢當前系統中已經安裝的rpm軟體包;
# rpm -qa |grep 『ssh*』
rpm -qi soft_name 查詢軟體包的安裝信息:
[root@ns2 rpm]# rpm -qi zlib-devel
Name : zlib-devel Relocations: /usr
Version : 1.2.3 Vendor: CentOS
Release : 4.el5 Build Date: 2011年05月11日 星期三 18時57分15秒
Install Date: 2013年07月21日 星升歲鎮期日 17時02分41秒 Build Host: builder10.centos.org
Group : Development/Libraries Source RPM: zlib-1.2.3-4.el5.src.rpm
Size : 269981 License: BSD
Signature : DSA/SHA1, 2011年09月04日 星期日 03時24分25秒, Key ID a8a447dce8562897
URL : http://www.gzip.org/zlib/
Summary : Zlib 開發的頭文件和庫。
Description :
zlib-devel 軟體包包括開發使用 zlib 壓縮和解縮庫的程序
所需的頭文件和庫。
[root@ns2 rpm]#
rpm -ql soft_name 查看該軟體包在系統中存放了哪些文件;
rpm -qf /path/to/file_name 查看該文件吵粗是由哪個rpm包生成的。
rpm -qc soft_name 查看指定rpm包安裝的配置文件的位置;
rpm -qd soft_name 查看指定rpm包安裝的幫助文件的位置;
rpm -q --scripts soft_name 查看指定rpm包在安裝、卸載、更新的前後,所要執行的shell腳本;
rpm -qp[i|l|d|c|] 即要加上一個「p」選項;
rpm -Uvh /path/to/package_name
如果安裝的指定的軟體包已經安裝過,則進行升級操作,如果沒有安裝過,則就使用指定的這個軟體包進行安裝;
rpm -Fvh /path/to/package_name
如果安裝過,則升級,否則不進行任何操作;
rpm -Fvh --oldpackage package_name 通常用這個來降級一個rpm包;
rpm -e package_name
--nodeps 強制卸載
rpm -V package_name 也可以使用--verify
通常用來檢查安裝後的文件是不是被修改過;
加密演算法:
對稱加密: 加密和解密使用同一個key
非對稱加密:有一對密鑰(公鑰和私鑰),公鑰大家都可以知道,私鑰只有持有人知道;公鑰加密私鑰解,私鑰加密公鑰也可以解。不能由公鑰摧出私鑰,也不能由私鑰摧出公鑰;私鑰還用來做簽名,因為只有私鑰持有人自己才有;
單向加密:使用這種加密演算法加密後,是不可以再還原的。通常用它來做數據完整性的驗證,也就是驗證數據在傳輸的過程中有沒有被別人修改過。
在紅帽的系統中,/etc/pki/rpm-gpg/目錄下面存放了紅帽公司的gpg-key(相當於公鑰),所以只需要把這個gpgkey導入到系統中就可以驗證了。導入方法如下:
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
接下來就可以對將要安裝的rpm包進行驗證了:
# rpm -K /path/to/package_file
dsa,gpg驗證來源的合法性,也就是驗證簽名。但是可以使用--nosignature 來跳過簽名驗證;
sha1,md5驗證軟體包的完整性,可以使用--nodigest 來跳過完整性驗證;
rpm --rebuilddb 重建資料庫
--initdb 初始化資料庫
yum install -y pack1 pack2 安裝指定的軟體包
yum remove pack1 pack2 -y 刪除指定的軟體包
yum update pack1 pack2 更新指定的軟體包
yum list installed 列出所有已經安裝的軟體包
yum update 更新源
yum search string 搜索包含string的軟體包
yum install package_name 獲取軟體包信息
# tar zxf nginx-1.4.7.tar.gz -C /usr/src
# configure --prefix=/usr/local/nginx --conf-path=/etc
# make
# make install
由於使用的是源碼包安裝在非正常路徑下。所以還要做以下的調整:
修改/etc/profile文件。或是在/etc/profile.d/下創建一個以.sh結尾的文件;再把二進製程序的路徑export出來就行了;
在/etc/ld.so.conf.d/中創建一個以.conf文件結尾的文件,而後把要增添的路徑直接寫入此文件中就行了;
這樣系統就會在下次啟動的時候,自動載入這些新增加的庫;如果想讓系統馬上可以找到這些新增加的庫,就必須執行下面的命令:
# ldconfig 通知系統重新搜索庫文件,還可以加上-v選項,表示顯示過程;
默認的頭文件搜索路徑是:/usr/include/
要添加新的頭文件搜索路徑,可以使用鏈接的方式:
ln -s /usr/local/nginx/include/* /usr/include/
或
ln -s /usr/local/nginx/include /usr/include/nginx
這時可以修改/etc/man.conf文件,在裡面添加以下內容:
MANPATH /usr/local/nginx/man
還有一種方式就是臨時使用:
# man -M /usr/local/nginx/man nginx 這樣就可以查看nginx的man手冊了;
❹ 如何在linux平台上編譯安裝zlib軟體
想要在linux平台上編譯安裝zlib軟體,你需要搜索zlib官方網站,下載源碼來安裝zlib軟體包進行安裝即可。
❺ 如何在linux下安裝多個不同版本的php
Linux (測試環境 Ubuntu 12.04 Server X86_64)
1. 安裝編譯工具及所需類庫
$ sudo apt-get install build-essential gcc g++ autoconf libjpeg62 libjpeg62-dev libpng12-0 libpng12-dev libfreetype6 libfreetype6-dev libxml2 libxml2-dev zlib1g zlib1g-dev bzip2 libbz2-dev openssl libssl-dev curl libcurl4-openssl-dev libpcre3 libpcre3-dev libevent-1.4-2 libevent-dev libmcrypt4 libmcrypt-dev mcrypt libltdl-dev libldap2-dev libsasl2-dev libmhash-dev libc-client2007e libc-client2007e-dev
2. 安裝MySQL
$ sudo apt-get install mysql-server libmysqlclient-dev
3. 安裝PHP
Linux下多版本PHP共存需要自己手工編譯安裝。
下載PHP源文件到/opt/src目錄
$ mkdir /opt/src
$ cd /opt/src
$ wget http://museum.php.net/php5/php-5.2.17.tar.bz2 -O php-5.2.17.tar.bz2
$ wget http://cn2.php.net/get/php-5.3.28.tar.bz2/from/this/mirror -O php-5.3.28.tar.bz2
$ wget http://cn2.php.net/get/php-5.4.29.tar.bz2/from/this/mirror -O php-5.4.29.tar.bz2
$ wget http://cn2.php.net/get/php-5.5.14.tar.bz2/from/this/mirror -O php-5.5.14.tar.bz2
創建PHP各版本安裝目錄
$ mkdir -p /opt/php/{5217,5328,5429,5514}
安裝PHP 5.2.17
$ cd /opt/src
$ tar -xvjf php-5.2.17.tar.bz2
$ cd php-5.2.17
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/libpng.so
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libkrb5.so /usr/lib/libkrb5.so
$ wget -O debian_patches_disable_SSLv2_for_openssl_1_0_0.patch 「https://bugs.php.net/patch-display.php?bug_id=54736&patch=debian_patches...」
$ patch -p1 < debian_patches_disable_SSLv2_for_openssl_1_0_0.patch
$ ./configure --prefix=/opt/php/5217 --with-config-file-scan-dir=/opt/php/5217/etc/php.d --with-mysql --with-pdo-mysql --with-mysqli --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-ftp --disable-debug --disable-ipv6 --disable-short-tags --enable-calendar --with-mime-magic --with-imap --with-imap-ssl --with-kerberos
$ make
$ sudo make install
$ cp php.ini-recommended /opt/php/5217/lib/php.ini
安裝PHP 5.3.28
$ cd /opt/src
$ tar -xvjf php-5.3.28.tar.bz2
$ cd php-5.3.28
$ ./configure --prefix=/opt/php/5328 --with-config-file-scan-dir=/opt/php/5328/etc/php.d --with-mysql --with-pdo-mysql --with-mysqli --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-ftp --disable-debug --disable-ipv6 --disable-short-tags --enable-calendar --with-imap --with-imap-ssl --with-kerberos
$ make
$ sudo make install
$ cp php.ini-development /opt/php/5328/lib/php.ini
安裝PHP 5.4.29
$ cd /opt/src
$ tar -xvjf php-5.4.29.tar.bz2
$ cd php-5.4.29
$ ./configure --prefix=/opt/php/5429 --with-config-file-scan-dir=/opt/php/5429/etc/php.d --with-mysql --with-pdo-mysql --with-mysqli --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-ftp --disable-debug --disable-ipv6 --disable-short-tags --enable-calendar --with-imap --with-imap-ssl --with-kerberos
$ make
$ sudo make install
$ cp php.ini-development /opt/php/5429/lib/php.ini
安裝PHP 5.5.14
$ cd /opt/src
$ tar -xvjf php-5.5.14.tar.bz2
$ cd php-5.5.14
$ ./configure --prefix=/opt/php/5514 --with-config-file-scan-dir=/opt/php/5514/etc/php.d --with-mysql --with-pdo-mysql --with-mysqli --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-ftp --disable-debug --disable-ipv6 --disable-short-tags --enable-calendar --with-imap --with-imap-ssl --with-kerberos
$ make
$ sudo make install
$ cp php.ini-development /opt/php/5514/lib/php.ini
4. 安裝Apache
$ sudo apt-get install apache2
啟用相應模塊
$ a2enmod headers
$ a2enmod expires
$ a2enmod actions
$ a2enmod rewrite
5. 配置Apache
$ sudo vi /etc/apache2/httpd.conf
追加如下腳本映射和虛擬主機配置,原理同Windows的配置說明。
ServerName localhost
AddType application/x-httpd-php .php
ScriptAlias /php-5217/ "/opt/php/5217/bin/"
ScriptAlias /php-5328/ "/opt/php/5328/bin/"
ScriptAlias /php-5429/ "/opt/php/5429/bin/"
ScriptAlias /php-5514/ "/opt/php/5514/bin/"
<Directory /var/www/sites>
Options Indexes FollowSymLinks Includes ExecCGI
DirectoryIndex index.php index.html
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/sites/5217>
Action application/x-httpd-php "/php-5217/php-cgi"
</Directory>
<Directory /var/www/sites/5328>
Action application/x-httpd-php "/php-5328/php-cgi"
</Directory>
<Directory /var/www/sites/5429>
Action application/x-httpd-php "/php-5429/php-cgi"
</Directory>
<Directory /var/www/sites/5514>
Action application/x-httpd-php "/php-5514/php-cgi"
</Directory>
# Virtualhosts
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/sites/5217/test.local"
ServerName php5217.local
ErrorLog "/var/log/apache2/php5217.local-error.log"
CustomLog "/var/log/apache2/php5217.local-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/sites/5328/test.local"
ServerName php5328.local
ErrorLog "/var/log/apache2/php5328.local-error.log"
CustomLog "/var/log/apache2/php5328.local-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/sites/5429/test.local"
ServerName php5429.local
ErrorLog "/var/log/apache2/php5429.local-error.log"
CustomLog "/var/log/apache2/php5429.local-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/sites/5514/test.local"
ServerName php5514.local
ErrorLog "/var/log/apache2/php5514.local-error.log"
CustomLog "/var/log/apache2/php5514.local-access.log" common
</VirtualHost>
保存配置後,創建各站點的DocumentRoot目錄,再往每個目錄放置一個phpinfo的測試文件,完成後重啟Apache伺服器並在本地hosts文件加入域名解析,現在就可以訪問各站點來測試多版本PHP共存了。
好了,基本的多版本PHP共存解決方案已經完成,如果還需要添加其他的PHP類庫支持,後續自己再調用對應php目錄下的pecl, php_config等腳本編譯安裝就可以了。