내 Debian 설치가 손상되었습니다. PATH에서 'sh'를 찾을 수 없습니다.

내 Debian 설치가 손상되었습니다. PATH에서 'sh'를 찾을 수 없습니다.

나는 사용자 정의 빌드를 실행하고 있습니다 Debian buster/sid. 잘못 실행하여 많은 문제가 발생하는 것 같습니다 apt-get dist-upgrade(이것이 바로 그 이유인 것 같습니다). 따라서 Desktop Manager\Desktop Environment는 더 이상 전혀 로드되지 않으며 명령줄 셸만 표시됩니다.

적성과 apt-get 및 dpkg가 손상되었습니다.

apt 업데이트, aptitude 업데이트 및 apt-get 업데이트가 실패하고 실행하려고 할 때 많은 오류가 발생하지만 내 /etc/apt/sources.list는 괜찮아 보입니다.

deb http://ftp.ie.debian.org/debian unstable main contrib non-free
deb-src http://ftp.ie.debian.org/debian unstable main contrib non-free
deb http://ftp.ie.debian.org/debian experimental main contrib non-free
deb-src http:// ftp.ie.debian.org/debian experimental main contrib non free
deb https://dl.winehq.org/wine-builds/debian sid main
deb https://dl.winehq.org/wine-builds/ubuntu sid main

이 오류는 다음을 업데이트할 때 발생합니다.

Err:2 http://ftp.ie.debian.org/debian unstable InRelease
Couldn't execute /usr/bin/apt-key to check /var/lib/apt/lists/partial/ftp.ie.debian.org_debian_dists_experimental_InRelease

그리고

E: Problem executing scripts APT::Update::Post-Invoke-Success '/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 4 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null'

E: Sub-process returned an error code

aptitude Upgrade, apt Upgrade 또는 apt-get Upgrade가 손상된 dpkg로 인해 손상된 것으로 나타납니다.

dpkg에서는 다음 오류가 발생합니다.

dpkg: warning: 'sh' not found in PATH or not executable
dpkg: error: 1 expected

그런데 돌아오는데 echo $PATH이게 좋아 보여요

/home/ferg/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

내가 노력하면 sh얻을 것이다

The program 'sh' is currently not installed. To run 'sh' please ask your administrator to install the package 'dash'

내가 시도하면sudo apt-get install dash

그것은 나에게 말한다dash is already the newest version (0.5.8-2.6)

내가 계속하면

E: Sub-process /usr/sbin/dpkg-preconfigure --apt || true returned an error code (100)
E: Failure running script /usr/sbin/dpkg/preconfigure --apt || true

내가 실행 sudo nano /etc/apt/apt.conf.d/70debconf하고 해당 줄을 주석 처리 하면DPkg::Pre-Install-Pkgs {"/usr/sbian/dpkg-preconfigure --apt || true";};

그러면 적성은 실패한다

dpkg: warning: 'sh' not found in PATH or not executable
dpkg: error: 1 expected

따라서 sh가 내 PATH에 없기 때문에 dpkg(및 aptitude, apt-get, apt)가 손상되었기 때문에 시스템을 복원하는 데 필요한 패키지를 다시 설치할 수 없습니다. 그러나 모든 올바른 디렉토리가 내 경로에 있습니다. 나는 이것을 sh로 고치면 dpkg와 aptitude가 다시 작동할 것이라고 가정하고 있지만, sh에 정확히 무엇이 문제인지 궁금합니다.

도움을 주셔서 미리 감사드립니다.


고쳐 쓰다:

ls -l /bin/bash

반품

-rwxr-xr-x 1 root root 1099016 May 15  2017 /bin/bash

ls -l /bin/sh반품

lrwxrwxrwx 1 root root 4 Jun 28  2017 /bin/sh -> dash

ls -l /bin/dash반품

ls: cannot access 'bin/dash': No such file or directory

그러면 /bin/sh가 어떻게든 삭제된 /bin/dash로 리디렉션되는 것 같나요?

sudo apt-get install --reinstall dash실패:

1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.    
E: Internal Error, No file name for dash:amd64

위와 같은 오류로 인해 실행이 sudo ln -sf bash /bin/sh실패 합니다.sudo apt-get install --reinstall dash

이 문제와 그 변형을 Google에서 검색하는 동안 사용자의 PATH 및 권한과 관련된 많은 솔루션을 찾았으며 및 를 포함하여 문제와 관련된 파일을 확인했습니다 /etc/sudoers /root/.bashrc. 대부분의 경우 사용자는 경로(일반적으로 누락된 경로 또는 디렉터리)를 올바르게 정의함으로써 문제를 해결할 수 있습니다. 위에서 언급했듯이 내 PATH에는 정상적으로 실행하든 루트로 실행하든 관계없이 모든 관련 디렉터리가 포함되어 있는 것 같습니다. 일부 사용자에게는 권한 또는 자체 문제가 있습니다. 또한 다양한 명령과 명령을 루트로 실행해 보았지만 이는 내 문제가 다르다는 것을 의미합니다./root/.profile/etc/profile/sbin/usr/sbinecho $PATHsudo echo $PATHsudoaptitude aptapt-getdpkgsudo -i

답변1

당신은 물렸다불쾌한 실수dash이로 인해 /bin/sh삭제가 발생했습니다. 이 문제는 해결되었으므로 다른 질문이 요청되어 apt update해결 apt full-upgrade되었습니다( /bin/shpointing 으로 되돌린 후 bash이에 대한 귀하의 의견이 명확하지 않았습니다).

답변2

@Stephen Kitt가 말했듯이 나는이 오류내 특정 배포판의 심볼릭 링크와 마찬가지로 dash깨졌습니다 ( Bourne 쉘).sh/bin/sh/bin/dash/

sudo ln -sf bash /bin/sh지적 sh하고 달리고 다시 문제를 해결했습니다 bash.sudo apt-get updatesudo apt-get install --reinstall dashsudo apt-get full-upgrade

관련 정보