apt policy udev
apt policy systemd
diront où tu en es
apt policy udev
apt policy systemd
diront où tu en es
et ceux qui posent problème
apt policy dbus
apt policy libpam-systemd
Hors sujet, car vous semblez avancer:
Pas incorrects dans l’absolu, mais je ne vois que la branche main, et il peut y avoir besoin de contrib non-free, si tu as utilisé à un moment ces branches avant le dist-upgrade.
Quand tu as un serveur qui tourne bien et que tu veux juste avoir la version “cutting edge” d’un service, tu peux regarder si c’est dispo et installer juste le paquet que tu veux depuis les dépôts de https://backports.debian.org/
En fait udev est dorénavant fourni pas systemd version 215 en jessie
https://tracker.debian.org/pkg/systemd
https://packages.debian.org/jessie/udev
mais tu es resté collé en version 175
Casse: udev (< 228-5) mais 175-7.2 est installé
qui est une version très ancienne
https://tracker.debian.org/pkg/udev
Tu n’as jamais fait la bascule en système d’init systemd?
Salut à tous.
Désolé le forum me permettait pas de poster plus de 22 messages par jour comme je suis nouveau. Du coup tout le weekend on était en panne sèche
Voici les résultats de chaque commande :
apt policy udev
udev: Installé : 175-7.2
Candidat : 232-25+deb9u6
Table de version :
232-25+deb9u6 500
500 http://deb.debian.org/debian stretch/main amd64 Packages
*** 175-7.2 100
100 /var/lib/dpkg/status
apt policy systemd
systemd: Installé : 232-25+deb9u6
Candidat : 232-25+deb9u6
Table de version :
*** 232-25+deb9u6 500
500 http://deb.debian.org/debian stretch/main amd64 Packages
100 /var/lib/dpkg/status
apt policy dbus
dbus: Installé : (aucun)
Candidat : 1.10.26-0+deb9u1
Table de version :
1.10.26-0+deb9u1 500
500 http://deb.debian.org/debian stretch/main amd64 Packages
apt policy libpam-systemd
libpam-systemd: Installé : (aucun)
Candidat : 232-25+deb9u6
Table de version :
232-25+deb9u6 500
500 http://deb.debian.org/debian stretch/main amd64 Packages
Oui en effet j’ai l’ancienne version mais la question est : Comment mettre à jour ce paquet car là ça bloque
Salut !
Oui j’avais des contrib non-free avant la MAJ que j’ai supprimé par la suite, mais du coup je les ai remis et j’ai retenté un APT update && upgrade mais toujours le même message d’erreur…
En fait je voulais avoir le HTTP2 surtout dans la dernière MAJ d’Apache
je tenterai
apt remove udev
apt install --reinstall systemd
root@ks29582:~# apt remove udev
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Vous pouvez lancer « apt --fix-broken install » pour corriger ces problèmes.
Les paquets suivants contiennent des dépendances non satisfaites :
initramfs-tools : Dépend: udev mais ne sera pas installé
mdadm : Dépend: udev mais ne sera pas installé
E: Dépendances non satisfaites. Essayez « apt --fix-broken install » sans paquet
(ou indiquez une solution).
apt install --reinstall systemd
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Vous pouvez lancer « apt --fix-broken install » pour corriger ces problèmes.
Les paquets suivants contiennent des dépendances non satisfaites :
systemd : Casse: udev (< 228-5) mais 175-7.2 devra être installé
Recommande: libpam-systemd mais ne sera pas installé
Recommande: dbus mais ne sera pas installé
E: Dépendances non satisfaites. Essayez « apt --fix-broken install » sans paquet
(ou indiquez une solution).
trop de dépendances qui sont restées liées à Jessie et je ne comprends pas pourquoi.
Il faut remonter toute la chaîne des paquets.
pour chaque paquet indiqué, comprendre pourquoi la version est bloquée
initramfs-tools : Dépend: udev mais ne sera pas installé
mdadm : Dépend: udev mais ne sera pas installé
Trop compliqué pour moi surtout à travers un forum
Es-tu capable de résoudre le problème contre une rémunération ? Je perds espoir et ma petite boîte est sur la paille…
Sinon je vais demander de l’aide à un freelance sur codeur.com , pas le choix
Désolé je suis à la retraite c’est pas pour me faire chier avec un petit patron
Pas de soucis. Merci en tout cas d’avoir essayé.
J’espère que quelqu’un d’autre va pouvoir m’aider sur ce forum.
à mon avis change ton titre, c’est pas de l’installation, c’est un échec de mise à niveau de Jessie vers Stretch
ça attirera peut être l 'oeil des spécialistes
tu peux aussi voir https://debian-facile.org/search.php?action=show_recent qui est un forum un peu plus actif
Alors un truc qui ne mange pas de pain, c’est d’ajouter les sources jessie en plus de stretch pendant la migration, des fois que ça aide.
Idem avec les contrib non-free, faudra peut être faire du nettoyage de non-free aprés, mais pour assouplir la migration…
En tous cas, ça ne peut pas géner.
Il y a une zouille autour de ça, oui.
Il y a quelque chose qui empêche le paquet udev de se déployer, en renvoyant une erreur à un moment ou le fichier pre-installation s’exécute, sans doute parce qu’il fait appel à une commande start/stop du vieux sysv.
Les vieux scripts init sont dans /etc/init.d et si j’ai bien compris, ils sont shuntés par systemd qui utilise ses .services
Il faudrait donc regarder le script udev dans init.d pour le faire ne rien faire en cas de start/stop sauf renvoyer un “tout va bien” au système (tromper l’installeur qui croit avoir redémarré le service).
Attention, c’est assez sensible pour que ta machine ne puisse pas redémarrer si on fait une connerie, mais pour shunter le fonctionnement, tu peux mettre juste un exit 0 dans le script sur la 2ème ligne.
Le script init ne fera rien, mais il devrait passer faire passer l’install de udev.
Le script modifié devrait être ensuite court circuité par la mécanique systemd qui va remplacer celle du sysv.
Par précaution, aprés install de udev de systemd, et avant de redémarrer, si le script init que tu as modifié n’a pas été remplacé, remets celui qui y était initialement, sans le exit 0 (à tous hasards)
Normalement tout ça peut passer…
Mais on est dans le casse gueule et si ça plante j’espère que tu as physiquement accès à ta machine pour reprendre la config.
C’est le script de pre-installation du paquet udev qui avait ce problème, pas son script d’init (d’ailleurs la “systemdisation” des services sysV utilise toujours les scripts init, de ce que j’ai vu, on peut vérifier avec systemctl cat udev.service par exemple).
On peut trouver ce script preinst sous /var/lib/dpkg/info/udev.preinst il me semble. Il est possible que l’erreur causée par l’utilisation de start / stop entraîne directement une sortie en erreur du script si celui-ci est en set -e (à la moindre erreur, on sort du script, ajouter un exit 0 à la fin serait alors sans effet), là on peut effectivement ruser en faisant une bidouille du style “la commande avec start ou stop” || true (puis enregistrer le fichier et relancer l’installation / MàJ), mais il faut voir à quoi sert cette commande.
Mais si j’ai bien suivi, il est un peu tard pour ça
c’est comme d’hab, le mec ne dit pas tout
il est sur un noyau non fourni par Debian
https://debian-facile.org/viewtopic.php?pid=285014#p285014
Pour rappel les noyaux officiels Debian
https://security-tracker.debian.org/tracker/source-package/linux
VOILA !
C’est ça que je cherchais.
Plutôt que d’aller bidouiller le script d’init.
Ah bah oui, c’est vrai qu’il y a une partie de sysv/systemd qui se met en place dans le noyau…
Re,
merci pour votre suivi.
En effet, j’avais installé la première distrib via OVH et du coup c’est leur ancien noyau qui est resté et qui a posé problème ?
Mais j’avais désactivé le netboot et normalement quand j’ai fais le full-upgrade il aurait du mettre mon noyau à jour en même temps non ?
Que me conseillez-vous ?
Je pense à tout réinstaller.
Cool merci pour le lien vers le script. Le voici.
Qu-est ce que je dois modifier dans celui-ci ? Si on corrige ce fichier, tout sera ok par la suite ou mon noyau posera encore problème ?
#!/bin/sh -e
# Hack to get the dpkg process' PID despite using debconf
if [ -z "$PARENT_PID" ]; then
export PARENT_PID=$PPID
fi
. /usr/share/debconf/confmodule
# adapted from postinst
chrooted() {
if [ "$(stat -c %d/%i /)" = "$(stat -Lc %d/%i /proc/1/root 2>/dev/null)" ];
then
return 1
fi
return 0
}
supported_kernel() {
local version
if [ "$1" ]; then
version="$1"
else
version="$(uname -r)"
fi
case "$version" in
2.[012345].*|2.6.[0-9]|2.6.[0-9][!0-9]*) return 1 ;;
2.6.[12][0-9]|2.6.[12][0-9][!0-9]*) return 1 ;;
2.6.3[0-1]|2.6.3[0-1][!0-9]*) return 1 ;;
esac
return 0
}
check_installed_kernel() {
for ver in /lib/modules/*; do
ver=${ver##*/}
[ "$ver" = '*' ] && return 1
supported_kernel "$ver" && return 0
done
return 1
}
check_installing_kernel() {
for pkg in $(ps hp $PARENT_PID -o args); do
ver=$(echo $pkg | sed -nr "s/^.*linux-image-(2\.6\.[0-9]+)-([0-9]+|trunk)-.*_.*_.*\.deb$/\1/p")
[ "$ver" ] && supported_kernel "$ver" && return 0
done
return 1
}
check_kernel_version() {
# skip the check if udev is not already active
[ -d /dev/.udev/ -o -d /run/udev/ ] || return 0
supported_kernel && return
if [ -e /etc/udev/kernel-upgrade ]; then
echo "This version of udev requires a kernel >= 2.6.32, but the upgrade was forced."
# restart udevd which was killed by the old prerm
udevd -d || true
return 0
fi
db_settitle udev/title/upgrade
if check_installed_kernel || check_installing_kernel; then
db_fset udev/reboot_needed seen false
db_input high udev/reboot_needed || true
db_go
db_stop
echo "A reboot is needed, but proceeding with the upgrade."
touch /etc/udev/kernel-upgrade
# restart udevd which was killed by the old prerm
udevd -d || true
return 0
fi
db_fset udev/new_kernel_needed seen false
db_reset udev/new_kernel_needed
db_input critical udev/new_kernel_needed || true
db_go
db_get udev/new_kernel_needed
if [ "$RET" = true ]; then
db_stop
echo "This version of udev requires a kernel >= 2.6.32, but the upgrade was forced."
touch /etc/udev/kernel-upgrade
# restart udevd which was killed by the old prerm
udevd -d || true
return 0
fi
db_stop
exit 1
}
check_kernel_features() {
# skip the check if udev is not already active
[ -d /dev/.udev/ -o -d /run/udev/ ] || return 0
# skip the check if check_kernel_version() decided that a new kernel is
# being installed
[ -e /etc/udev/kernel-upgrade ] && return 0
local abort_install=0
if [ -e /proc/kallsyms ]; then
local needed_symbols='sys_inotify_init sys_signalfd'
local missing_symbol=0
for symbol in $needed_symbols; do
if ! egrep -q "^[a-fA-F0-9]+ T \.?${symbol}$" /proc/kallsyms; then
missing_symbol=1
abort_install=1
break
fi
done
fi
local sysfs_deprecated=0
if [ -d /sys/class/mem/null -a ! -L /sys/class/mem/null ]; then
sysfs_deprecated=1
fi
if [ -e /sys/block -a ! -e /sys/class/block ]; then
sysfs_deprecated=1
fi
if [ "$missing_symbol" -eq 1 ]; then
cat <<END
Since release 146, udev requires support for the following features in
the running kernel:
- inotify(2) (CONFIG_INOTIFY_USER)
- signalfd(2) (CONFIG_SIGNALFD)
END
fi
if [ "$sysfs_deprecated" -eq 1 ]; then
db_input critical udev/sysfs_deprecated_incompatibility || true
fi
if [ "$abort_install" -eq 0 ]; then
return 0
fi
cat <<END
Please upgrade your kernel before or while upgrading udev.
AT YOUR OWN RISK, you can force the installation of this version of udev
WHICH DOES NOT WORK WITH YOUR RUNNING KERNEL AND WILL BREAK YOUR SYSTEM
AT THE NEXT REBOOT by creating the /etc/udev/kernel-upgrade file.
There is always a safer way to upgrade, do not try this unless you
understand what you are doing!
END
db_stop
exit 1
}
rm_conffile() {
mv_conffile "$1" "$1.dpkg-bak"
}
mv_conffile() {
local package='udev'
local name="$1"
local newname="$2"
[ -e "$name" ] || return 0
local md5="$(md5sum $name | sed -e 's/ .*//')"
oldmd5="$(dpkg-query -W -f='${Conffiles}' $package | \
sed -n -e "\' $name ' { s/ obsolete$//; s/.* //; p }")"
if [ "$md5" = "$oldmd5" ]; then
rm -f "$name"
else
mv "$name" "$newname"
fi
}
replace_sysfs_attr() {
local file=$1
[ -f $file ] || return 0
egrep '^[^#].+\<SYSFS\{' $file || return 0
sed -r -e '/^#/!s/\<SYSFS(\{[^}]+}==)/ATTR\1/g' < $file > $file.tmp
mv $file.tmp $file
}
mask_systemd_service() {
if [ -x '/bin/systemctl' -a -d '/run/systemd/system/' ]; then
ln -s /dev/null /run/systemd/system/udev.service
systemctl daemon-reload || true
fi
}
stop_on_upstart_upgrade() {
if which initctl >/dev/null && initctl version | grep -q upstart
then
# We have to stop udev before we can restart it under upstart in the
# postinst.
invoke-rc.d udev stop
fi
}
check_version() {
# $2 is non-empty when installing from the "config-files" state
[ "$2" ] || return 0
if dpkg --compare-versions $2 lt 175-7.1; then
if dpkg --compare-versions $2 lt 175-1; then
if dpkg --compare-versions $2 lt 168-2; then
# these must be checked first to allow aborting before changing anything
if chrooted; then
echo 'Running in a chroot, skipping the kernel versions checks!'
else
check_kernel_version
check_kernel_features
fi
if dpkg --compare-versions $2 lt 157-1; then
if dpkg --compare-versions $2 lt 150-1; then
if dpkg --compare-versions $2 lt 0.140-1; then
if dpkg --compare-versions $2 lt 0.124-1; then
echo 'Upgrading udev from packages older than 0.124-1 is not supported.'
echo 'Please purge the package and then reinstall it.'
exit 1
fi
# lt 0.140-1
rm_conffile /etc/modprobe.d/display_class
rm_conffile /etc/modprobe.d/pnp-hotplug
mv_conffile /etc/modprobe.d/blacklist /etc/modprobe.d/blacklist.conf
for file in 50-udev 60-persistent-input 60-persistent-storage \
60-persistent-storage-tape 60-persistent-v4l 91-permissions 80-drivers \
75-cd-aliases-generator 75-persistent-net-generator 95-late; do
rm_conffile /etc/udev/rules.d/$file.rules
done
# SYSFS is equivalent to ATTRS, and multiple ATTRS attributes do not match
# when the keys are from different kobjects like in this case.
replace_sysfs_attr /etc/udev/rules.d/70-persistent-net.rules
fi # 0.140-1
# lt 146-1
rm_conffile /etc/scsi_id.config
fi # 146-1
# suppress errors when the new rules files contain options not supported by
# the old daemon
if ! chrooted; then
udevadm control --log-priority=0 || true
fi
fi # 157-1
fi # 168-2
# lt 175-1
rm_conffile /etc/modprobe.d/blacklist.conf
fi # 175-1
stop_on_upstart_upgrade
fi # 175-7.1
}
case "$1" in
install)
check_version "$@"
;;
upgrade|abort-upgrade)
check_version "$@"
mask_systemd_service
;;
*)
echo "$0 called with unknown argument '$1'" >&2
exit 1
;;
esac
si ce n’est pas fait installe le noyau stretch
apt install linux-image-amd64/stretch
et redémarre dessus