[root@localhost /]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
[root@localhost cdrom]# mkdir /mnt/cdrom [root@localhost cdrom]# mount /dev/sr0 /mnt/cdrom/ mount: 在 /dev/sr0 上找不到媒體 [root@localhost cdrom]# mount /dev/sr0 /mnt/cdrom/ mount: /dev/sr0 寫保護,將以只讀方式掛載 [root@localhost cdrom]# ls -al /mnt/cdrom/ 總用量 1643 drwxr-xr-x. 8 root root 2048 5月 4 2018 . drwxr-xr-x. 3 root root 19 1月 23 20:50 .. -rw-rw-r--. 1 root root 14 5月 2 2018 CentOS_BuildTag -rw-r--r--. 1 root root 29 5月 4 2018 .discinfo drwxr-xr-x. 3 root root 2048 5月 4 2018 EFI -rw-rw-r--. 1 root root 227 8月 30 2017 EULA -rw-rw-r--. 1 root root 18009 12月 10 2015 GPL drwxr-xr-x. 3 root root 2048 5月 4 2018 images drwxr-xr-x. 2 root root 2048 5月 4 2018 isolinux drwxr-xr-x. 2 root root 2048 5月 4 2018 LiveOS drwxrwxr-x. 2 root root 1640448 5月 3 2018 Packages drwxrwxr-x. 2 root root 4096 5月 7 2018 repodata -rw-rw-r--. 1 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-7 -rw-rw-r--. 1 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7 -r--r--r--. 1 root root 2883 5月 7 2018 TRANS.TBL -rw-r--r--. 1 root root 354 5月 4 2018 .treeinfo [root@localhost cdrom]# cd /mnt/cdrom/Packages/ [root@localhost Packages]# ls # 這將會列出全部的PRM包,這裏省略 ...
若是出現/dev/sr0 上找不到媒體
,解決辦法是在虛擬機底部的狀態欄內,找到CD/DVD圖標(一個光盤圖標),此時通常顯示爲灰色,鼠標點一下,便可啓動CD/DVD,此時CD/DVD便可加載到虛擬機系統內.
node
因此RPM包在哪呢? RPM包在/mnt/cdrom/Packages
目錄下:mysql
[root@localhost Packages]# pwd /mnt/cdrom/Packages [root@localhost Packages]# [root@localhost Packages]# cd / [root@localhost /]# umount /mnt/cdrom/
如:httpd-2.2.15-15.el6.centos.1.i686.rpmlinux
.so.數字
結尾,它依賴的實際上是一個文件,而不是軟件包。該文件藏身在某一個軟件包當中,咱們只要將該文件所在的軟件包安裝上,該文件也就安裝了。
[root@localhost Packages]# rpm -ivh mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm 警告:mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 錯誤:依賴檢測失敗: libodbc.so.2()(64bit) 被 mysql-connector-odbc-5.2.5-7.el7.x86_64 須要 libodbcinst.so.2()(64bit) 被 mysql-connector-odbc-5.2.5-7.el7.x86_64 須要 [root@localhost Packages]# # 提示說要安裝libodbc.so.2()(64bit),凡是以`.so.數字`結尾的依賴稱庫文件依賴(庫也稱模塊,庫就是linux中的函數,這裏的函數就是一個文件,使用稱庫文件)。 # 安裝時找不到如libodbc.so.2()這種依賴,爲啥呢?由於mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm 依賴的是一個文件而不是Packages目錄下的這些PRM軟件包, # 即被依賴的庫文件是藏身在衆多PRM軟件包中的一個文件,只要把這個文件所在PRM軟件包裝上,天然就有了被依賴的這個文件。那我怎麼知道這個文件在哪一個包裏面呢?
如mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm
就是包全名(完整的包名),而mysql-connector-odbc
是包名。web
/var/lib/rpm/
中的數據庫。(主要是卸載和查詢的時候)rpm -ivh 包全名
-i
(install) 安裝-v
(verbose) 顯示詳細信息-h
(hash) 顯示進度--nodeps
不檢測依賴性(實際生產環境——服務器上是不容許使用,必須解決依賴性)先裝主包,再安裝附加包(附加包依賴主包)正則表達式
[root@localhost Packages]# rpm -ivh httpd- httpd-2.4.6-80.el7.centos.x86_64.rpm httpd-manual-2.4.6-80.el7.centos.noarch.rpm httpd-devel-2.4.6-80.el7.centos.x86_64.rpm httpd-tools-2.4.6-80.el7.centos.x86_64.rpm [root@localhost Packages]# rpm -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 錯誤:依賴檢測失敗: /etc/mime.types 被 httpd-2.4.6-80.el7.centos.x86_64 須要 httpd-tools = 2.4.6-80.el7.centos 被 httpd-2.4.6-80.el7.centos.x86_64 須要 libapr-1.so.0()(64bit) 被 httpd-2.4.6-80.el7.centos.x86_64 須要 libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-80.el7.centos.x86_64 須要 [root@localhost Packages]# rpm -ivh httpd- httpd-2.4.6-80.el7.centos.x86_64.rpm httpd-manual-2.4.6-80.el7.centos.noarch.rpm httpd-devel-2.4.6-80.el7.centos.x86_64.rpm httpd-tools-2.4.6-80.el7.centos.x86_64.rpm [root@localhost Packages]# rpm -ivh httpd-tools-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-tools-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 錯誤:依賴檢測失敗: libapr-1.so.0()(64bit) 被 httpd-tools-2.4.6-80.el7.centos.x86_64 須要 libaprutil-1.so.0()(64bit) 被 httpd-tools-2.4.6-80.el7.centos.x86_64 須要 [root@localhost Packages]# rpm -ivh ^C [root@localhost Packages]# ^C [root@localhost Packages]# rpm -ivh apr-1.4.8-3.el7_4.1.x86_64.rpm 警告:apr-1.4.8-3.el7_4.1.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:apr-1.4.8-3.el7_4.1 ################################# [100%] [root@localhost Packages]# ^C [root@localhost Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm 警告:apr-util-1.5.2-6.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:apr-util-1.5.2-6.el7 ################################# [100%] [root@localhost Packages]# rpm -ivh httpd-tools-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-tools-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:httpd-tools-2.4.6-80.el7.centos ################################# [100%] [root@localhost Packages]# ^C [root@localhost Packages]# rpm -ivh apr-1.4.8-3.el7_4.1.x86_64.rpm 警告:apr-1.4.8-3.el7_4.1.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 apr-1.4.8-3.el7_4.1.x86_64 已經安裝 [root@localhost Packages]# ^C [root@localhost Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm 警告:apr-util-1.5.2-6.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 apr-util-1.5.2-6.el7.x86_64 已經安裝 [root@localhost Packages]# rpm -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 錯誤:依賴檢測失敗: /etc/mime.types 被 httpd-2.4.6-80.el7.centos.x86_64 須要 [root@localhost Packages]# rpm -ivh /etc/mime.types 錯誤:打開 /etc/mime.types 失敗: 沒有那個文件或目錄 [root@localhost Packages]# ^C [root@localhost Packages]# rpm -ivh mailcap-2.1.41-2.el7.noarch.rpm 警告:mailcap-2.1.41-2.el7.noarch.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:mailcap-2.1.41-2.el7 ################################# [100%] [root@localhost Packages]# rpm -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:httpd-2.4.6-80.el7.centos ################################# [100%] [root@localhost Packages]# [root@localhost Packages]# [root@localhost Packages]# rpm -ivh httpd- httpd-2.4.6-80.el7.centos.x86_64.rpm httpd-manual-2.4.6-80.el7.centos.noarch.rpm httpd-devel-2.4.6-80.el7.centos.x86_64.rpm httpd-tools-2.4.6-80.el7.centos.x86_64.rpm [root@localhost Packages]# rpm -ivh httpd-manual-2.4.6-80.el7.centos.noarch.rpm 警告:httpd-manual-2.4.6-80.el7.centos.noarch.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:httpd-manual-2.4.6-80.el7.centos ################################# [100%] [root@localhost Packages]# rpm -ivh httpd-devel-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-devel-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 錯誤:依賴檢測失敗: apr-devel 被 httpd-devel-2.4.6-80.el7.centos.x86_64 須要 apr-util-devel 被 httpd-devel-2.4.6-80.el7.centos.x86_64 須要 [root@localhost Packages]# rpm -ivh apr-devel-1.4.8-3.el7_4.1. 錯誤:打開 apr-devel-1.4.8-3.el7_4.1. 失敗: 沒有那個文件或目錄 [root@localhost Packages]# rpm -ivh apr-devel-1.4.8-3.el7_4.1. apr-devel-1.4.8-3.el7_4.1.i686.rpm apr-devel-1.4.8-3.el7_4.1.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-devel-1.4.8-3.el7_4.1.x86_64.rpm 警告:apr-devel-1.4.8-3.el7_4.1.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:apr-devel-1.4.8-3.el7_4.1 ################################# [100%] [root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7. apr-util-devel-1.5.2-6.el7.i686.rpm apr-util-devel-1.5.2-6.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm 警告:apr-util-devel-1.5.2-6.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 錯誤:依賴檢測失敗: expat-devel(x86-64) 被 apr-util-devel-1.5.2-6.el7.x86_64 須要 libdb-devel(x86-64) 被 apr-util-devel-1.5.2-6.el7.x86_64 須要 openldap-devel(x86-64) 被 apr-util-devel-1.5.2-6.el7.x86_64 須要 [root@localhost Packages]# ^C [root@localhost Packages]# rpm -ivh expat-devel-2.1.0-10.el7_3.x86_64.rpm 警告:expat-devel-2.1.0-10.el7_3.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:expat-devel-2.1.0-10.el7_3 ################################# [100%] [root@localhost Packages]# ^C [root@localhost Packages]# rpm -ivh lib Display all 2016 possibilities? (y or n) [root@localhost Packages]# rpm -ivh libdb-devel-5.3.21-24.el7.x86_64.rpm 警告:libdb-devel-5.3.21-24.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:libdb-devel-5.3.21-24.el7 ################################# [100%] [root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm 警告:apr-util-devel-1.5.2-6.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 錯誤:依賴檢測失敗: openldap-devel(x86-64) 被 apr-util-devel-1.5.2-6.el7.x86_64 須要 [root@localhost Packages]# ^C [root@localhost Packages]# rpm -ivh openldap-devel-2.4.44-13.el7.x86_64.rpm 警告:openldap-devel-2.4.44-13.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 錯誤:依賴檢測失敗: cyrus-sasl-devel(x86-64) 被 openldap-devel-2.4.44-13.el7.x86_64 須要 [root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm 警告:apr-util-devel-1.5.2-6.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 錯誤:依賴檢測失敗: openldap-devel(x86-64) 被 apr-util-devel-1.5.2-6.el7.x86_64 須要 [root@localhost Packages]# ^C [root@localhost Packages]# rpm -ivh openldap-devel-2.4.44-20.el7.x86_64.rpm 錯誤:打開 openldap-devel-2.4.44-20.el7.x86_64.rpm 失敗: 沒有那個文件或目錄 [root@localhost Packages]# rpm -ivh openldap-devel-2.4.44-13.el7.x86_64.rpm 警告:openldap-devel-2.4.44-13.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 錯誤:依賴檢測失敗: cyrus-sasl-devel(x86-64) 被 openldap-devel-2.4.44-13.el7.x86_64 須要 [root@localhost Packages]# ^C [root@localhost Packages]# rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm 警告:cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:cyrus-sasl-devel-2.1.26-23.el7 ################################# [100%] [root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm 警告:apr-util-devel-1.5.2-6.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 錯誤:依賴檢測失敗: openldap-devel(x86-64) 被 apr-util-devel-1.5.2-6.el7.x86_64 須要 [root@localhost Packages]# rpm -ivh openldap-devel-2.4.44-13.el7.x86_64.rpm 警告:openldap-devel-2.4.44-13.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:openldap-devel-2.4.44-13.el7 ################################# [100%] [root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm 警告:apr-util-devel-1.5.2-6.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:apr-util-devel-1.5.2-6.el7 ################################# [100%] [root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm 警告:apr-util-devel-1.5.2-6.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 apr-util-devel-1.5.2-6.el7.x86_64 已經安裝 [root@localhost Packages]# rpm -ivh httpd- httpd-2.4.6-80.el7.centos.x86_64.rpm httpd-manual-2.4.6-80.el7.centos.noarch.rpm httpd-devel-2.4.6-80.el7.centos.x86_64.rpm httpd-tools-2.4.6-80.el7.centos.x86_64.rpm [root@localhost Packages]# rpm -ivh httpd-manual-2.4.6-80.el7.centos.noarch.rpm 警告:httpd-manual-2.4.6-80.el7.centos.noarch.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 httpd-manual-2.4.6-80.el7.centos.noarch 已經安裝 [root@localhost Packages]# rpm -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 httpd-2.4.6-80.el7.centos.x86_64 已經安裝 [root@localhost Packages]# rpm -ivh httpd-devel-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-devel-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:httpd-devel-2.4.6-80.el7.centos ################################# [100%] [root@localhost Packages]# rpm -ivh httpd-tools-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-tools-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 httpd-tools-2.4.6-80.el7.centos.x86_64 已經安裝 [root@localhost Packages]#
[root@localhost Packages]# rmp -ivh httpd- httpd-2.4.6-80.el7.centos.x86_64.rpm httpd-manual-2.4.6-80.el7.centos.noarch.rpm httpd-devel-2.4.6-80.el7.centos.x86_64.rpm httpd-tools-2.4.6-80.el7.centos.x86_64.rpm [root@localhost Packages]# rmp -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm bash: rmp: 未找到命令... 類似命令是: 'rpm' [root@localhost Packages]# rmp -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm bash: rmp: 未找到命令... 類似命令是: 'rpm' [root@localhost Packages]# rmp -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm bash: rmp: 未找到命令... 類似命令是: 'rpm' [root@localhost Packages]# rpm -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 httpd-2.4.6-80.el7.centos.x86_64 已經安裝 [root@localhost Packages]# rpm -ivh httpd-manual-2.4.6-80.el7.centos.noarch.rpm 警告:httpd-manual-2.4.6-80.el7.centos.noarch.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 httpd-manual-2.4.6-80.el7.centos.noarch 已經安裝 [root@localhost Packages]# rpm -ivh httpd-devel-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-devel-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 httpd-devel-2.4.6-80.el7.centos.x86_64 已經安裝 [root@localhost Packages]# rpm -ivh httpd-tools-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-tools-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 httpd-tools-2.4.6-80.el7.centos.x86_64 已經安裝 [root@localhost Packages]#
累趴…sql
-rpm -Uvh 包全名
shell
-U
(upgrade)升級[root@localhost ~]# cd /mnt/cdrom/Packages/ [root@localhost Packages]# rpm -Uvh httpd-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 httpd-2.4.6-80.el7.centos.x86_64 已經安裝 [root@localhost Packages]#
rpm -e 包名
-e
(erase) 卸載--nodeps
不檢查依賴性(一樣,實際生產環境————服務器上是不容許使用,必須解決依賴性)/var/lib/rpm/
),使用不用使用包全名,並且在任何位置均可以執行卸載命令(不用注意路徑, 而安裝命令必定要進入/mnt/cdrom/Packages/
)例子:數據庫
Last login: Wed Jan 23 17:59:27 2019 from 192.168.249.1 [root@localhost ~]# cd /mnt/cdrom/Packages/ [root@localhost Packages]# rpm -Uvh httpd-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 軟件包 httpd-2.4.6-80.el7.centos.x86_64 已經安裝 [root@localhost Packages]# ls /var/lib/rpm/ Basenames __db.001 __db.003 Group Name Packages Requirename Sigmd5 Conflictname __db.002 Dirnames Installtid Obsoletename Providename Sha1header Triggername [root@localhost Packages]# ^C [root@localhost Packages]# rpm -e httpd 錯誤:依賴檢測失敗: httpd = 2.4.6-80.el7.centos 被 (已安裝) httpd-manual-2.4.6-80.el7.centos.noarch 須要 httpd = 2.4.6-80.el7.centos 被 (已安裝) httpd-devel-2.4.6-80.el7.centos.x86_64 須要 [root@localhost Packages]#
使用--nodeps
————這裏只是演示apache
[root@localhost Packages]# rpm -e httpd --nodeps [root@localhost Packages]# rpm -Uvh httpd-2.4.6-80.el7.centos.x86_64.rpm 警告:httpd-2.4.6-80.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:httpd-2.4.6-80.el7.centos ################################# [100%] [root@localhost Packages]#
rpm -q 包名
# 查詢包是否安裝
-q
(query) 查詢rpm -qa
# 查詢全部已經安裝的RPM包
-a
(all) 全部[root@localhost Packages]# rpm -q httpd httpd-2.4.6-80.el7.centos.x86_64 [root@localhost Packages]# rpm -q onefine 未安裝軟件包 onefine [root@localhost Packages]# rpm -qa # 列出全部安裝的包,省略 ...
利用管道符————一旦使用grep
,後面的就是正則表達式————推薦使用centos
[root@localhost Packages]# rpm -qa | grep httpd httpd-manual-2.4.6-80.el7.centos.noarch httpd-2.4.6-80.el7.centos.x86_64 httpd-tools-2.4.6-80.el7.centos.x86_64 httpd-devel-2.4.6-80.el7.centos.x86_64 [root@localhost Packages]#
rpm -qi 包名
-i
(information) 查詢軟件信息-p
(package) 查詢未安裝包信息查詢已安裝包的信息:
[root@localhost Packages]# rpm -qi httpd Name : httpd Version : 2.4.6 Release : 80.el7.centos Architecture: x86_64 Install Date: 2019年01月24日 星期四 00時13分06秒 Group : System Environment/Daemons Size : 9817285 License : ASL 2.0 Signature : RSA/SHA256, 2018年04月25日 星期三 19時04分41秒, Key ID 24c6a8a7f4a80eb5 Source RPM : httpd-2.4.6-80.el7.centos.src.rpm Build Date : 2018年04月21日 星期六 02時12分22秒 Build Host : x86-01.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem <http://bugs.centos.org> Vendor : CentOS URL : http://httpd.apache.org/ Summary : Apache HTTP Server Description : The Apache HTTP Server is a powerful, efficient, and extensible web server. [root@localhost Packages]#
查詢未安裝包的信息(存在但沒安裝的包,此時跟包全名而且要注意位置————切換目錄)
[root@localhost Packages]# pwd /mnt/cdrom/Packages [root@localhost Packages]# rpm -qip mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm 警告:mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY Name : mysql-connector-odbc Version : 5.2.5 Release : 7.el7 Architecture: x86_64 Install Date: (not installed) Group : System Environment/Libraries Size : 428611 License : GPLv2 with exceptions Signature : RSA/SHA256, 2018年04月25日 星期三 19時28分41秒, Key ID 24c6a8a7f4a80eb5 Source RPM : mysql-connector-odbc-5.2.5-7.el7.src.rpm Build Date : 2018年04月11日 星期三 09時41分42秒 Build Host : x86-01.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem <http://bugs.centos.org> Vendor : CentOS URL : http://dev.mysql.com/downloads/connector/odbc/ Summary : ODBC driver for MySQL Description : An ODBC (rev 3) driver for MySQL, for use with unixODBC. [root@localhost Packages]#
rpm -ql 包名
-l
(list) 列表-p
(package) 查詢未安裝包信息[root@localhost Packages]# rpm -ql httpd /etc/httpd /etc/httpd/conf /etc/httpd/conf.d /etc/httpd/conf.d/README /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.modules.d ...省略好多
RPM包默認(習慣、推薦、常規)安裝路徑 | |
---|---|
/etc/ |
配置文件安裝目錄 |
/usr/bin/ |
可執行的命令安裝目錄 |
/usr/lib/ |
程序所使用的函數庫保存位置 |
/usr/share/doc/ |
基本的軟件使用手冊保存位置 |
/usr/share/man/ |
幫助文件保存位置 |
這是包安裝的推薦位置,可是實際上不必定,這取決與寫包的做者的安排。正是由於這樣,因此纔有RPM包的卸載命令。下面的實踐就更好理解了。
查詢未安裝包的默認安裝(還沒裝,但安裝以後會在的位置)位置(存在但沒安裝的包,此時跟包全名而且要注意位置————切換目錄)
[root@localhost Packages]# pwd /mnt/cdrom/Packages [root@localhost Packages]# rpm -qlp mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm 警告:mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY /usr/lib64/libmyodbc5.so /usr/lib64/libmyodbc5w.so /usr/share/doc/mysql-connector-odbc-5.2.5 /usr/share/doc/mysql-connector-odbc-5.2.5/COPYING /usr/share/doc/mysql-connector-odbc-5.2.5/ChangeLog /usr/share/doc/mysql-connector-odbc-5.2.5/README /usr/share/doc/mysql-connector-odbc-5.2.5/README.debug [root@localhost Packages]#
rpm -qf 系統文件名
-f
(file) 查詢系統文件屬於哪一個安裝包[root@localhost Packages]# rpm -qf /etc/httpd/conf.d httpd-2.4.6-80.el7.centos.x86_64 [root@localhost Packages]#
來搗亂:
[root@localhost Packages]# rpm -qf onefine 錯誤:文件 /mnt/cdrom/Packages/onefine:沒有那個文件或目錄 [root@localhost Packages]# touch abc touch: 沒法建立"abc": 只讀文件系統 [root@localhost Packages]# touch /home/onefine/hahaha [root@localhost Packages]# ls -al /home/onefine/ 總用量 12 drwx------. 3 onefine onefine 92 1月 24 01:24 . drwxr-xr-x. 3 root root 21 1月 23 17:45 .. -rw-r--r--. 1 onefine onefine 18 4月 11 2018 .bash_logout -rw-r--r--. 1 onefine onefine 193 4月 11 2018 .bash_profile -rw-r--r--. 1 onefine onefine 231 4月 11 2018 .bashrc -rw-r--r--. 1 root root 0 1月 24 01:24 hahaha drwxr-xr-x. 4 onefine onefine 39 1月 23 17:33 .mozilla [root@localhost Packages]# rpm -qf /home/onefine/hahaha 文件 /home/onefine/hahaha 不屬於任何軟件包 [root@localhost Packages]# rm /home/onefine/hahaha rm:是否刪除普通空文件 "/home/onefine/hahaha"?y [root@localhost Packages]# ls -al /home/onefine/ 總用量 12 drwx------. 3 onefine onefine 78 1月 24 01:26 . drwxr-xr-x. 3 root root 21 1月 23 17:45 .. -rw-r--r--. 1 onefine onefine 18 4月 11 2018 .bash_logout -rw-r--r--. 1 onefine onefine 193 4月 11 2018 .bash_profile -rw-r--r--. 1 onefine onefine 231 4月 11 2018 .bashrc drwxr-xr-x. 4 onefine onefine 39 1月 23 17:33 .mozilla [root@localhost Packages]#
因此,這個文件必須是由RPM包安裝的,才能方向追蹤所屬的包————'系統文件名’的意思。
再來:已知未安裝包未來的位置。。查這個不存在的文件會怎麼樣?以上面的MySQL爲例
[root@localhost Packages]# rpm -qf /usr/lib64/libmyodbc5w.so 錯誤:文件 /usr/lib64/libmyodbc5w.so:沒有那個文件或目錄 [root@localhost Packages]# [root@localhost Packages]# rpm -qf #/usr/lib64/libmyodbc5w.so 錯誤:文件 /usr/lib64/libmyodbc5w.so:沒有那個文件或目錄 [root@localhost Packages]# rpm -qfp /usr/lib64/libmyodbc5w.so # 固然了,這是錯誤的 rpm:每次僅能執行一種類型的查詢/檢驗 [root@localhost Packages]#
rpm -qR 包名
-R
(requires) 查詢軟件包的依賴性-p
(package) 查詢未安裝包的信息[root@localhost Packages]# rpm -qR httpd /etc/mime.types system-logos >= 7.92.1-1 httpd-tools = 2.4.6-80.el7.centos /usr/sbin/useradd /usr/sbin/groupadd systemd-units systemd-units systemd-units /bin/sh /bin/sh /bin/sh /bin/sh /bin/sh /bin/sh rpmlib(FileDigests) <= 4.6.0-1 rpmlib(FileCaps) <= 4.6.1-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 /bin/sh libapr-1.so.0()(64bit) libaprutil-1.so.0()(64bit) libcrypt.so.1()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.4)(64bit) libdb-5.3.so()(64bit) libdl.so.2()(64bit) libexpat.so.1()(64bit) liblua-5.1.so()(64bit) libm.so.6()(64bit) libpcre.so.1()(64bit) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) libselinux.so.1()(64bit) libsystemd-daemon.so.0()(64bit) libsystemd-daemon.so.0(LIBSYSTEMD_DAEMON_31)(64bit) libz.so.1()(64bit) rtld(GNU_HASH) rpmlib(PayloadIsXz) <= 5.2-1 [root@localhost Packages]#
列出全部全部全部……若是要查看包的依賴去安裝包,這個意義不大,還不如直接安裝,安裝提示安裝缺失的依賴。
[root@localhost Packages]# pwd /mnt/cdrom/Packages [root@localhost Packages]# rpm -qR mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm 未安裝軟件包 mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm [root@localhost Packages]# rpm -qRp mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm 警告:mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY /sbin/ldconfig /sbin/ldconfig libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libdl.so.2()(64bit) libdl.so.2(GLIBC_2.2.5)(64bit) libm.so.6()(64bit) libmysqlclient.so.18()(64bit) libmysqlclient.so.18(libmysqlclient_18)(64bit) libodbc.so.2()(64bit) libodbcinst.so.2()(64bit) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rtld(GNU_HASH) rpmlib(PayloadIsXz) <= 5.2-1 [root@localhost Packages]#
rpm -V 已安裝的包名
-V
(verify) 校驗指定RPM包中的文件[root@localhost ~]# rpm -V httpd [root@localhost ~]# pwd /root [root@localhost ~]# rpm -ql httpd | more /etc/httpd /etc/httpd/conf /etc/httpd/conf.d /etc/httpd/conf.d/README /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.modules.d /etc/httpd/conf.modules.d/00-base.conf /etc/httpd/conf.modules.d/00-dav.conf /etc/httpd/conf.modules.d/00-lua.conf /etc/httpd/conf.modules.d/00-mpm.conf /etc/httpd/conf.modules.d/00-proxy.conf /etc/httpd/conf.modules.d/00-systemd.conf /etc/httpd/conf.modules.d/01-cgi.conf /etc/httpd/conf/httpd.conf /etc/httpd/conf/magic /etc/httpd/logs /etc/httpd/modules /etc/httpd/run /etc/logrotate.d/httpd /etc/sysconfig/htcacheclean /etc/sysconfig/httpd /run/httpd /run/httpd/htcacheclean /usr/lib/systemd/system/htcacheclean.service /usr/lib/systemd/system/httpd.service /usr/lib/tmpfiles.d/httpd.conf /usr/lib64/httpd /usr/lib64/httpd/modules /usr/lib64/httpd/modules/mod_access_compat.so /usr/lib64/httpd/modules/mod_actions.so /usr/lib64/httpd/modules/mod_alias.so /usr/lib64/httpd/modules/mod_allowmethods.so /usr/lib64/httpd/modules/mod_asis.so /usr/lib64/httpd/modules/mod_auth_basic.so /usr/lib64/httpd/modules/mod_auth_digest.so /usr/lib64/httpd/modules/mod_authn_anon.so /usr/lib64/httpd/modules/mod_authn_core.so /usr/lib64/httpd/modules/mod_authn_dbd.so /usr/lib64/httpd/modules/mod_authn_dbm.so /usr/lib64/httpd/modules/mod_authn_file.so /usr/lib64/httpd/modules/mod_authn_socache.so /usr/lib64/httpd/modules/mod_authz_core.so /usr/lib64/httpd/modules/mod_authz_dbd.so /usr/lib64/httpd/modules/mod_authz_dbm.so /usr/lib64/httpd/modules/mod_authz_groupfile.so --More-- # 後面的省略 ... # ...修改/etc/httpd/conf/httpd.conf文件 [root@localhost ~]# vi /etc/httpd/conf/httpd.conf # ...添加下面一句話 # 你被改了你知道不 # ...省略其餘 # ...保存退出後 [root@localhost ~]# rpm -V httpd S.5....T. c /etc/httpd/conf/httpd.conf # ...修改回來 [root@localhost ~]# vi /etc/httpd/conf/httpd.conf # ...修改回來以後 [root@localhost ~]# rpm -V httpd .......T. c /etc/httpd/conf/httpd.conf [root@localhost ~]#
S
文件大小是否改變M
文件的類型或文件的權限(rwx)是否被改變5
文件的MD5校驗和是否改變(能夠當作文件內容是否改變)D
設備的主從代碼是否改變L
文件的路徑是否改變U
文件的屬主(全部者)是否改變G
文件的屬組是否改變T
文件的修改時間是否改變c
(config file) 配置文件d
(documentation) 普通文件g
(ghost file) "鬼"文件,不多見,就是該文件不該該被這個RPM所包含L
(license file) 受權文件r
(read me) 描述文件rpm2cpio 包全名 | cpio -idv .文件絕對路徑
rpm2cpio
將rpm包轉換爲cpio格式的命令
cpio
是一個標準工具,它用於建立軟件歸檔文件和從檔案文件中提取文件
cpio
並不知道咱們所要提取的文件的位置在哪,cpio
命令的完整格式:cpio 選項 <[文件|設備]
-i
copy-in模式,還原-d
還原時自動新建目錄-v
顯示還原過程[root@localhost ~]# whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz [root@localhost ~]# ls -al /tmp/ 總用量 936 drwxrwxrwt. 16 root root 4096 1月 24 10:32 . dr-xr-xr-x. 17 root root 224 1月 23 17:45 .. -rw-r--r--. 1 root root 1149 1月 23 17:49 anaconda.log drwx------. 2 root root 20 1月 23 17:55 .esd-0 drwx------. 2 root root 25 1月 23 17:57 firefox_root drwxrwxrwt. 2 root root 6 1月 23 17:35 .font-unix drwxr-xr-x. 2 root root 18 1月 23 17:35 hsperfdata_root drwxrwxrwt. 2 root root 42 1月 23 17:55 .ICE-unix -rw-r--r--. 1 root root 415 1月 23 17:49 ifcfg.log -rwx------. 1 root root 836 1月 23 17:46 ks-script-L9LDqY -rw-r--r--. 1 root root 0 1月 23 17:49 packaging.log -rw-r--r--. 1 root root 0 1月 23 17:49 program.log -rw-r--r--. 1 root root 0 1月 23 17:49 sensitive-info.log drwx------. 2 root root 24 1月 23 17:55 ssh-2uFxXSQ6gkGr -rw-r--r--. 1 root root 0 1月 23 17:49 storage.log drwx------. 3 root root 17 1月 23 17:54 systemd-private-7e3b8f68675b40e9897b290377d43299-colord.service-aG1lXN drwx------. 3 root root 17 1月 23 17:54 systemd-private-7e3b8f68675b40e9897b290377d43299-cups.service-3UD9lx drwx------. 3 root root 17 1月 23 17:54 systemd-private-7e3b8f68675b40e9897b290377d43299-rtkit-daemon.service-nv9Cuu drwxrwxrwt. 2 root root 6 1月 23 17:35 .Test-unix drwx------. 2 root root 6 1月 23 17:55 tracker-extract-files.0 drwx------. 2 root root 6 1月 23 17:49 vmware-root -r--r--r--. 1 root root 11 1月 23 17:54 .X0-lock drwxrwxrwt. 2 root root 16 1月 23 17:54 .X11-unix drwxrwxrwt. 2 root root 6 1月 23 17:35 .XIM-unix -rw-------. 1 root root 0 1月 23 17:32 yum.log -rw-------. 1 root root 466361 1月 23 17:57 yum_save_tx.2019-01-23.17-57.TSYLg6.yumtx -rw-------. 1 root root 469566 1月 24 09:45 yum_save_tx.2019-01-24.09-45.UL5IOq.yumtx [root@localhost ~]# mv /bin/ls /tmp/ [root@localhost ~]# ls -al /tmp/ -bash: /usr/bin/ls: 沒有那個文件或目錄 [root@localhost ~]# ls -bash: /usr/bin/ls: 沒有那個文件或目錄 [root@localhost ~]#
這時,假如是誤操做致使ls
找不到,能夠找到另外一臺Linux,把缺失的命令文件找出來複製,但要保證版本號和缺失的一致。額,要是mv
也丟了呢?這時能夠經過RPM包中提取文件的方法:
咱們知道全部的文件RPM包安裝獲得的,全部的系統文件,重要文件等都在RPM包當中。此時能夠把丟失文件所在的RPM包打開,從裏面提取出所須要的RPM命令,這就是所謂RPM包文件提取。固然了,重新安裝缺失文件所在RPM包也能夠解決問題。
[root@localhost ~]# rpm -qf /bin/ls coreutils-8.22-21.el7.x86_64 [root@localhost ~]# ls -bash: /usr/bin/ls: 沒有那個文件或目錄 # 還原ls [root@localhost ~]# mv /tmp/ls /bin/ [root@localhost ~]# ls -al /bin/ls -rwxr-xr-x. 1 root root 117672 4月 11 2018 /bin/ls # 實驗從這裏開始 # 查詢ls命令屬於哪一個軟件包 [root@localhost ~]# rpm -qf /bin/ls coreutils-8.22-21.el7.x86_64 # 移走ls,形成ls命令誤刪除假象 [root@localhost ~]# mv /bin/ls /tmp/ # 提取RPM包中ls命令到當前目錄的/bin/ls下 [root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-21.el7.x86_64.rpm | cpio -idv ./bin/ls 28594 塊 [root@localhost ~]# pwd /root [root@localhost ~]# cp /root/bin/ls /bin/ cp: 沒法獲取"/root/bin/ls" 的文件狀態(stat): 沒有那個文件或目錄 [root@localhost ~]# ls -bash: /usr/bin/ls: 沒有那個文件或目錄 [root@localhost ~]# cp /root/ anaconda-ks.cfg .bashrc .dbus/ .local/ 模板/ 下載/ .bash_history .cache/ .esd_auth .mozilla/ 視頻/ 音樂/ .bash_logout .config/ .ICEauthority .tcshrc 圖片/ 桌面/ .bash_profile .cshrc initial-setup-ks.cfg 公共/ 文檔/ [root@localhost ~]# dir anaconda-ks.cfg initial-setup-ks.cfg 公共 模板 視頻 圖片 文檔 下載 音樂 桌面 [root@localhost ~]# find / -name 'ls' /tmp/ls [root@localhost ~]#
好鬱悶吶,找了半天最終仍是找出來了:
# 提取RPM包中ls命令到當前目錄的/usr/bin/ls下 # rpm2cpio是說把RPM包/mnt/cdrom/Packages/coreutils-8.22-21.el7.x86_64.rpm的數據轉換爲cpio格式的。 # cpio -idv ./usr/bin/ls 是說cpio知道了要從/mnt/cdrom/Packages/coreutils-8.22-21.el7.x86_64.rpm中提取數據——/usr/bin/ls,`.`表示從把/usr/bin/ls這個文件提取到當前所在目錄下 # 參數`-d`表示自動新建目錄,因此提取的文件ls會保存在當前目錄下的/usr/bin/目錄下 # 管道符的做用是將第一個命令的結果做爲第二個命令的操做對象 [root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-21.el7.x86_64.rpm | cpio -idv ./usr/bin/ls ./usr/bin/ls 28594 塊 [root@localhost ~]# dir anaconda-ks.cfg initial-setup-ks.cfg usr 公共 模板 視頻 圖片 文檔 下載 音樂 桌面 [root@localhost ~]# dir ./usr/bin/ ls # 把ls命令複製回/bin/目錄,修復文件丟失 [root@localhost ~]# cp ./usr/bin/ls /bin/ [root@localhost ~]# ls anaconda-ks.cfg initial-setup-ks.cfg usr 公共 模板 視頻 圖片 文檔 下載 音樂 桌面 [root@localhost ~]# rm -rf ./usr [root@localhost ~]# ls anaconda-ks.cfg initial-setup-ks.cfg 公共 模板 視頻 圖片 文檔 下載 音樂 桌面 [root@localhost ~]#
注:./usr
是當前目錄下的usr文件夾,是相對路徑。/usr
是根目錄下的usr文件夾,是絕對路徑。.
千萬不能省略,表明缺失文件要保存在命令執行時所在的當前目錄的位置。
但這是什麼緣由呢?查看一下ls命令所在RPM包的默認安裝位置:
[root@localhost /]# pwd / [root@localhost /]# rpm -ql coreutils /etc/DIR_COLORS /etc/DIR_COLORS.256color /etc/DIR_COLORS.lightbgcolor /etc/profile.d/colorls.csh /etc/profile.d/colorls.sh /usr/bin/[ ... /usr/bin/ls # 先後被省略 ... [root@localhost /]#
恍然大悟。。。