dpkg не может найти ldconfig/start-stop-daemon в переменной ПУТИ

Перечислите файлы, извлеките размер в байтах из списка, отсортируйте его и считайте возникновение каждого размера:

find /my/directory -type f -exec ls -l {} + | cut -d' ' -f5 | sort -n | uniq -c
  • не ужасно эффективный
  • если существуют много много файлов, может быть лучше сохранить промежуточные результаты во временном файле, отсортировать его в другой временный файл, то "uniq" он
  • здесь я использую числовой вид, таким образом, вывод будет заказан возрастающим (хорошим) размером файла, но любой вид сделает, пока равные строки группируются
  • передайте результаты по каналу в awk '{ print $1 "," $2 }' заставить файл CSV использоваться в Вашем предпочтительном инструменте построения графика (даже spreasheet инструменты сделает),
42
08.10.2014, 14:47
4 ответа

Прежде всего, строки, которые вас действительно интересуют:

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: используйте учетную запись root напрямую

Не используйте sudo, просто переключитесь на root для выполнения команд. Для этого выполните одну из следующих команд:

$ sudo -i
$ su 

После входа в систему под учетной записью root, просто повторите команды apt-get:

# apt-get ...

Для начала, возможно, вам придется установить root's 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 ...
59
27.01.2020, 19:35

У меня была эта проблема сегодня, и я решил ее, закомментировав строку (используя #)

Defaults    exempt_group=sudo

из моего файла /etc/sudoers, используя

# visudo

как root

Это изменение заставит sudo использовать значение по умолчанию переменная secure_path, установленная в том же файле.

1
27.01.2020, 19:35

как-то у меня была такая же проблема.

Пожалуйста, внимательно прочитайте сообщение об ошибке, и вы найдете решение. Есть примечание, в котором говорится:

Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.

Затем я проверил свой путь и каким-то образом пропустил /sbin в своем пути.

echo $PATH

Затем я добавил, и проблема исчезла.:)

export PATH="$PATH:/sbin"

Чарам!

9
27.01.2020, 19:35

Отсутствие описания в вопросе затрудняет точное определение проблемы в этой ситуации, но недавно я столкнулся с той же проблемой:

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]
5
27.01.2020, 19:35

Теги

Похожие вопросы