Quelle solution de contournement devrait être utilisée pour résoudre le problème avec systemctl refusant d'activer les files d'unité qui sont des liens symboliques?

J'ai un package qui sera mis à jour bientôt, mais je sais que certains users préfèreront utiliser l'ancien. C'est pourquoi j'ai utilisé une routine update-alternatives dans le package. Le problème est également que le nouveau package dépend d'un nouveau file d' unité .

Pour résumer,

dpkg -L mypackage-1.0 
 /opt/mypackage-1.0/binary 
 dpkg -L mypackage-service-1.0 
 /opt/mypackage-1.0/mypackage.service 

Lors de l'installation, dpkg -i mypackage-1.0 fournira une seule alternative à mypackage et dpkg -i myservice-service-1.0 à myservice-service

Ceux-ci sont interdépendants.

 dpkg -L mypackage-2.0 
 /opt/mypackage-2.0/binary 
 dpkg -L mypackage-service-2.0 
 /opt/mypackage-2.0/mypackage.service 

Lors de l'installation, dpkg -i mypackage-2.0 fournira une nouvelle alternative ( /lib/systemd/system/mypackage.service -> /etc/alternatives/mypackage.service ) à mypackage et dpkg -i myservice-service-2.0 à mypackage-service

L'idée derrière est de permettre un basculement facile mais explicite entre les versions avec update-alternatives --config mypackage à la update-alternatives --config mypackage à update-alternatives --config mypackage et update-alternatives --config mypackage-service

La première partie fonctionne bien, mais la deuxième partie s'est avérée être un problème. Il semble que je ne peux pas utiliser de liens symboliques pour les files unitaires (exactement ce que update-alternatives --install fait).

J'utilise systemctl 215 sur Debian Jessie .

Je suppose que l'set pourrait être mis différemment à partir de zéro.

Jusqu'à ce que vous puissiez mettre à niveau vers une version plus récente de systemd où le problème est résolu, vous devrez utiliser un autre mécanisme que update-alternatives pour copyr et déplacer les files au lieu de les symlink des symlink version actuelle.