dpkg가 PATH 변수에서 ldconfig/start-stop-daemon을 찾을 수 없습니다.

dpkg가 PATH 변수에서 ldconfig/start-stop-daemon을 찾을 수 없습니다.

패키지가 설치된 유틸리티를 설치하려고 했는데 bsd-mailx오류가 궁금합니다.

내가 얻는 오류는 다음과 같습니다.

Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
dpkg: error: 2 expected programs not found in PATH or not executable.
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)

답변1

우선, 당신이 정말로 관심을 갖고 있는 라인은 다음과 같습니다:

dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.

이러한 오류는 Debian 및 Ubuntu 사용자에 의해 여러 번 보고되었습니다(자세한 내용은 실제로 Google에서 확인할 수 있습니다). PATH사용자가 를 통해 명령을 실행하려고 할 때 변수가 올바르게 설정되지 않은 것 같습니다 sudo. 이는 아마도 귀하가 수행하려는 작업일 것입니다.

해결 방법 1: sudo의 기본 보안 경로 설정

터미널에서 /etc/sudoers실행하여 열고 파일에 다음 줄이 포함되어 있는지 확인하세요.visudo

Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

이 문제에 대한 추가 정보를 찾을 수 있습니다.여기(문제 및 팁 > PATH가 설정되지 않음)

해결 방법 2: 루트 계정을 직접 사용

을 사용하지 말고 sudo로 전환하여 root명령을 실행하세요. 이렇게 하려면 다음 명령 중 하나를 실행하세요.

$ sudo -i
$ su 

루트로 로그인한 후 다음 apt-get명령을 다시 실행하세요.

# apt-get ...

하지만 루트를 먼저 설정해야 할 수도 있습니다 PATH. /root/.bashrc(물론 루트 권한으로) 편집 하고 다음 줄을 추가합니다.

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

해결 방법 3: 실행 시 PATH변수를 전달해 보세요 .sudo

sudo변수 재정의를 호출 앞에 붙이면 됩니다 PATH.

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin sudo apt-get ...

답변2

어떻게 든 나는 같은 문제가있었습니다.

오류 메시지를 주의 깊게 읽으면 해결책을 찾을 수 있습니다. 다음과 같은 메모가 있습니다.

참고: 루트의 PATH에는 일반적으로 /usr/local/sbin, /usr/sbin 및 /sbin이 포함되어야 합니다.

그런 다음 경로를 확인했는데 경로에 /sbin이 누락되었습니다.

$PATH 에코

그런 다음 추가했더니 문제가 사라졌습니다. :)

내보내기 PATH="$PATH:/sbin"

차람!

답변3

질문에 설명이 부족하여 이 상황에서 정확한 문제를 정확히 찾아내기는 어렵지만 최근에 동일한 문제에 직면했습니다.

user@debian:su
Password: 
root@debian:/home/user/Downloads# dpkg -i [Some package]
dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin

해결책은 (에 자세히 설명된 대로 일반적으로 더 나은 su -대신 )을 사용하는 것입니다.su이 질문에 대한 답변):

user@debian:su -
Password: 
root@debian:~# cd /home/user/Downloads/
root@debian:/home/user/Downloads# dpkg -i [Some package]

답변4

여기에 표시된 해결 방법 중 어느 것도 도움이 되지 않았으므로 나에게 무슨 일이 일어났는지, 그리고 이를 해결하기 위해 무엇을 했는지 설명하겠습니다.

Q4OS 시스템에 Insync를 설치하려고 했는데 앱에 libc6 >= 2.32가 필요하고 Q4OS는 2.31을 사용하기 때문에 설치할 수 없었습니다. 나는 2.32의 libc6 deb를 발견했고 악몽이 시작되었습니다. 내 전체 시스템이 손상되었습니다. apt-get작동이 중지되었으며 시스템이 제대로 작동하려면 libc6 2.31이 필요하다는 메시지가 표시됩니다. 그 당시에는 버전을 다운그레이드하는 방법을 몰랐습니다. 따라서 다시 시작한 후 시스템이 시작되지 않고 부팅 시 메시지가 표시되면서 중단되었습니다.

A start job is running for Hold until boot process finishes up (Xmin Xs/no limit)

터미널을 바꿔보려고 했는데 성공하지 못했습니다. 내 Linux가 VMWare에서 실행되고 있었고 SSH를 사용하여 컴퓨터에 연결할 수 있었으면 좋겠습니다.VM -> SSH -> Connect to SSH...

그 후로 나는 많은 것을 시도했지만 성공하지 못했습니다. 다음을 사용하여 업그레이드하려고 했습니다.

sudo apt install upgrade

메시지에는 내가 실행해야 한다고 나와 있습니다.

sudo apt --fix-broken install

하지만 실행하려고 하면 자신을 포함하여 많은 패키지가 제거될 것이라고 말했습니다 q4os-desktop. 글쎄요, 조건을 받아들이고 시도해 봤습니다. 내가 무엇을 더 잃을 수 있겠는가?

그 이후에는 상황이 너무 악화됩니다. 나는 아무것도 실행할 수 없었다. 질문과 비슷한 오류가 발생했습니다.

Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
dpkg: error: 2 expected programs not found in PATH or not executable.
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)

그러나 문제는 PATH 자체가 아니라 ldconfig가 libc6의 일부이므로 제거되었습니다. 거의 모든 것이 libc6과 ldconfig에 의존하기 때문에 아무것도 할 수 없었습니다. 소스에서 libc6을 컴파일하려고 시도했지만 성공하지 못했습니다. 종속성이 많고 종속성을 설치하려고 할 때 lib가 libc6의 일부를 사용하려고 했습니다. 일종의 종속성 루프입니다.

그래서 Q4OS 라이브 CD로 시스템을 재부팅하고 바이너리 ldconfig를 /usr/sbin/ldconfig. 괜찮은! 이제 apt-get다시 작동하기 시작했습니다(완벽하지는 않지만...). 그래서 lib를 다운그레이드하는 방법을 발견했습니다.

sudo apt install libc6=2.31-13+deb11u3

어떤 버전을 사용할지 확실하지 않은 경우 다음을 실행하세요.

apt list --installed | grep libc6

라이브 CD 안에 출력은 다음과 같아야 합니다.

libc6/stable,now 2.31-13+deb11u3 amd64 [installed]

그 후 Q4OS를 다시 설치할 수 있었습니다.

sudo apt install q4os-desktop

재부팅 후 모든 것이 정상으로 돌아왔습니다!

하지만 이제 Insync를 실행하면 5초 후에 앱이 충돌합니다.

관련 정보