Linux安裝程序包分爲源碼包和二進制包(源碼編譯以後),源碼包安裝須要編譯,只有編譯了的源碼包,才能被解析;若編譯時出錯,運維人員難以解決;並且,源碼包安裝的時間較長;通常的源碼包格式爲「\*.tar.gz」,須要自行到官網下載。node
源碼包通常包含文件linux
httpd-2.2.15-15.el6.centos.1.i686.rpm httpd:軟件包名 2.2.15:版本 15:軟件發佈次數 el6:軟件發行商 i686:適合的硬件平臺
rpm -ivh #包全名 注意路徑 rpm -ivh a.rpm b.rpm c.rpm #同時安裝多個包 --nodeps:不檢查依賴性安裝 --replacefiles:替換文件安裝,由於某個文件已經存在而報錯,可使用此參數忽略 --replacepkgs:替換軟件包,重裝軟件 --force:強制安裝,--replacefiles和--replacepkgs綜合 --test:測試安裝 --prefix:指定安裝路徑
rpm -Uvh 包全名
查詢的位置是/var/lib/rpm/ rpm -qa 包名 #是否安裝 rpm -qa |grep 包名 #列出全部包名稱相同的包 rpm -qi 包名 #列出已經安裝包詳細信息 rpm -qip 包全名 #列出未安裝包詳細信息 rpm -qil 包名 #軟件包中的文件列表 rpm -qf 系統文件名 #查詢文件系統屬於哪一個RPM 例:rpm -qf /bin/ls rpm -qR 包名 #查詢軟件包所依賴的軟件包
注意:卸載有依賴性,若是不按照依賴性卸載就會報錯 rpm -e 包名 可使用--nodeps,不檢測依賴性,可是這樣會致使其它軟件包沒法正常使用
校驗:已安裝文件與/var/lib/rpm/目錄下的數據庫內容比較 rpm -V 已安裝的包名 rpm -Vf 系統文件名 #校驗是否被修改過 S:大小是否改變 M: 類型或者文件的權限是否改變 5:文件MD5校驗是否改變 D:設備的主從代碼是否改變 L:文件的路徑是否改變 U:所屬關係是否改變 G:所屬組是否改變 T:修改時間是否改變 上述校驗只是校驗了文件,若是RPM包自己被動過手腳,只能利用數字證書校驗
cpio:文件與文件庫交互,問題是不能本身指定備份或者還原的文件是什麼,必須有其它命令告知 若是發現某個系統文件出了問題,能夠將這個問題文件提取出來進行修復 rpm2cpio 包全名 | cpio -idv . 文件的絕對路徑 rpm2cpio:將rpm包轉換爲cpio格式 誤刪系統命令修復 一、從新安裝一遍 二、提取文件,複製到對應的位置 例:誤刪/bin/ls 一、查看ls屬於哪一個軟件包 rpm -qf /bin/ls 二、模擬誤刪 mv /bin/ls /root/ 三、提取命令文件 rpm2cpio /mnt/cdrom/packages/cors...|cpio -idv ./bin/ls 四、複製到對應的位置 cp /root/bin/ls /bin/
若是判斷是RPM數據庫問題,就要基於光盤或者其餘源的來源處獲取獲得的SambaRPM文件進行檢查了 rm -f /var/lib/rpm/_db.* #刪除RPM數據庫 rpm --rebuildddb #重建數據庫
一、安裝 a、rpmbuild 參數 包全名 --rebuild:編譯SRPM包,不會自動安裝,手動安裝 --recompile:編譯SRPM+自動安裝 b、*.spec安裝 rpm -i SRPM包 解包 rpm -ba /root/rpmbuild/SPEC/httpd.spec 在/root/rpmbuild中生成目錄,選擇對應的按照方式便可
rpm -qa | grep yum #是否安裝yum軟件 vim /etc/yum.repos.d/CentOS-Base.repo #查看容器內容
網絡yum源web
ls /etc/yum.repos.d/ #查看yum目錄
CentOS-Media.repo #光盤yum源模板文件 一、掛載光盤 二、修改其它yum源後綴,使得他們失效 三、修改CentOS-Media.repo文件
yum list #查詢全部可用軟件包列表 yum list 包名 #查詢yum源服務器中是否包還某個軟件包 yum search 關鍵字 #查詢yum源服務器中全部和關鍵字相同的軟件包 yum install -y 包名 #自動回答yes安裝 yum -y update 包名 #升級指定的軟件包 yum remove 包名 #軟件卸載,注意:卸載的時候必定要肯定軟件的依賴包不影響系統,不然會致使系統奔潰 yum grouplist #查詢能夠安裝的軟件組 yum groupinfo 軟件組名 #查詢軟件組中包含的軟件 yum groupinstall 軟件組名 #安裝軟件組 yum groupremove 軟件組名 #卸載軟件組
一、查看是否安裝gcc編譯器 rpm -q gcc 二、查看make編譯器是否安裝 rpm -qa make
一、下載軟件包 二、解壓縮 三、進入解壓目錄 四、./configure軟件配置檢查:①檢查硬件環境是否符合要求 ②自定義功能選項,例如安裝路徑等 ③將系統環境的檢測結果和定義好的功能選項寫入Makefile這個文件中 注意:./configure不是系統命令,是源碼包自帶的檢測腳本,必須採用./configure執行 ./configure --help:查看幫助 例:./configure--prefix=/usr/local/src/apache #指定安裝目錄 五、make編譯:調用gcc編譯器,編譯Makefile中的內容,將源碼文件編譯爲二進制文件 六、make clean:清空編譯內容(非必須);若是在./configure或者make時報錯,從新編譯時,必定要先執行make clean 七、make install:安裝,真正的安裝過程,這個時會寫清楚安裝位置,能夠記錄下此內容,共卸載使用
diff 參數 old new #比較old與new文件的不一樣 diff -Naur old.txt new.txt > txt.patch #比較兩個文件,而且生成補丁文件 patch -pn < txt.patch #安裝補丁文件進行更新 說明:補丁文件是要打入舊文件的,可是當前所在的目錄不必定和補丁文件中記錄的目錄匹配,須要使用「-pn」來同步兩個目錄, 即:「-pn」取消補丁文件中記錄的目錄的「/」 例:/root/test/old.txt 「-p2」:test/old.txt make:從新編譯打過補丁的文件 make install:從新安裝 patch -R < txt.patch #還原補丁
靜態函數庫——「\*.a」:優勢——不須要外部數據,能夠直接執行;缺點——編譯生成的文件較大,升級困難 動態函數庫——「\*.so」:優勢——沒有整合到程序中,文件小,升級方便;缺點——易出現問題
ldd -v 可執行文件名 #查看調用的函數庫 例:ldd -v /bin/ls #查看ls調用的函數庫 導入新的函數庫 一、將函數庫複製到/usr/lib目錄中 cp *.so /usr/lib/ 二、修改函數庫的配置文件 vi /etc/ld.so.conf 三、寫入函數庫所在的目錄(默認/usr/lib/已經被識別) include ld.so.conf.d/*.conf /usr/lib/ 四、idconfig命令從新讀取/etc/ld/.so.conf至緩存中 五、ldconfig -p:列出緩存中的函數庫
一、安裝Webmin a、tar -zxvf webmin-1.610.tar.gz b、cd webmin-1.610 c、./setup.sh