Linux學習筆記之軟體包的管理 1、RPM(RPM Package Manager) 格式:例如cvs.1.11.2-10.i386.rpm cvs:軟體的名稱 1.11.2:軟體包的版本號碼其中包括主要版本號和次版本號碼 i386:軟體所啟動並執行硬體平台 rpm:副檔名 www.2cto.com 卸載:rmp -e cvs [--nodeps]如果其它軟體包括有依賴關係,卸載時會產生提示資訊,可使用--nodeps強行卸載 查詢:rmp -qa 軟體包名稱 [root@CentOS-Test Packages]# rpm -aq sudo 查詢此軟體包所依賴的其它包 [root@CentOS-Test /]# rpm -qf /etc/services 查詢檔案所屬的檔案包 setup-2.8.14-16.el6.noarch [root@CentOS-Test Packages]# rpm -qip sudo-1.7.4p5-11.el6.i686.rpm 查詢未安裝的軟體包是做什麼用的 [root@CentOS-Test /]# rpm -qc sudo 查看已安裝rpm的設定檔 /etc/pam.d/sudo /etc/pam.d/sudo-i /etc/sudo-ldap.conf /etc/sudoers [root@CentOS-Test /]# rpm -ql sudo sudo軟體包安裝路徑以及都安裝了哪些檔案,一般/etc下面的都是設定檔 /usr/bin下面的都是命令 sudo-1.7.4p5-11.el6.i686 安裝:rmp -ivh 軟體包名 rpm -ivh --excludedocs 軟體包名 安裝時安裝文檔 rpm -ivh --prefix path 軟體包名 安裝時指定安裝路徑 rpm -ivh --test 軟體包名 只對安裝進行測試並不實際安裝 光碟片的掛載: mkdir /mnt/cdrom 如果沒有可以先行建立此檔案夾 mount /dev/cdrom /mnt/cdrom 將光碟片檔案掛載到剛才建立的檔案夾中 [root@CentOS-Test ~]# mount /dev/cdrom /mnt/cdrom mount: block device /dev/sr0 is write-protected, mounting read-only [root@CentOS-Test Packages]# ls | grep sudo sudo-1.7.4p5-11.el6.i686.rpm 升級安裝:rpm -Uvh 軟體包名稱 覆蓋安裝:rpm -ivh --replacepkgs 軟體包名稱 檔案衝突時安裝 rpm -ivh --replacefiles 軟體包名稱 未解決的依賴關係 rpm -ivh --nodeps 軟體名稱 強制安裝,解決安裝時的依賴關係,但是十有八九不能用 2、yum 優點:自動解決軟體包依賴關係 方便的軟體包升級 前提條件是必須接入互連網 安裝:yum install 軟體包名稱 檢查更新: yum check-update 軟體包名稱 更新: yum update 軟體包查詢: yum list |grep sudo yum list |grep samba 尋找到的是yum源上的軟體包 軟體包資訊:yum info sudo 用於查看軟體包的資訊 卸載:yum remove 軟體包名稱 協助:yum --help 3、校正 md5sum 檔案名稱 只校正檔案的內容 [root@CentOS-Test data]# md5sum lhc_xx.txt 490b812cb03bacbf5fc5fadc4029efa2 lhc_xx.txt [root@CentOS-Test data]# echo "#this is a test file" >>lhc_xx.txt [root@CentOS-Test data]# md5sum lhc_xx.txt 10be8cdfcd22f7cbd1494141a03e67f8 lhc_xx.txt rpm -V 軟體名稱 參數如下: 5:檔案的md5校正值 S:檔案的大小 L:連結檔案 T:檔案的建立時間 D:裝置檔案 U:檔案的使用者 G:檔案的使用者組 M:檔案的許可權 4、RPM包的管理 軟體包檔案提取 例如: 不小心刪除了/etc/inittab檔案 或從光碟片進入修複模式 [root@CentOS-Test bak]# rm -f /etc/inittab 尋找inittab檔案所屬的rpm包 [root@CentOS-Test bak]# rpm -qf /etc/inittab initscripts-9.03.31-2.el6.centos.i686 掛載光碟片到mnt/cdrom [root@CentOS-Test bak]# mount /dev/cdrom /mnt/cdrom 從光碟片中的rpm包中恢複inittab檔案到當前的目錄下 [root@CentOS-Test bak]# rpm2cpio /mnt/cdrom/Packages/initscripts-9.03.31-2.el6.centos.i686.rpm |cpio -idv ./etc/inittab ./etc/inittab 11182 塊 複製./etc/inittab檔案到/etc/inittab [root@CentOS-Test bak]# cp etc/inittab /etc/inittab 5、原始碼包安裝 原始碼包比較靈活可以再安裝時指定路徑或其它選項,安裝之前必須有編譯器 gcc或其它編譯器。安裝步驟一般為 安裝gcc編譯器(可以使用yum安裝) 解壓縮 執行./confgure make make install 以安裝proftpd為例 解壓縮軟體包 [root@CentOS-Test software]# tar -xzvf proftpd-1.3.4b.tar.gz 進入到解壓縮後的目錄然後顯示檔案清單 [root@CentOS-Test proftpd-1.3.4b]# ls acconfig.h configure.in install-sh modules README.controls README.modules src aclocal.m4 contrib lib NEWS README.cygwin README.PAM stamp-h.in ChangeLog COPYING locale proftpd.spec README.DSO README.ports tests config.guess CREDITS ltmain.sh README README.facl README.Solaris2.5x utils config.h.in doc m4 README.AIX README.FreeBSD README.Unixware config.sub include Makefile.in README.capabilities README.IPv6 RELEASE_NOTES configure INSTALL Make.rules.in README.classes README.LDAP sample-configurations 找到檔案中的configure,執行並加入--prefix參數指定安裝路徑 [root@CentOS-Test proftpd-1.3.4b]# ./configure --prefix=/usr/local/proftpd checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for gcc... no checking for cc... no checking for cl.exe... no configure: error: no acceptable C compiler found in $PATH See `config.log' for more details. 提示未找到gcc的編譯器,故需要先安裝gcc的編譯器 [root@CentOS-Test proftpd-1.3.4b]# rpm -qa gcc [root@CentOS-Test proftpd-1.3.4b]# yum install gcc 然後再次執行[root@CentOS-Test proftpd-1.3.4b]# ./configure --prefix=/usr/local/proftpd 編譯:make 在此之前一定要安裝編譯器 [root@CentOS-Test proftpd-1.3.4b]# make 安裝 make install [root@CentOS-Test proftpd-1.3.4b]# make install 6、指令碼安裝 例如:webmin、OpenOffice