1. 程式人生 > >Linux中rpm命令誤解除安裝了的恢復

Linux中rpm命令誤解除安裝了的恢復

今天在搭建MySQL叢集服務時,安裝MySQL叢集服務前,先解除安裝原來MySQL的軟體包,不小心將rpm的命令也給解除安裝掉了,這下慘了,什麼也做不了了。在Google了翻了好多個頁面,甚至官網也看了,沒能解決我的問題,根據本人多年Linux的經驗以及Linux系統的rpm軟體包安裝特點的敏感,本人想出了以下的方法,請注意:獨創!為做叢集,這裡用到了兩臺機器,下面是拓撲圖:

xiaolyu77(192.168.31.77rpm命令被解除安裝的機器)   ———–> 參照   xiaolyu76(192.168.31.76 正常機器) 。

1. 問題出現:

[[email protected]
 ~]# rpm -e –nodeps rpm -e mysql-libs-5.1.73-7.el6.x86_64

[[email protected] ~]# rpm -ivh MySQL-Cluster-server-gpl-7.3.7-1.el6.x86_64.rpm 
-bash: /bin/rpm: No such file or directory 

就是一不小心將rpm的命令用rpm強制給解除安裝了。可以看到已經不存在rpm命令了。

2. 檢查rpm命令安裝在哪裡:

 1.故障機器檢視rpm命令

[[email protected] ~]# whereis rpm


rpm: /etc/rpm /usr/lib/rpm

這裡寫圖片描述

 2. 正常機器檢視rpm命令

[[email protected] ~]# whereis rpm
rpm: /bin/rpm /etc/rpm /usr/lib/rpm /usr/share/man/man8/rpm.8.gz
[[email protected] ~]#

這裡寫圖片描述

3. 解決方案

從2.中可以看到77機器上rpm命令被解除安裝的,連man手冊也沒有了,bin下面更是沒有。

思路:想到編譯安裝的軟體的解除安裝方法是直接將安裝路徑下的檔案直接刪掉即可,那麼我們可不可以缺什麼補什麼呢?顯然可以啊。反過來不是一樣麼。

1. 補全whereis缺少的檔案

[[email protected] ~]# scp /bin/rpm  [email protected]:/bin/

[[email protected] ~]# scp /usr/share/man/man8/rpm.8.gz  [email protected]:/usr/share/man/man8/

這裡寫圖片描述

2. 補全安裝目錄下缺少的檔案

通過whereis命令我們看到/ur/lib/rpm這個檔案或者資料夾,實際上這個就是rpm命令的安裝路徑。現在比較兩臺機器下該目錄的檔案是否一致:

正常機器/usr/lib/rpm目錄下的檔案情況:

這裡寫圖片描述

這裡寫圖片描述

 77機器rpm被解除安裝的機器:

這裡寫圖片描述

這裡寫圖片描述

顯然通過對比發現有一些檔案77機器上是沒有的,尤其是9個軟連線檔案:

1.首先在77機器上建立這些軟連線檔案

[[email protected] rpm]# ln -s ../../bin/db_deadlock rpmdb_deadlock
[[email protected] rpm]# ln -s ../../bin/db_archive rpmdb_archive
[[email protected] rpm]# ln -s ../../bin/db_load rpmdb_load
[[email protected] rpm]# ln -s ../../bin/db_dump rpmdb_dump
[[email protected] rpm]# ln -s ../../bin/db_upgrade rpmdb_upgrade
[[email protected] rpm]# ln -s ../../bin/db_stat rpmdb_stat
[[email protected] rpm]# ln -s ../../bin/db_recover rpmdb_recover
[[email protected] rpm]# ln -s ../../bin/db_printlog rpmdb_printlog
[[email protected] rpm]# ln -s ../../bin/db_verify rpmdb_verify

# rpm_003

# rpm_004

驗證一下:

[[email protected] rpm]# rpm

# rpm_005

2.將rpmrc檔案從76環境複製過來:

[[email protected] rpm]# scp rpmrc  [email protected]:/usr/lib/rpm/

# rpm_006

# rpm 007

再次檢驗:發現貌似成功了:

[[email protected] rpm]# rpm

# rpm_008

[[email protected] ~]# rpm -qa
error: no dbpath has been set
error: cannot open Packages database in /%{_dbpath}
error: no dbpath has been set
error: cannot open Packages database in /%{_dbpath}

# rpm_009

3.出現這個問題:我們可以將macros 複製過去:

[[email protected] rpm]# scp  macros  [email protected]:/usr/lib/rpm/

# rpm_010

4. 執行一下updatedb命令

[[email protected] ~]# updatedb

# rpm_011

5. reboot重啟一下:ok!來檢驗一下:

[[email protected] rpm]# rpm -qa | grep rpm

# rpm_012

完美的解決了問題,是為記錄一下!

相關推薦

Linuxrpm命令誤解安裝恢復

今天在搭建MySQL叢集服務時,安裝MySQL叢集服務前,先解除安裝原來MySQL的軟體包,不小心將rpm的命令也給解除安裝掉了,這下慘了,什麼也做不了了。在Google了翻了好多個頁面,甚至官網也看了,沒能解決我的問題,根據本人多年Linux的經驗以及Linux系統的rpm軟體包安裝特點的敏感,本人想出了以

Linuxrpm命令引數使用詳解

Linux中rpm命令引數是我們在更新或升級中常用到它了,下面本文就來介紹rpm命令引數詳解,希望對各位朋友。 rpm 執行安裝包 二進位制包(Binary)以及原始碼包(Source)兩種。二進位制包可以直接安裝在計算機中,而原始碼包將會由RPM自動編譯、安裝。原始

如何在Linux使用命令列解除安裝軟體

所有的Linux系統中都帶有包管理器命令,比如Ubuntu發行版裡的dpkg命令,CentOS/RHEL發行版裡帶的yum和rpm命令,下面我就以自己比較熟悉的CentOS/RHEL系列發行版來講解,以nginx這個常用的web軟體為例。 檢視系統上是否安裝了nginx

CentOS7rpm,yum軟件安裝命令

問題 list share 不包含 安裝軟件 mod search 更新問題 自動下載 RPM包常用安裝位置說明 /etc/ 配置文件安裝目錄 /usr/bin/ 可執行的命令安裝目錄 /usr/lib/

Linux新建用戶用不sudo命令問題:rootr is not in the sudoers file.This incident will be reported解決

c-c++ 進入 去掉註釋 去掉 sudo命令 wheel gpasswd sdn 通用 參考:https://blog.csdn.net/lichangzai/article/details/39501025 如果執行sudo命令的用戶沒有執行sudo的權限,執行su

Linuxrpm和yum安裝軟件

查找 文件 remove move openjdk eps -i x86_64 版本 1、rpm的查找、刪除、安裝 rpm -qa | grep java --查看版本 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.101-3.b13.

Linuxrpm和yum安裝軟體

1、rpm的查詢、刪除、安裝 rpm -qa | grep java  --檢視版本 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64  --刪除版本資訊 rpm -ivh jdkxxx7.0.rpm 2

MongoDB——linuxyum命令安裝及配置

一、建立mongodb-org-3.4.repo檔案 vi /etc/yum.repos.d/mongodb-org-3.4.repo     將下面內容新增到建立的檔案中[mongodb-org-3

LinuxRPM軟件包管理及安裝

.rpm packages 分享圖片 ado yum linux中 ddb 數據 ack RPM 結構 查詢RPM軟件包信息 安裝,升級,卸載,RPM軟件包 RPM包管理工具 註:以下測試需要安裝rpm軟件倉庫( yum install rpm -y) 查詢已安裝

Linux操作系統rpm命令的詳細介紹

方式安裝 用途 裝包 col 管理 inf 詳細 ins 依賴關系 Linux中常見的軟件包封裝類型如下所述: RPM軟件包:這種軟件包的擴展名為 “.rpm” ,只能在使用RPM機制的Linux操作系統中安裝,如RHEL、Fedora、centOS等。RPM軟件包一般針對

linuxunzip命令用不原因

     今天小測安裝了vm,使用unzip的時候,提示用不了,結果蒙逼。。。,還是問度娘,發現沒有安裝unzip軟體,具體步驟如下:      #yum list | grep zip/unzip       #yum install zip      #yum inst

linuxrpm命令安裝軟體及第三方軟體的搭建

1.rpm命令  rpm  -ivh  name.rpm          安裝軟體,-v顯示過程,-h指定加密方式為hash                     -e     name              解除安裝軟體         -ql    name   

linux系統的軟件安裝 yum/rpm

更新 src 下載 鏡像文件 support 服務器 軟件管理 永久 訪問 1.yum介紹Yum(全稱為 Yellow dogUpdater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的

Linux 常用命令

ln -s directory 沒有 開始 media 關機命令 範圍 後臺作業 解壓縮 命令基本格式: 命令提示符:[[email protected]/* */ ~]# root 代表當前的登錄用戶(linux當中管理員賬號是root)

Linuxawk命令的簡單用法

.cn inux total com mage 簡單 image 用法 int 一、用例1:   cat /proc/meminfo|grep "MemTotal"|awk ‘{print $2}‘   說明,$2表示第2位,$0表示全部,如需表示$,可用$$轉義。

Linux cmake-3.x 編譯安裝以及man page添加

pypi --help edit 互聯 gui 一個 源代碼 beta alt 首先回顧一下 cmake-2.x 的編譯安裝。 ================ cmake-2.x編譯安裝說明 ================編譯安裝的命令: ./bootstrap --

linuxwc命令用法

字節 統計字符 -- 幫助信息 linux系統 count 沒有 標準 讀取 Linux系統中的wc(Word Count)命令的功能為統計指定文件中的字節數、字數、行數,並將統計結果顯示輸出。 1.命令格式: wc [選項]文件... 2.命令功能: 統計指定文件中的字節

Linux(CentOS 7)命令行模式安裝VMware Tools 詳解

模式 pre rtx 圖形界面 啟動圖 tar.gz term directory 文件解壓 本篇文章主要介紹了如何在Linux(CentOS 7)命令行模式安裝VMware Tools,具有一定的參考價值,感興趣的小夥伴們可以參考一下。 本例中為在Linux(以CentO

linuxexpect命令詳解

linux運維expect介紹expect 是由Don Libes基於Tcl(Tool Command Language )語言開發的,主要應用於自動化交互式操作的場景,借助Expect處理交互的命令,可以將交互過程如:ssh登錄,ftp登錄等寫在一個腳本上,使之自動化完成。尤其適用於需要對多臺服務器執行相同

linuxtop命令

ont def comm 均值 code virt neutron load 共享 #top top命令的第一行“ top - 19:56:47 up 39 min, 3 users, load average: 0.00, 0.00,