Ну, очевидный путь был бы "grep, зависает навсегда, таким образом, что-то, что использует grep, зависает навсегда, и что-то в процессе начальной загрузки делает это".
Текст, вероятно, будет иллюстративными а не литеральными примерами проблем, но это не невозможно.
Для реального понимания начните читать в /etc/init.d/rc
и /etc/init.d/rcS
- это - сценарии оболочки, которые выполняют все биты, которые поднимают Вашу систему.
Библиотеки могут быть загружены во времени выполнения в зависимости от определенной среды, параметров командной строки, параметров конфигурации и возможно даже лунной фазы. Библиотеки самостоятельно могут зависеть от других библиотек, также. Так определение, что на самом деле требуется, кажется невозможным, если Вы не знаете то, что Ваш двоичный файл делает внутри.
ldd
хорошее начало. Затем Вы могли прокрутить двоичный файл strace -fo /tmp/strace.log
, и взгляните там, для какого приложение пытается найти.
Запустите с a grep
из ENOENT
видеть то, что это не находит.
Можно также взглянуть на документацию, поставленную с тем приложением и возможно его синхронными журналами если таковые имеются.
ldd показывает только соединение зависимостей, то есть, это не показывает то, что может потребоваться, чтобы на самом деле запускать программу успешно, что требуется запустить программу вообще.
Необходимо сделать разрешение зависимости через диспетчер пакетов.