J'ai un problème avec une application Tcl/Tk, Redet et Ubuntu 18.04. Je l'ai installé en 17.04, en utilisant synaptic afin que toutes ses dépendances soient importées. Il a continué à fonctionner en 17.10. Après la mise à niveau vers 18.04, les messages d'erreur suivants n'ont pas pu démarrer.
Error in startup script: can't find package Itcl 3.4
while executing
"package require Itcl 3.4"
(file "/usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl" line 18)
invoked from within
"source /usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl"
("package ifneeded Iwidgets 4.1.0" script)
invoked from within
"package require Iwidgets"
(file "/usr/bin/redet" line 27)
Bien que tout soit resté inchangé, je pense donc que toutes les dépendances ont été satisfaites. J'ai essayé d'installer redet sur une machine différente avec 18.04 installé à l'aide de Synaptic. Toutes les mêmes dépendances ont été créées, mais lorsque j'ai essayé d'exécuter redet, j'ai reçu le même message d'erreur. Googling, ce problème est apparu dans le passé sur plusieurs forums de discussion liés à Tcl/Tk, mais il n’ya pas de solution évidente que je puisse comprendre. La seule question que j'ai pu trouver sur AskUbuntu (Q: Problème d'installation de l'outil fv) n'a pas eu de réponse.
Je peux confirmer ce problème sur une nouvelle installation d'Ubuntu 18.04 LTS avec seulement un package redet
installé:
$ Sudo apt-get install redet
$ redet
Error in startup script: can't find package Itcl 3.4
while executing
"package require Itcl 3.4"
(file "/usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl" line 18)
invoked from within
"source /usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl"
("package ifneeded Iwidgets 4.1.0" script)
invoked from within
"package require Iwidgets"
(file "/usr/bin/redet" line 27)
$ dpkg -S /usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl
iwidgets4: /usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl
$ dpkg -S /usr/bin/redet
redet: /usr/bin/redet
$ echo "puts [package req Itcl]" | tclsh
3.4
J'ai donc signalé bug 176897 au tableau de bord.
Pour contourner le problème, il suffit de télécharger le package à partir de Xenial, de l'installer et d'épingler:
cd ~/Downloads
wget http://mirrors.kernel.org/ubuntu/pool/universe/i/itcl3/itcl3_3.4.3-1_AMD64.deb
Sudo apt-get install ./itcl3_3.4.3-1_AMD64.deb
cat <<EOF | Sudo tee /etc/apt/preferences.d/pin-itcl
Package: itcl3
Pin: version 3.4.3-1
Pin-Priority: 1337
EOF
Après ces actions, redet
est lancé normalement: