在Linux中看與識別的軟件包
1、源碼包 ? 大部分是C寫的。需要手工安裝,并且繁瑣。比較滿。
1-1、腳本安裝包。不多見,并且這種包是源碼包二次開發(fā)后的安裝包。 不需要手工安裝。
很簡單,
2、二進制包(RPM包、系統(tǒng)默認包)。是經(jīng)過編譯之后的機器語言包。
源碼包 ? ? 有點:
1、開源,如果有足夠的能力,可以修改源代碼
2、可以自由選擇所需要的功能
3、軟件是便宜安裝,所以更家適合自己的系統(tǒng),更加穩(wěn)定也效率更高。
4、卸載方便。
缺點:
1、安裝過程步驟較多,尤其安裝較大的軟件集合時(如 LAMP環(huán)境搭建),容易出現(xiàn)拼寫錯誤
2、編譯過程時間較長,安裝比二進制安裝時間長。
3、因為是編譯安裝,安裝過程中一但報錯新手很難解決。
RPM包 ?二進制包 ? ?有點:
1、包管理系統(tǒng)簡單,只通過幾個命令就可以實現(xiàn)包的安裝、升級、查詢和卸載。
2、安裝速度比源碼包安裝快的多。
缺點:
1、經(jīng)過編譯,不在可以看到源代碼。
2、功能選擇不如源碼包靈活
3、依賴性。指:當安裝a時候,需要有b的支持,當安裝b時,需要有c的支持。卸載的時候需要先卸載c然后卸載b,再卸載a。
RPM包管理 ?-rpm命令管理
RPM包命令規(guī)則
例如:httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd ? ? 軟件包名 ? 包名指:這個包的英文名稱:如:httpd ? 全名是全稱。
2.2.15 ? ? 軟件版本
15 ? ? 軟件發(fā)布的次數(shù)
el6.centos ? ? 適合的Linux平臺
i686 ? ? 適合的硬件平臺 ?如果此處是x64則表示:只可以安裝在64位操作系統(tǒng)上。
rpm ? ? rpm包擴展名。這個rpm擴展名是給管理員看,表明是什么文件。
注意:有些命令只能跟包名,有些命令必須跟包全名。如果寫錯了,這個命令將不能正確執(zhí)行。
RPM包依賴性:
樹形依賴: ?a>b>c
最典型。
安裝時候:先安裝c,再安裝b,再安裝a。卸載的時候,先卸載 a,再卸載b,再卸載c。
環(huán)形依賴:a>b>c>a
這時候:將abc用一條命令全部安裝即可解決環(huán)形依賴。
模塊依賴: 模塊以來查詢網(wǎng)站:www.rpmfind.net
注意: 只要以:.so.2:點so點數(shù)字結(jié)尾的,都是庫依賴。這種庫依賴包,不是單獨獨立的包,是某一個軟件包中的一個軟件。所以只要把這個庫依賴包的軟件包安裝后,這個庫依賴就會自動安裝。
RPM包管理-yum在線管理
這個就是為了解決依賴性的。
可以做一個包含所有rpm包的網(wǎng)站作為在線服務(wù)器源。只要運行 ?-yum 就會自動從服務(wù)器下載依賴的庫等。
有個問題:除了拿網(wǎng)絡(luò)作為服務(wù)器源外,還可以拿本地光盤作為 yum源。如果是readHead系列收費,他認為yum是他的售后服務(wù) 。
centos 是免費的,yum也是免費的。
包全名與包名:
包全名:操作的包是沒有安裝的軟件包時,使用包全名。而且要注意路徑。
一般:安裝和升級的時候,使用包全名。操作的是未安裝包,所以使用全名。
包名:操作已經(jīng)安裝的軟件包時,使用包名。是搜索 ?/var/lib/rpm/中的數(shù)據(jù)庫。
/var/lib/rpm/ ?都是二進制文件。如:查詢、卸載。所以只寫包名即可。
RPM安裝:--可以手工指定安裝位置,但是會帶來比較麻煩的問題。比如:服務(wù)命令就會找不到rpm包安裝的功能或服務(wù)。因為很多服務(wù)搜索的位置都是默認的,如果這時候手工指定,未使用默認,會帶來管理上的不方便。
rpm ? -ivh ? 包全名 ?--- 一般都會使用 -ivh
選項: ? ? -i(install) ? ? 安裝
-v(verbose) ? ? 顯示詳細信息
-h(hash) ? ? 顯示進度
--nodeps ? ? 不檢測依賴性(安裝時,是不行的。)可以在實驗的時候安裝。
RPM包升級
rpm ?-Uvh ?包全名
選項: ?-U (upgrade ) ? ? 升級。
RPM ?卸載:
rpm ?-e ?包名
選項: ?-e(erase) ? ? 卸載
--nodeps ? ? 不檢查依賴性。
注意: -yum安裝的,都可以通過rpm的命令查詢。
查詢是否安裝:
[root@localhost ~]# rpm ?-q ?包名
查詢包是否安裝
選項: ? ? -q ? ? 查詢(query)
[root@localhost ~]# rpm ?-qa
查詢所有已經(jīng)安裝的RPM包
選項: ? ? -a ? ? 所有(all)
查詢軟件包詳細信息:
[root@localhost ~]# rpm ?-qi ?包名
選項: ? ? -i ? ? 查詢軟件信息(information)
-p ? ? 查詢未安裝包信息(package)
查詢未安裝包信息:rpm ?-qip ?包全名 ? --- 用到的不多。
注意:安裝、升級,后跟包全名。
查詢包中文 文件安裝位置:
[root@localhost ~]# rpm ?-ql ?包名
選項: ?-l ? ? 列表(list)
-p ? ? 查詢未安裝包信息(package)
注意:包中的安裝位置是在組件這個包的時候就決定的。 如果查詢安裝位置時,即使沒有安裝也會查看到這個包打算把文件裝哪里的。
查詢系統(tǒng)文件屬于哪個RPM包
[root@localhost ~]# rpm ?-qf ?系統(tǒng)文件名
選項: ? ? -f ? ? 查詢系統(tǒng)文件屬于哪個軟件包(File)
注意:這個file必須是包出來的,不是手工創(chuàng)建的。比如:手工創(chuàng)建的,或系統(tǒng)自動生成的一些臨時文件,日志文件,這些都不是包出來的,所以無法查詢所在哪個RPM包。
查詢軟件包的依賴性
[root@localhost ~]# rpm ? -qR ?包名
選項: ? ? -R ? ? 查詢軟件包的依賴性(requires)
-p ? ? 查詢未安裝包信息(package)
RPM包校驗
[root@localhost ~]# ?rpm ? -V ? 已經(jīng)安裝的包名
選項:
-V ? ? 校驗制定RPM包中的文件(verify)
校驗:裝完RPM包把特征記錄下來 ,需要的時候,把現(xiàn)在的文件與先前記錄的文件進行比較,判斷是否有變化,而做了修改。 ?判斷文件是否被更改過。
驗證內(nèi)容中的8個信息的具體內(nèi)容如下:
S ? ? 文件大小是否改變
M ? ? 文件的類型或文件的權(quán)限(rwx)是否被改變
5 ? ? 文件MD5校驗和是否改變(可以看成文件內(nèi)容是否改變)
D ? ? 設(shè)備的中,從代碼是否改變
L ? ? 文件路徑是否改變
U ? ? 文件的屬主(所有者)是否改變
G ? ? 文件的屬組是否改變
T ? ? 文件的修改時間是否改變
其中的c是文件類型:
c ? ? 配置文件(config ?file)
d ? ? 普通文檔(documentation)
g ? ? “鬼”文件(ghost ?file),很少見,就是該文件不應(yīng)該被這個RPM包 ? 包含
如果在某個包中出現(xiàn)了,則這個文件需要認真對待一下了。
l ? ? 授權(quán)文件(license ?file)
r ? ? ?描述文件(read ? me)
RPM包中 ?文件提取: ?制定的文件---主要是誤操作,修復。
[root@localhost ~]# ?rpm2cpio ?包全名 ?| ?\ ?cpio ?-idv.文件絕對路徑
任憑mcpio ? ? 將RPM包轉(zhuǎn)換為 ?cpio ?格式的命令
cpio ? ? 是一個標準工具,他用于創(chuàng)建軟件檔案文件和從檔案文件中提取文件。
[root@localhost ~]# cpio ?選項<[文件|設(shè)備] ? --- <輸入重定向
選項: ?-i ? ? copy-in模式,還原
-d ? ? 還原時自動新建目錄
-v ? ? 顯示還原過程
情景:當誤操作了包中的某個文件時。查找這個文件是哪個包的,然后從新提取包中的文件,替換即可。
提取包中的某個文件。例如:
RPM包管理 ?-yum在線管理:都是RPM包管理,沒有yum包。
最主要的好處:解決依賴性。
IP地址配置和網(wǎng)絡(luò)yum源
setup配置IP地址:
這樣設(shè)置將永久生效。
網(wǎng)絡(luò)yum源 ?只要是.repo結(jié)尾的都是合法的yum源
本地yum源位置及介紹: 這個yum源都是配置好的,不需要更改。
[root@localhost ~]# ?vi ?/etc/yum.repos.d/CentOS-Base.repo
[base] ? ? 容器名稱,一定要放在[]中
name ? ? 容器說明,可以自己隨便寫
mirrorlist ? ? 鏡像站點,這個可以注釋掉
baseurl ? ? 我們的yum源服務(wù)器的地址。默認是CentOS官方的yum源服務(wù)器,是可以使用的,如果覺得慢可以改成喜歡的yum源地址。
enabled ? ? 此容器是否生效,如果不寫或攜程enable=1 都是生效,寫成enable=0就是不生效
gpgcheck ? ? 如果是1是指RPM的數(shù)字證書生效,如果是0則不生效
gpgkey ? ? 數(shù)字證書的公鑰文件保存位置,不用修改。
yum命令:
查詢:
[root@localhost yum.repos.d]# ?yum ?list
查詢所有可用軟件包列表 ? --- 這個命令是到遠程服務(wù)上查詢的。所以在本機任何位置執(zhí)行都可以,前提是Linux可以鏈接互聯(lián)網(wǎng)。
[root@localhost yum.repos.d]# ?yum ?search ?關(guān)鍵字
搜索服務(wù)器上所有和關(guān)鍵字相關(guān)的包 ? --- 這里的關(guān)鍵字,是報名
注意:包名與包全名只在 ?-rpm命令管理時要求。
安裝:
[root@localhost yum.repos.d]# ?yum ?-y ?install ?包名
選項: ? ? install ? ? 安裝
-y ? ? 自動回答yes
備注: yum ?-y ? install ?gcc ?--- gcc是C語言的編輯器,源碼包安裝的時候必須要有g(shù)cc的存在,源碼包才可以正常安裝
升級:
[root@localhost yum.repos.d]# yum ?-y ?update ?包名 ?---慎重使用。
如果后面不加 ?包名:則表示:升級所有的軟件包,包括Linux的內(nèi)核。
注意:Linux內(nèi)核升級后需要在本地做一定配置才可以使用的。如果遠程執(zhí)行了升級,則服務(wù)器將無法開機。會導致崩潰
選項: update ? ? 升級
-y ? ? 自動回答yes
卸載:
[root@localhost yum.repos.d]# ?yum ?-y ?remove ?包名
選項: ? ? remove ? ? ?卸載
-y ? ? 自動回答yes
注意: 當使用 ?yum ?卸載的時候可能出現(xiàn)問題。原因:因為yum卸載的時候會把相互依賴的包也會卸載,可能會導致系統(tǒng)依賴的包也會卸載,從而導致一些問題的發(fā)生。系統(tǒng)崩潰,或一些重要命令不能使用
服務(wù)器安裝原則聲明:安裝的時候最小化安裝,不安裝多余軟件,使用什么軟件,安裝什么軟件,手工裝,盡量不卸載。尤其是 yum 卸載,盡量不要多用。
YUM軟件組管理命令:
[root@localhost ~]# ?yum ?grouplist
列出所有可用的軟件組列表
[root@localhost ~]# ?yum ?groupinstall ?軟件組名
安裝指定軟件組,組名可以有g(shù)rouplist查詢出來
[root@localhost ~]#yum ?groupremove ?軟件組名
卸載制定軟件組
注意:如果組名稱中有空格,應(yīng)用“”括起來。英文在系統(tǒng)中使用命令可以查看
光盤yum源搭建: ?對服務(wù)器來講:主要考慮:穩(wěn)定、安全。可能較老的軟件包更為使用廣泛。在平常工作中,還是經(jīng)常用光盤作為yum源。
首先創(chuàng)建掛載點: ?mkdri ? /mnt/cdrom
掛載光盤:
[root@localhost ~]# ?mount ?/dev/sr0 ? /mnt/cdrom
查看掛載:
[root@localhost ~]# mount
打開:
[root@localhost ~]# ?vim ?CentOS-Media.repo
好處: 加載快,訪問方便。沒有網(wǎng)絡(luò)也可以使用。
缺點:軟件的版本不能有更新,更多的版本。光盤中的是固定的。
每次用yum時候,光盤必須正確掛載。
注意:Linux中有些配置文件是嚴格要求格式的,比如:#必須在行首,行中間位置是無法識別注釋的。
如果有修改過后報錯,檢查配置文件格式。
yum ?list ?| ?more
源碼包和RPM包的區(qū)別:
RPM包安裝位置;絕大多數(shù)RPM包默認安裝的位置。
/etc/ ? ? 配置文件安裝目錄
/usr/bin/ ? ? 可執(zhí)行的命令安裝目錄
/usr/lib/ ? ? 程序所使用的函數(shù)庫保存位置
/usr/share/doc/ ? ? 基本的軟件使用手冊保存位置
/usr/share/man/ ? ? 幫助文件保存位置
源碼包安裝位置:
安裝在指定位置當,一般是
/usr/local/軟件名/
安裝位置不同帶來的影響:影響服務(wù):啟動,關(guān)閉,重啟動
RPM包安裝的服務(wù)可以使用系統(tǒng)服務(wù)管理命令(service)來管理,例如RPM包安裝的apache的啟動方法是:
/etc/rc.d/init.d/httpd ?start
service ?httpd ?start
在Linux中,要啟動一個執(zhí)行文件,應(yīng)該是:使用一個絕對路徑。
而源碼包安裝的服務(wù)則不能被服務(wù)管理命令管理,因為沒有安裝到默認路徑中。所以只能用絕對路徑進行服務(wù)的管理,例如: /usr/local/apache2/bin/apachectl ?start
源碼包,安裝準備:
源碼包最大的問題:一旦報錯很難解決
安裝C語言編譯器
下載源碼包:
http://mirror.bit.edu.cn/apache/httpd
備注: yum ?-y ? install ?gcc ?--- gcc是C語言的編輯器,源碼包安裝的時候必須要有g(shù)cc的存在,源碼包才可以正常安裝
安裝注意事項:
1、源代碼保存位置:/usr/local/src/
2、軟件安裝位置:/usr/local/
3、如何確定安裝過程報錯:
a、安裝過程停止; ?只要停止就看接下來的報錯信息。
b、并出現(xiàn)error、warning或no的提示
備注:當安裝一個源碼包的時候,都是進入到在解壓縮后的目錄中進行操作的,其中INSTALL為:安裝說明。README:使用說明。
源碼包安裝中---./configure 軟件配置與檢查:主要進行3個功能。
使用命令: ./configure ?--help
1、定義需要的功能選項
2、檢測系統(tǒng)環(huán)境是否符合安裝要求
3、把定義好的功能選項和檢測系統(tǒng)環(huán)境的信息都寫入Makefile 文件,用于后續(xù)的編輯。
其中: make ?編譯
make ?install ? ?編譯安裝
這2個命令都依賴 ?Makefile ?文件。
執(zhí)行完這個命令,make ? ?make ? install ?才可以使用。
注意:在執(zhí)行了 ?./configure ? ?和 ?make ?命令后并沒有在指定的文件中生成對應(yīng)的目錄。如果想在此時卸載,執(zhí)行:make ?clean ?就可以實現(xiàn)清空軟件包,不會影響后續(xù)編譯。但是,make ? install之后才會向目錄當中寫入數(shù)據(jù)。
源碼包卸載:
必須要卸載命令,直接刪除安裝目錄即可,不會一流任何垃圾文件。
腳本安裝包:
1、腳本安裝包 ?并不是獨立的軟件包類型,常見安裝的是源碼包
2、是認為把安裝過程攜程了自動安裝的腳本,只要執(zhí)行腳本,定義假單的參數(shù),就可以成功安裝。
3、非常類似與Windows下軟件的安裝方式。
備注:在Linux中腳本安裝包,主要是一些硬件的驅(qū)動。因為硬件驅(qū)動在Linux中安裝比較困難,所以一些廠商會對硬件驅(qū)動開發(fā)腳本安裝包。
Webmin的作用:
Webmin ?是一個基于Web的Linux系統(tǒng)管理界面。可以通過圖形化的方式設(shè)置用戶賬號、Apache、DNS、文件共享等服務(wù)。
1、下載軟件:
http://sourceforge.net/projects/webadmin/files/webmin/
2、解壓縮,并進入解壓縮目錄。
3、執(zhí)行安裝腳本
其中安裝腳本是:setup.sh
注意:如果在次操作中誤輸入了,需要按 Ctrl+退格鍵。