Ich habe ein Paket, das bald aktualisiert wird, aber ich weiß, dass einige Benutzer es vorziehen werden, das alte zu verwenden. Aus diesem Grund habe ich im Paket eine Routine für Aktualisierungsalternativen verwendet . Das Problem ist auch , dass das neuere Paket auf einer neueren hängt Einheit Dateien.
Um zusammenzufassen,
dpkg -L mypackage-1.0
/opt/mypackage-1.0/binary
dpkg -L mypackage-service-1.0
/opt/mypackage-1.0/mypackage.service
Bei der Installation dpkg -i mypackage-1.0
wird eine einzige Alternative bieten mypackage und dpkg -i myservice-service-1.0
zu myservice-Service
Diese sind voneinander abhängig.
dpkg -L mypackage-2.0
/opt/mypackage-2.0/binary
dpkg -L mypackage-service-2.0
/opt/mypackage-2.0/mypackage.service
Bei der Installation dpkg -i mypackage-2.0
wird eine neue Alternative ( /lib/systemd/system/mypackage.service -> /etc/alternatives/mypackage.service
) zu mypackage und dpkg -i myservice-service-2.0
zu mypackage-service bereitgestellt
Die Idee dahinter ist, einen einfachen und dennoch expliziten Wechsel zwischen Versionen mit update-alternatives --config mypackage
und zu ermöglichenupdate-alternatives --config mypackage-service
Der erste Teil funktioniert gut, aber der zweite Teil stellte sich als Problem heraus. Es scheint, dass ich keine Symlinks zu Unit-Dateien verwenden kann (genau das, was update-alternatives --install
funktioniert).
Ich benutze systemctl 215 auf Debian Jessie .
Ich nehme an, das Ganze könnte von Grund auf anders angelegt werden.
systemd
.Antworten:
Bis Sie ein Upgrade auf eine neuere Version durchführen können,
systemd
bei der das Problem behoben ist, müssen Sie einen anderen Mechanismus verwendenupdate-alternatives
, um Dateien zu kopieren und zu verschiebensymlink
, da das Verhalten vonsystemd
mit der aktuellen Version nicht geändert werden kann.quelle