Вот это костыли так костыли. Так альты, я ещё никогда не подпирал костылями:
Блокировка установки нового пакета systemdСмотрим сюда
# apt-get install syslog-ng
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
ca-certificates-java checkpolicy java-1.8.0-openjdk-headless java-common javapackages-tools libauparse0
libhugetlbfs libhugetlbfs-utils liblksctp libselinux-utils libsetools lksctp-tools netlabel_tools
policycoreutils policycoreutils-mcstransd policycoreutils-newrole policycoreutils-restorecond
python-module-IPy python-module-audit python-module-pkginfo python-module-selinux
python-module-semanage python-module-sepolgen python-module-slip selinux-policy-alt setools-console
sqlite3 systemd tzdata-java
Следующие пакеты будут ОБНОВЛЕНЫ:
syslog-ng
Следующие пакеты будут ЗАМЕНЕНЫ:
libeventlog (by syslog-ng)
Следующие НОВЫЕ пакеты будут установлены:
ca-certificates-java checkpolicy java-1.8.0-openjdk-headless java-common javapackages-tools libauparse0
libhugetlbfs libhugetlbfs-utils liblksctp libselinux-utils libsetools lksctp-tools netlabel_tools
policycoreutils policycoreutils-mcstransd policycoreutils-newrole policycoreutils-restorecond
python-module-IPy python-module-audit python-module-pkginfo python-module-selinux
python-module-semanage python-module-sepolgen python-module-slip selinux-policy-alt setools-console
sqlite3 systemd tzdata-java
1 будет обновлено, 29 новых установлено, 1 пакетов будет заменено, 0 пакетов будет удалено и 23 не будет обновлено.
Необходимо получить 34,2MB архивов.
После распаковки потребуется дополнительно 123MB дискового пространства.
Продолжить? [Y/n] n
Прервано.
и видим там пакеты
# apt-get install syslog-ng
...
Следующие дополнительные пакеты будут установлены:
... systemd ...
Следующие пакеты будут ОБНОВЛЕНЫ:
syslog-ng
Следующие пакеты будут ЗАМЕНЕНЫ:
libeventlog (by syslog-ng)
Следующие НОВЫЕ пакеты будут установлены:
... systemd ...
1 будет обновлено, 29 новых установлено, 1 пакетов будет заменено, 0 пакетов будет удалено и 23 не будет обновлено.
Необходимо получить 34,2MB архивов.
После распаковки потребуется дополнительно 123MB дискового пространства.
Продолжить? [Y/n] n
Прервано.
Далее внимательно, это важно!
Новая версия syslog-ng
# apt-cache show syslog-ng | grep '^Pack\|^Vers'
Package: syslog-ng
Version: 3.13.1-alt1
Package: syslog-ng
Version: 3.8.1-alt2
требует по зависимостям пакет systemd, установку которого допустить в систему нельзя
# apt-cache depends syslog-ng | grep 'syslog-ng\|systemd'
syslog-ng-3.13.1-alt1
Depends: <libsystemd.so.0>
libsystemd-1:235-alt3
Depends: <libsystemd.so.0(LIBSYSTEMD_209)>
libsystemd-1:235-alt3
Depends: systemd
Выше упоминается и пакет libeventlog
Поскольку при попытке dist-upgrade упоминаются пакеты
# apt-get install syslog-ng
...
Следующие пакеты будут ОБНОВЛЕНЫ:
syslog-ng
Следующие пакеты будут ЗАМЕНЕНЫ:
libeventlog (by syslog-ng)
...
Прервано.
ставим их оба в Hold, иначе будут разламываться зависимости
# cat /etc/apt/apt.conf.d/90-apt-hold.conf
RPM::Hold { syslog-ng; };
RPM::Hold { libeventlog; };
Но новый пакет systemd всё равно пролезет в систему, поскольку by version блокирует установку только более новых версий установленного пакета.
Поэтому блокировку установки нового пакета systemd пишем так
# cat /etc/apt/preferences.d/systemd
Package: systemd
Pin: version 3.8.1*
Pin-Priority: -1
Разбор по строкам:
Package: systemd
Имя нового пакета, установка которого должна быть заблокирована.
Этот пакет в зависимостях у пакета syslog-ng-3.13.1-alt1
Pin: version 3.8.1*
Здесь указана версия текущего установленного в системе пакета syslog-ng-3.8.1-alt2 у которого пакета systemd в зависимостях ещё нет.
Pin-Priority: -1
Запретить повышение версии.
Речь идёт о syslog-ng. Поскольку apt/preferences, это контроль версий.
В данном случае, запрещается установка пакета systemd зависящего от пакета версии выше 3.8.1 (текущий установленный syslog-ng).
Результатом этой магии, будет отсутствие предложения обновления пакетов syslog-ng, libeventlog и systemd при выполнении dist-upgrade
# apt-get dist-upgrade
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Подсчет обновлений... Завершено
Следующие пакеты будут ОБНОВЛЕНЫ:
grub-common grub-pc python-module-custodia python-module-gssapi python-module-setuptools
Следующие НОВЫЕ пакеты будут установлены:
ca-certificates-java checkpolicy java-1.8.0-openjdk-headless java-common javapackages-tools libauparse0
libhugetlbfs libhugetlbfs-utils liblksctp libselinux-utils libsetools lksctp-tools netlabel_tools
policycoreutils policycoreutils-mcstransd policycoreutils-newrole policycoreutils-restorecond
python-module-IPy python-module-audit python-module-configparser python-module-pkginfo
python-module-selinux python-module-semanage python-module-sepolgen python-module-slip
python-module-systemd selinux-policy-alt setools-console sqlite3 tzdata-java
Следующие пакеты будут СОХРАНЕНЫ:
syslog-ng
5 будет обновлено, 30 новых установлено, 0 пакетов будет удалено и 1 не будет обновлено.
Необходимо получить 37,9MB архивов.
После распаковки потребуется дополнительно 119MB дискового пространства.
Продолжить? [Y/n]
Но по большому счёту, пакет syslog-ng из системы на sysv надо убирать и менять на другой логгер, в зависимостях у которого systemd нет (но надолго ли?).
Такие ситуации слакварщики называют адом зависимостей rpm.
Для такой блокировки потребуется контроль дерева по зависимостям и версиям.