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.0wird eine einzige Alternative bieten mypackage und dpkg -i myservice-service-1.0zu 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.0wird eine neue Alternative ( /lib/systemd/system/mypackage.service -> /etc/alternatives/mypackage.service) zu mypackage und dpkg -i myservice-service-2.0zu mypackage-service bereitgestellt
Die Idee dahinter ist, einen einfachen und dennoch expliziten Wechsel zwischen Versionen mit update-alternatives --config mypackageund 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 --installfunktioniert).
Ich benutze systemctl 215 auf Debian Jessie .
Ich nehme an, das Ganze könnte von Grund auf anders angelegt werden.
systemd.