2017-02-17 17 views
1

後,DNF和YUM不起作用我正在擺弄Fedora,試圖卸載一個python模塊。我無法找到我正在尋找的那個,所以一半的linux靈長類大腦想到了一個Idea,來執行這個。在清除usr/lib/python3.5/site-packages/

sudo rm -rf /usr/lib/python3.5/site-packages/ 

它做到了這一點,只有在那之後我才意識到我是多麼的愚蠢。 DNF和YUM依賴於它,每當我執行DNF我得到

Traceback (most recent call last): 
    File "/usr/bin/dnf", line 57, in <module> 
    from dnf.cli import main 
ImportError: No module named 'dnf' 

當我執行YUM

Redirecting to '/usr/bin/dnf ' (see 'man yum2dnf') 

Traceback (most recent call last): 
    File "/usr/bin/dnf", line 57, in <module> 
    from dnf.cli import main 
ImportError: No module named 'dnf' 

唯一可行的就是yum-deprecated。其他一切都處於動盪之中。

那麼我該如何解決這個問題?

回答

2

清除Python3的Site-Packages目錄會刪除很多Fedora需要正常運行的庫。這意味着工具如dnfyum不起作用。

這些是我用來解決這個問題的步驟。第一步:安裝yum-deprecated。只需在終端上鍵入yum-deprecated,它會問你是否要安裝它。類型y,它將被安裝。

第二步:在這個bash命令

rpm -qa | egrep "^python3" | sed ':a;N;$!ba;s/\n/ /g' | xargs sudo yum-deprecated reinstall -y 

此發現安裝了Python 3包所有的名字,並重新安裝。

給我自己的提示:從不再運行像sudo rm -rf /usr/lib/python3.5/site-packages/這樣的命令。

1

你基本上刪除了很多python文件。系統的大部分依賴於python,包括dnf本身,它是用python編寫的。

最好的辦法是備份所有文件並重新安裝系統。如果yum-deprecated仍然有效,則可能是重新安裝dnf運氣:

yum-deprecated reinstall "dnf*" 

,但最有可能你會需要更多的套餐採取通過同樣的程序。

+0

沒有解決它。您可以提供您已安裝的Python軟件包的名稱作爲需求文件。 –

2

使用'rpm -Va'識別缺少文件的包。然後您必須從Fedora鏡像下載匹配的RPM文件,然後使用rpm --reinstall來修復這些文件。

更高級別的dnf和yum包依賴於Python,所以它們很可能只是被打破。幸運的是,低級別的rpm命令不會,所以如果你已經刪除了python包,這應該會讓你恢復正常。

+0

我做到了這一點,並將輸出傳送到此文件中https://drive.google.com/file/d/0B-fWI8D4m3DxcWk0bmI3R1J5bGc/view?usp=sharing 這是大約7000行。不是特別有用。 –

+0

永遠不要在意,得到它的工作。謝謝 –