시스템 Python을 제거한 후 dnf를 수정하는 방법은 무엇입니까?

시스템 Python을 제거한 후 dnf를 수정하는 방법은 무엇입니까?

Python 환경을 삭제하려고 하는데 실수로 fedora의 기본 환경을 삭제하여 dnf 명령을 사용할 수 없게 만든 것 같습니다.

(연속적으로는 아니지만 이 세 가지 명령이 연관되어 있다고 생각합니다):

sudo rm /bin/python
sudo rm /usr/bin/python
sudo rm /bin/python3 /bin/python3.12 /bin/python-argcomplete-check-easy-install-script /bin/python-argcomplete-tcsh

그러다가 다음을 발견했습니다.

n349@fedora:~/Downloads$ sudo dnf upgrade
Place your right index finger on the fingerprint reader
^C[sudo] password for n349: 
sudo: dnf: command not found

dnf를 다시 설치해 보았지만 현재 내 컴퓨터에 dnf-4.19.0-1이 아직 설치되어 있는 것 같아서 다시 할 수 없습니다.

~/Downloads$ dnf --version
bash: dnf: command not found...
Install package 'dnf' to provide command 'dnf'? [N/y] y


 * Waiting in queue... 
 * Loading list of packages.... Failed to install packages: dnf-4.19.0-1.fc39.noarch is already installed
n349@fedora:~/Downloads$ ls -l /usr/bin/dnf
lrwxrwxrwx. 1 root root 19 Mar 11 01:37 /usr/bin/dnf -> /usr/bin/dnf-4.19.0

저는 dnf를 사용하여 ThinkPad X1 Carbon에 사전 설치된 Fedora 38에서 업그레이드된 Fedora 39를 사용하고 있습니다.

n349@fedora:~/Downloads$ uname -a
Linux fedora 6.7.7-200.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Mar  1 16:53:59 UTC 2024 x86_64 GNU/Linux

온라인으로 검색했지만 이 문제에 대한 해결책을 찾지 못했습니다. 누군가가 dnf의 기능을 복원하는 데 도움을 줄 수 있기를 바랍니다.

종속성을 다시 설치해 보았습니다.

$ sudo rpm -ivh --force dnf-data-4.19.0-1.fc39.noarch.rpm \
                      dnf-automatic-4.19.0-1.fc39.noarch.rpm \
                      python3-dnf-4.19.0-1.fc39.noarch.rpm \
                      yum-4.19.0-1.fc39.noarch.rpm

sudo rpm -ivh --force dnf-4.19.0-1.fc39.noarch.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:dnf-data-4.19.0-1.fc39           ################################# [ 25%]
   2:python3-dnf-4.19.0-1.fc39        ################################# [ 50%]
   3:dnf-automatic-4.19.0-1.fc39      ################################# [ 75%]
   4:yum-4.19.0-1.fc39                ################################# [100%]
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:dnf-4.19.0-1.fc39                ################################# [100%]

하지만 여전히 작동하지 않습니다. 오류 메시지가 다음과 같이 변경됩니다.

n349@fedora:~/Downloads$ dnf --version
bash: /usr/bin/dnf: cannot execute: required file not found

답변1

Python 인터프리터 자체를 다시 설치해야 합니다.

sudo rpm -Uvh https://dl.fedoraproject.org/pub/fedora/linux/updates/39/Everything/x86_64/Packages/p/python3-3.12.2-2.fc39.x86_64.rpm \
              https://dl.fedoraproject.org/pub/fedora/linux/updates/39/Everything/x86_64/Packages/p/python3-libs-3.12.2-2.fc39.x86_64.rpm

나중에 참조할 수 있도록 아래의 모든 항목 /usr( 제외 /usr/local)은 패키지 관리자에 속합니다. 해당 패키지 내의 파일을 직접 삭제하거나 변경할 수 없습니다. Python 3을 제거하려면 다음을 실행하세요.

sudo dnf remove python3

이를 시도하면 안되는 이유를 알려주고 계속할 수 있는 옵션을 제공합니다.

답변2

$ sudo rpm --reinstall --verbose --hash https://kojipkgs.fedoraproject.org/packages/python3.12/3.12.2/2.fc39/x86_64/python3-3.12.2-2.fc39.x86_64.rpm
Retrieving https://kojipkgs.fedoraproject.org/packages/python3.12/3.12.2/2.fc39/x86_64/python3-3.12.2-2.fc39.x86_64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:python3-3.12.2-2.fc39 ################################# [ 50%]
Cleaning up / removing...
2:python3-3.12.2-2.fc39 ################################# [100%]

$ rpm --query python3
python3-3.12.2-2.fc39.x86_64

$ dnf --version
4.19.0
Installed: dnf-0:4.19.0-1.fc39.noarch at Mon 11 Mar 2024 07:38:12 AM GMT
Built : Fedora Project at Tue 20 Feb 2024 02:19:51 PM GMT
Installed: rpm-0:4.19.1.1-1.fc39.x86_64 at Wed 21 Feb 2024 07:00:46 PM GMT
Built : Fedora Project at Wed 07 Feb 2024 04:05:57 PM GMT

인용하다

관련 정보