По-видимому, я получил Debian Squeeze (Debian 6) для работы на VPS с использованием debootstrap и chroot, как описано Вот.
Последующая установка пакетов harden, exim4, mysql-server частично завершилась неудачно.
Релевантная информация:
insserv: warning: script 'S10vzquota' missing LSB tags and overrides
insserv: warning: script is corrupt or invalid: /etc/init.d/../rc6.d/S00vzreboot
insserv: warning: script 'vzquota' missing LSB tags and overrides
insserv: There is a loop between service vzquota and stop-bootlogd if started
insserv: loop involving service stop-bootlogd at depth 2
insserv: loop involving service vzquota at depth 1
insserv: loop involving service rsyslog at depth 1
insserv: Starting vzquota depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting vzquota depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: There is a loop between service vzquota and stop-bootlogd if started
insserv: Starting vzquota depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting vzquota depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: error processing exim4-base (--configure):
subprocess installed post-installation script returned error exit status 1
Какие-либо предложения?
Ключевые слова: vzquota debian squeeze, установка vps, виртуальный частный сервер.
Я проверил vzquota
и обнаружил, что он не соответствует стандарту Debian 6.0 (сценарии инициализации) - вполне естественно, поскольку в то время провайдер поддерживает только 5.0.
Перед моим исправлением:
#!/bin/sh
start() {
[ -e "/dev/vzfs" ] || mknod /dev/vzfs b 0 115
rm -f /etc/mtab >/dev/null 2>&1
echo "/dev/vzfs / reiserfs rw,usrquota,grpquota 0 0" > /etc/mtab
mnt=`grep -v " / " /proc/mounts`
if [ $? == 0 ]; then
echo "$mnt" >> /etc/mtab
fi
}
case "$1" in
start)
start
;;
*)
exit
esac
Я добавил следующую часть в /etc/init.d/vzquota (не забудьте удалить вторую строку shabang):
#!/bin/sh
### BEGIN INIT INFO
# Provides: vzquota
# Required-Start:
# Required-Stop:
# Should-Start: $local_fs $syslog
# Should-Stop: $local_fs $syslog
# Default-Start: 0 1 2 3 4 5 6
# Default-Stop:
# Short-Description: Fixed(?) vzquota init script
### END INIT INFO
И установка прошла успешно. Но после перезагрузки для проверки моих изменений я обнаружил, что исходный файл снова вступил в силу.
Может быть, кто-то еще может предложить более долговечное решение.
Edit0: Когда я наконец решил отправить отчет об ошибке, я обнаружил этот. Поэтому предлагаемый мной обходной путь может быть полезен людям, не имеющим доступа к файлам, которые необходимо исправить.
если вы не можете изменить скрипт OpenVZ sh, который создает этот файл, вы можете просто сделать что-то вроде этого:
1: cp /etc/init.d/vzquota /etc/init.d/vzquota.original (не требуется, но всегда полезно иметь резервные копии)
2: Просто отредактируйте файл vzquota с помощью nano или vi с помощью патча, предоставленного benjamin, и скопируйте измененный файл в /etc/init.d/vzquota.works
3: Создайте файл /etc/init.d/vzquotafix с этим содержимым:
#!/bin/sh
### BEGIN INIT INFO
# Provides: vzquotafix
# Required-Start:
# Required-Stop:
# Should-Start: $local_fs $syslog
# Should-Stop: $local_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Fix for vzquota init script
### END INIT INFO
set -e
cat /etc/init.d/vzquota.works > /etc/init.d/vzquota
exit 0
4: chmod 755 /etc/init.d/vzquotafix
5: update-rc.d vzquotafix по умолчанию
При каждом перезапуске этот сценарий заменяет поврежденный файл vzquota, созданный OpenVZ.