Вопрос или проблема
Я пытаюсь установить squid, но apt не может завершить установку и возвращает такие ошибки:
После этой операции будет использовано 7263 кБ дополнительного дискового пространства.
Выбор ранее не выбранного пакета squid.
(Чтение базы данных ... 156110 файлов и каталогов в данный момент установлено.)
Подготовка к распаковке .../squid_3.5.23-5+deb9u1_amd64.deb ...
Распаковка squid (3.5.23-5+deb9u1) ...
Настройка squid (3.5.23-5+deb9u1) ...
Setcap сработал! /usr/lib/squid/pinger не имеет suid!
Работа для squid.service завершилась с ошибкой, так как превышено время ожидания.
Смотрите "systemctl status squid.service" и "journalctl -xe" для подробностей.
invoke-rc.d: initscript squid, действие "перезапуск" не удалось.
● squid.service - LSB: Squid HTTP Proxy версия 3.x
Загружен: загружен (/etc/init.d/squid; сгенерировано; предустановка: включена)
Активен: неудачно (Результат: время ожидания) с среды 2020-04-22 11:54:36 CDT; 7мс назад
Документы: man:systemd-sysv-generator(8)
Процесс: 1888 ExecStart=/etc/init.d/squid start (код=выход, статус=0/УСПЕХ)
Задачи: 24 (лимит: 4915)
CGroup: /system.slice/squid.service
├─ 338 /usr/sbin/squid -YC -f /etc/squid/squid.conf
├─ 340 (squid-1) -YC -f /etc/squid/squid.conf
├─ 341 (logfile-daemon) /var/log/squid/access.log
├─ 342 (pinger)
├─ 950 /usr/sbin/squid -YC -f /etc/squid/squid.conf
├─ 952 (squid-1) -YC -f /etc/squid/squid.conf
├─ 953 (logfile-daemon) /var/log/squid/access.log
├─ 954 (pinger)
├─1926 /usr/sbin/squid -YC -f /etc/squid/squid.conf
├─1928 (squid-1) -YC -f /etc/squid/squid.conf
├─1929 (logfile-daemon) /var/log/squid/access.log
├─1930 (pinger)
├─31261 /usr/sbin/squid -YC -f /etc/squid/squid.conf
├─31263 (squid-1) -YC -f /etc/squid/squid.conf
├─31264 (logfile-daemon) /var/log/squid/access.log
├─31265 (pinger)
├─31597 /usr/sbin/squid -YC -f /etc/squid/squid.conf
├─31599 (squid-1) -YC -f /etc/squid/squid.conf
├─31600 (logfile-daemon) /var/log/squid/access.log
├─31601 (pinger)
├─31949 /usr/sbin/squid -YC -f /etc/squid/squid.conf
├─31951 (squid-1) -YC -f /etc/squid/squid.conf
├─31952 (logfile-daemon) /var/log/squid/access.log
└─31953 (pinger)
22 апр 11:49:36 backgroundserver systemd[1]: Запуск LSB: Squid HTTP Proxy версия 3.x...
22 апр 11:49:36 backgroundserver squid[1926]: Родитель Squid: запустит 1 потомка
22 апр 11:49:36 backgroundserver squid[1888]: Запуск Squid HTTP Proxy: squid.
22 апр 11:49:36 backgroundserver systemd[1]: squid.service: файл PID /var/run/squid.pid не читается (в данный момент?) после запуска: Нет такой файл или директория
22 апр 11:49:36 backgroundserver squid[1926]: Родитель Squid: (squid-1) процесс 1928 запущен
22 апр 11:54:36 backgroundserver systemd[1]: squid.service: операция запуска превысила время ожидания. Завершение.
22 апр 11:54:36 backgroundserver systemd[1]: Не удалось запустить LSB: Squid HTTP Proxy версия 3.x.
22 апр 11:54:36 backgroundserver systemd[1]: squid.service: Юнит вошел в состояние неудачи.
22 апр 11:54:36 backgroundserver systemd[1]: squid.service: Не удалось с результатом 'время ожидания'.
dpkg: ошибка обработки пакета squid (--configure):
подпроцесс установленного постустановочного сценария завершился с ошибкой
Обработка триггеров для systemd (232-25+deb9u12) ...
Обработка триггеров для man-db (2.7.6.1-2) ...
Во время обработки возникли ошибки:
squid
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)
Я не знаю, что делать.
Откройте терминал и выполните:
Удалить старые версии:
sudo apt -y purge squid* &> /dev/null
sudo rm -rf /var/spool/squid/* /var/log/squid/* /etc/squid3 /dev/shm/* &> /dev/null
Установить:
sudo apt -y install squid squid-langpack
if [ ! -d /var/log/squid ]; then sudo mkdir -p /var/log/squid && sudo touch /var/log/squid/{access,cache}.log && sudo chown -R proxy:proxy /var/log/squid; fi
Crontab (по желанию):
sudo crontab -l | { cat; echo "@weekly squid -k rotate"; } | sudo crontab -
PD: протестировано на Ubuntu 20.04 (не debian)
Ответ или решение
Ваша проблема с установкой Squid на Debian может быть связана с несколькими причинами. Ошибка "Job for squid.service failed because a timeout was exceeded" указывает на то, что служба Squid не смогла запуститься в течение отведенного времени. Для решения этой проблемы выполните следующие шаги:
1. Удаление предыдущих установок
Чтобы избежать конфликта с предыдущими версиями или некорректными конфигурациями, сначала удалите Squid:
sudo apt -y purge squid* &> /dev/null
sudo rm -rf /var/spool/squid/* /var/log/squid/* /etc/squid3 /dev/shm/* &> /dev/null
2. Установка Squid
Установите Squid и нужные пакеты:
sudo apt -y install squid squid-langpack
3. Настройка директорий логов
Если директория для логов Squid не была создана автоматически, создайте ее и установите необходимые права:
if [ ! -d /var/log/squid ]; then
sudo mkdir -p /var/log/squid
sudo touch /var/log/squid/{access,cache}.log
sudo chown -R proxy:proxy /var/log/squid
fi
4. Проверка и исправление конфигурации
Проверьте файл конфигурации Squid, который обычно находится по адресу /etc/squid/squid.conf
. Обратите внимание на строки, касающиеся разрешений и настроек кэша. Если вы внесли изменения в конфигурационный файл, вы можете проверить его на наличие ошибок:
sudo squid -k parse
5. Запуск службы Squid
Попробуйте запустить службу Squid вручную, чтобы увидеть, появляются ли сообщения об ошибках:
sudo systemctl start squid
Проверьте статус службы:
sudo systemctl status squid.service
Если служба не запускается, проверьте логи с помощью:
journalctl -u squid.service -xe
6. Настройка Crontab (по желанию)
Если вы хотите установить автоматическую ротацию логов, добавьте задачу в crontab:
sudo crontab -l | { cat; echo "@weekly squid -k rotate"; } | sudo crontab -
Заключение
Если после выполнения всех вышеперечисленных шагов проблема сохраняется, пожалуйста, проверьте системные журналы и на наличие ошибок в конфигурации Squid. Убедитесь, что все необходимые зависимости установлены, и что у пользователя proxy
есть необходимые права на доступ к логам и директориям Squid.
Если у вас остались вопросы или ошибки продолжают возникать, предоставьте более подробную информацию о конфигурации и состоянии системы, чтобы можно было помочь вам более точно.