Linux系統(tǒng)中,軟件通常以源代碼或者預(yù)編譯包的形式提供。
- 軟件源代碼需要編譯為二進制的機器代碼才能夠使用,安裝比較耗時,不過您可以自行調(diào)節(jié)編譯選項,決定需要的功能或組件,或者針對硬件平臺作一些優(yōu)化。在Linux中,它不像Windows中軟件資源豐富,有的時候就需要將某個代碼修改,以符合當(dāng)前平臺。
- 預(yù)編譯的軟件包,通常是由軟件的發(fā)布者進行編譯,您只要將軟件拷貝到系統(tǒng)中就可以了。考慮到預(yù)編譯軟件包的適用性,預(yù)編譯軟件包通常不會針對某種硬件平臺優(yōu)化。它所包含的功能和組件也是通用的組合。
Linux
安裝軟件大概的過程如下:
- 建立安裝目錄
- 拷貝類庫
- 拷貝可執(zhí)行程序
- 根據(jù)需要選擇性配置和啟動服務(wù)
-
Linux
下的/usr/bin
目錄相當(dāng)于Windows
下的ProgramFile
目錄 -
Linux
下的動態(tài)庫后綴是.so
而Windows
下是.dll
安裝方式就按某種標(biāo)準(zhǔn)依次介紹(什么標(biāo)準(zhǔn)?朕喜歡的就是標(biāo)準(zhǔn))。
一、源碼安裝
.tar.gz,.tgz,.bz2形式軟件包的安裝
-
解壓:
tar zxvf *.tar.gz
tar xvfz *.tgz
tar xvfj *.tar.bz2
解壓后用ls命令可以看到解壓縮后的文件,通常在解壓縮后產(chǎn)生的文件中,有名為"INSTALL"的文件。該文件為純文本文件,詳細(xì)講述了該軟件包的安裝方法。
對于多數(shù)需要編譯的軟件,其安裝的方法大體相同。執(zhí)行解壓縮后產(chǎn)生的一個名為configure的可執(zhí)行腳本程序。它是用于檢查系統(tǒng)是否有編譯時所需的庫,以及庫的版本是否滿足編譯的需要等安裝所需要的系統(tǒng)信息。為隨后的編譯工作做準(zhǔn)備。命令為:
./configure
其中--prefix選項是配置安裝目錄,如果不配置該選項,安裝后可執(zhí)行文件默認(rèn)放在/usr /local/bin,庫文件默認(rèn)放在/usr/local/lib,配置文件默認(rèn)放在/usr/local/etc,其它的資源文件放在/usr /local/share,比較凌亂。
使用--prefix選項的另一個好處是方便卸載軟件或移植軟件;當(dāng)某個安裝的軟件不再需要時,只須簡單的刪除該安裝目錄,就可以把軟件卸載得干干凈凈;而移植軟件只需拷貝整個目錄到另外一個機器即可(相同的操作系統(tǒng)下)。-
如果檢查過程中,發(fā)現(xiàn)有錯誤,configure將給予提示,并停止檢查。你可以跟據(jù)提示對系統(tǒng)進行配置。再重新執(zhí)行該程序。檢查通過后,將生成用于編譯的MakeFile文件。此時,可以開始進行編譯了。編譯的過程視軟件的規(guī)模和計算機的性能的不同,所耗費的時間也不同。命令為:
make
make原理是執(zhí)行一個叫(所生成的)Makefile文件里的指令,make的基本用處是自動根據(jù)makefile里的指令來編譯源文件。它還可以用來做比如安裝軟件,卸載軟件等事情,但前提是作者在makefile里寫了。
成功編譯后,鍵入如下的命令開始安裝:
make install
-
安裝完畢,應(yīng)清除編譯過程中產(chǎn)生的臨時文件和配置過程中產(chǎn)生的文件。鍵入如下命令:
make clean
、make distclean
。make clean
清除上次的make命令所產(chǎn)生的object文件(后綴為“.o”的文件)及可執(zhí)行文件。make distclean
類似make clean
,但同時也將configure生成的文件全部刪除掉,包括Makefile。
如果沒有configure文件,那應(yīng)該有Makefile文件。那就更簡單了,省的上面的麻煩事了。
建議:
不要將源碼刪除,在卸載軟件的時候需要使用可能。另外在./configure
的時候養(yǎng)成--prefix指定安裝目錄的好習(xí)慣,在安裝的時候也可以選擇將安裝日志進行輸出。沒啥大用,卸載方便。
二、apt
高級包裝工具(英語:Advanced Packaging Tools,縮寫為APT)是Debian及其派生發(fā)行版的軟件包管理器。APT可以自動下載,配置,安裝二進制或者源代碼格式的軟件包,因此簡化了Unix系統(tǒng)上管理軟件的過程。APT最早被設(shè)計成dpkg的前端,用來處理deb格式的軟件包。現(xiàn)在經(jīng)過APT-RPM組織修改,APT已經(jīng)可以安裝在支持RPM的系統(tǒng)管理RPM包。與紅帽中的yum工具非常類似。
apt-get
其實就是一個在線安裝軟件的工具,它的主要作用是:通過本地的 Linux 連接到網(wǎng)絡(luò)上的 apt 倉庫(源)來下載軟件并自動安裝。在國內(nèi)訪問官方源速度較慢,一般安裝完系統(tǒng)首先會更新源。apt 鏡像站點地址列表是放在下列文件下的:
/etc/apt/sources.list
而apt 的下載的 deb 包會保存到這里
/var/cache/apt/archives
軟件包安裝完成后,這些deb安裝包基本上就沒有什么用處了.a(chǎn)pt-get clean命令可以幫你刪除這些deb安裝包.
常用apt命令:
apt-get命令一般需要root權(quán)限執(zhí)行,所以一般跟著sudo命令例sudo apt-get xxxx
apt-get install packagename
——安裝一個新軟件包(還有一個aptitude軟件)
apt-get remove packagename
——卸載一個已安裝的軟件包(保留配置文件)
apt-get --purge remove packagename
——卸載一個已安裝的軟件包(刪除配置文件)
apt-get --force-all --purge packagename
——有些軟件很難卸載,而且還阻止了別的軟件的應(yīng)用,就可以用這個,不過有點冒險。
apt-get autoremove
——因為apt會把已裝或已卸的軟件都備份在硬盤上,所以如果需要空間的話,可以讓這個命令來刪除你已經(jīng)刪掉的軟件。
apt-get autoclean
——定期運行這個命令來清除那些已經(jīng)卸載的軟件包的.deb文件。通過這種方式,可以釋放大量的磁盤空間。如果需求十分迫切,可以使用apt-get clean以釋放更多空間。這個命令會將已安裝軟件包裹的.deb文件一并刪除。
apt-get clean
——這個命令會把安裝的軟件的備份也刪除,不過這樣不會影響軟件的使用的。
apt-get upgrade
——更新所有已安裝的軟件包
apt-get dist-upgrade
——將系統(tǒng)升級到新版本
apt-cache search string
——在軟件包列表中搜索字符串
apt-cache showpkg pkgs
——顯示軟件包信息。
apt-cache stats
——查看庫里有多少軟件
apt-cache dumpavail
——打印可用軟件包列表。
apt-cache show pkgs
——顯示軟件包記錄,類似于dpkg –print-avail。
apt-cache pkgnames
——打印軟件包列表中所有軟件包的名稱
(需要定期運行這一命令以確保您的軟件包列表是最新的)
簡單的說: dpkg只能安裝已經(jīng)下載到本地機器上的deb包. apt-get能在線下載并安裝deb包,能更新系統(tǒng),
且還能自動處理包與包之間的依賴問題,這個是dpkg工具所不具備的。
三、yum
yum,是Yellow dog Updater, Modified 的簡稱,是杜克大學(xué)為了提高RPM 軟件包安裝性而開發(fā)的一種軟件包管理器。
yum命令是在Fedora和RedHat以及SUSE中基于rpm的軟件包管理器,它可以使系統(tǒng)管理人員交互和自動化地更細(xì)與管理RPM軟件包,能夠從指定的服務(wù)器自動下載RPM包并且安裝,可以自動處理依賴性關(guān)系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令。使用和apt-get相似。
語法 yum(選項)(參數(shù))
選項
-h:顯示幫助信息;
-y:對所有的提問都回答“yes”;
-c:指定配置文件;
-q:安靜模式;
-v:詳細(xì)模式;
-d:設(shè)置調(diào)試等級(0-10);
-e:設(shè)置錯誤等級(0-10);
-R:設(shè)置yum處理一個命令的最大等待時間;
-C:完全從緩存中運行,而不去下載或者更新任何頭文件。
參數(shù)
install:安裝rpm軟件包;
update:更新rpm軟件包;
check-update:檢查是否有可用的更新rpm軟件包;
remove:刪除指定的rpm軟件包;
list:顯示軟件包的信息;
search:檢查軟件包的信息;
info:顯示指定的rpm軟件包的描述信息和概要信息;
clean:清理yum過期的緩存;
shell:進入yum的shell提示符;
resolvedep:顯示rpm軟件包的依賴關(guān)系;
localinstall:安裝本地的rpm軟件包;
localupdate:顯示本地rpm軟件包進行更新;
deplist:顯示rpm軟件包的所有依賴關(guān)系。
四、deb
deb是 ubuntu 、debian 的格式,是debian發(fā)行版的軟件包,ubuntu是基于debian 發(fā)行的 所以可以用。
dpkg 是Debian Package的簡寫,是為Debian 專門開發(fā)的套件管理系統(tǒng),方便軟件的安裝、更新及移除。所有源自Debian的Linux發(fā)行版都使用dpkg,例如Ubuntu等。
以下是一些 Dpkg 的普通用法:
dpkg -i <package.deb>
——安裝一個 Debian 軟件包,如你手動下載的文件,(其中-i等價于--install)
dpkg -c <package.deb>
——列出<package.deb> 的內(nèi)容中包含的文件結(jié)構(gòu)(其中-c等價于--contents)
dpkg - I <package.deb>
——從<package.deb> 中提取包裹信息的詳細(xì)信息,包括軟件名稱、版本以及大小等(其中-I等價于--info)
dpkg -r <package>
——移除一個已安裝的包裹(軟件名稱可通過dpkg -I命令查看,其中-r等價于--remove)
dpkg -P <package>
——完全清除一個已安裝的包裹。和 remove 不同的是,remove 只是刪掉數(shù)據(jù)和可執(zhí)行文件,purge 另外還刪除所有的配制文件。
dpkg -L <package>
——列出 <package> 安裝的軟件包安裝的所有文件(軟件名稱可通過dpkg -I命令查看,其中-L等價于--listfiles)
dpkg -l <package>
——查看<package>軟件包的信息(軟件名稱可通過dpkg -I命令查看,其中-l等價于--list)
dpkg -s <package>
——顯示已安裝包裹的詳細(xì)信息。同時請看 apt-cache 顯示 Debian 存檔中的包裹信息,以及 dpkg -I 來顯示從一個 .deb 文件中提取的包裹信息。(軟件名稱可通過dpkg -I命令查看,其中-s等價于--status)
dpkg-reconfigure <package>
——重新配制一個已經(jīng)安裝的包裹,如果它使用的是 debconf (debconf 為包裹安裝提供了一個統(tǒng)一的配制界面)。
注:dpkg命令無法自動解決依賴關(guān)系。如果安裝的deb包存在依賴包,則應(yīng)避免使用此命令,或者按照依賴關(guān)系順序安裝依賴包。
五、rpm
rpm是 redhat 、fedora、suse 的格式。全稱為Redhat PackageManager ,是由Redhat 公司提出的,用于管理Linux下軟件包的軟件。Linux 安裝時,除了幾個核心模塊以外,其余幾乎所有的模塊均通過RPM 完成安裝。
rpm -i <package.rpm>——安裝軟件
例:
rpm -i example.rpm 安裝 example.rpm 包;
rpm -iv example.rpm 安裝 example.rpm 包并在安裝過程中顯示正在安裝的文件信息;
rpm -ivh example.rpm 安裝 example.rpm 包并在安裝過程中顯示正在安裝的文件信息及安裝進度;
rpm -q …——查詢軟件信息
a 查詢所有已經(jīng)安裝的包以下兩個附加命令用于查詢安裝包的信息;
i 顯示安裝包的信息;
l 顯示安裝包中的所有文件被安裝到哪些目錄下;
s 顯示安裝版中的所有文件狀態(tài)及被安裝到哪些目錄下;
以下兩個附加命令用于指定需要查詢的是安裝包還是已安裝后的文件;
p 查詢的是安裝包的信息;
f 查詢的是已安裝的某文件信息;
例:
rpm -qa | grep tomcat4 查看 tomcat4 是否被安裝;
rpm -qip example.rpm 查看 example.rpm 安裝包的信息;
rpm -qif /bin/df 查看/bin/df 文件所在安裝包的信息;
rpm -qlf /bin/df 查看/bin/df 文件所在安裝包中的各個文件分別被安裝到哪個目錄下;
rpm -e ...
——需要卸載的安裝包
在卸載之前,通常需要使用rpm -q …命令查出需要卸載的安裝包名稱。
例:
rpm -e tomcat4 卸載 tomcat4 軟件包
rpm -U <package.rpm>
——需要升級的包
例:
rpm -Uvh example.rpm 升級 example.rpm 軟件包
rpm -V ...
——需要驗證的包
例:
rpm -Vf /etc/tomcat4/tomcat4.conf
輸出信息類似如下:
S.5....T c /etc/tomcat4/tomcat4.conf
其中,S 表示文件大小修改過,T 表示文件日期修改過。更多的驗證信息請參考rpm 幫助文件:man rpm
注:RPM 的其他附加命令
--force 強制操作如強制安裝刪除等;
--requires 顯示該包的依賴關(guān)系;
--nodeps 忽略依賴關(guān)系并繼續(xù)操作;
此外還有一些安裝文件:
.bin/.run
還有一些軟件解壓后生成的文件夾內(nèi)包含很多文件,一般文件夾內(nèi)有install.sh、setup.py等安裝文件方式,此種方式類似windows的exe安裝方式。
這樣的軟件第一步授權(quán)可執(zhí)行,第二步運行就可以了。
如有錯誤,歡迎指正。