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

PATH해결 방법 3: 실행 시 변수를 전달해 보세요 .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을 컴파일하려고 했습니다. 종속성이 너무 많아서 종속성을 설치하려고 하면 라이브러리가 libc6의 항목을 사용하려고 합니다. 의존성 순환.

그래서 Q4OS 라이브 CD를 사용하여 시스템을 재부팅하고 바이너리 ldconfig를 /usr/sbin/ldconfig. 이제 apt-get다시 작동합니다(완벽하지는 않지만...). 그래서 라이브러리를 다운그레이드하는 방법을 알아냈습니다.

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초 후에 애플리케이션이 충돌합니다.

관련 정보