Я собрал сервер Ubuntu 12.04 пару недель назад, и до сегодняшнего утра все было хорошо.
Внезапно у меня возникли проблемы с установкой новых пакетов - сначала я подумал, что что-то не так с tinyproxy, и вместо этого я попытался установить squid. Однако я получаю похожие результаты:
Starting tinyproxy: tinyproxy: Could not open config file "/etc/tinyproxy.conf".\
...
/var/lib/dpkg/info/squid3.postinst: 1: /var/lib/dpkg/info/squid3.postinst: cannot open /etc/squid3/squid.conf: No such file
Кажется, что apt-get не создает файлы конфигурации, необходимые для этих программ.
Я не изменял никакую конфигурацию или группы пользователей со времени последнего успешного обновления / установки пакетов.
/ etc присутствует и заполнен красивым здоровым деревом конфигурационных файлов. Он принадлежит и сгруппирован по корню, и имеет свойства drwxr-xr-x
- насколько я могу судить, все файлы и папки внутри, кажется, подходят. Я даже смог отредактировать / сохранить пару как sudo.
Полный вывод от установки tinyproxy:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
tinyproxy
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/61.6 kB of archives.
After this operation, 201 kB of additional disk space will be used.
Selecting previously unselected package tinyproxy.
(Reading database ... 58916 files and directories currently installed.)
Unpacking tinyproxy (from .../tinyproxy_1.8.3-1_amd64.deb) ...
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Setting up tinyproxy (1.8.3-1) ...
Starting tinyproxy: tinyproxy: Could not open config file "/etc/tinyproxy.conf".
invoke-rc.d: initscript tinyproxy, action "start" failed.
dpkg: error processing tinyproxy (--configure):
subprocess installed post-installation script returned error exit status 70
Errors were encountered while processing:
tinyproxy
E: Sub-process /usr/bin/dpkg returned an error code (1)
Предлагалось от друга проверить загруженный пакет в /var/cache/apt/archives
. Существует запись для /etc/tinyproxy.conf
Выполнение sudo touch /etc/tinyproxy.conf
создает пустой файл, принадлежащий и доступный для записи пользователю root.
Результат strace после установки:
18467 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
18467 open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
18467 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\30\2\0\0\0\0\0"..., 832) = 832
18467 open("/etc/tinyproxy.conf", O_RDONLY) = -1 ENOENT (No such file or directory)
Мне удалось обойти проблему, скопировав конфигурацию с другого сервера и настроив ее для нового - но это не совсем идеально. [ 1116]
как насчет прав доступа ко всем файлам в каталоге? эти файлы в порядке (также может быть ошибка HW)? Вы пытались получить доступ к этим файлам касанием или другой основной командой, чтобы проверить их статус? Быстрее всего будет:
ls -la /etc/
проверить права доступа, иноды и ссылки, если есть только ссылки, файлы которых могут быть повреждены в другом месте ... но самый последний вопрос в конце ... вы пытались запустить это как судо?
У меня есть несколько советов о том, что вы должны проверить.
mount
. Каждый установленный пакет имеет несколько файлов метаданных, которые хранятся в /var/lib/dpkg/info/PKGNAME.*. Например, при установке пакета adduser
создаются следующие файлы:
adduser.conffiles
adduser.config
adduser.list
adduser.md5sums
adduser.postinst
adduser.postrm
adduser.templates
Здесь интересны файлы, заканчивающиеся на preinst | postinst | prerm | postrm. Они выполняются до / после установки или удаления. Посмотрите, что у них внутри, и попробуйте запустить их вручную - вы можете добавить к ним несколько операторов echo
, чтобы увидеть, где и как они терпят неудачу, и т. Д. Обычно это просто скрипты Bash.