web-dev-qa-db-fra.com

Comment installer Scratch 2 sur Ubuntu 16.10. ou 17.04 (64bit)?

Je dois installer Adobe Air sur Ubuntu 16.10/17.04 avec Scratch 2 hors connexion. Air étant, depuis de nombreuses années, non pris en charge sur Linux, il existe plusieurs solutions de contournement. Un qui a fonctionné pour moi jusqu’à Ubuntu 16.04 (avec l’installateur binaire Air):

# install i386 necessary libraries
$ Sudo apt-get install libgtk2.0-0:i386 libstdc++6:i386 libxml2:i386 libxslt1.1:i386 libcanberra-gtk-module:i386 gtk2-engines-murrine:i386 libqt4-qt3support:i386 libgnome-keyring0:i386 libnss-mdns:i386 libnss3:i386
# install keyring
$ Sudo apt-get install libgnome-keyring0:i386
# make keyring visible for Air
$ Sudo ln -s /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0 /usr/lib/libgnome-keyring.so.0
$ Sudo ln -s /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.2.0 /usr/lib/libgnome-keyring.so.0.2.0 
# download Adobe Air installer
$ wget  http://airdownload.Adobe.com/air/lin/download/2.6/AdobeAIRInstaller.bin
# run it
$ Sudo chmod +x AdobeAIRInstaller.bin
$ Sudo ./AdobeAIRInstaller.bin

mais le 16.10/17.4, il se termine par une erreur d'installation:

Adobe AIR n'a pas pu être installé. Les outils Debian permettant de créer des paquets deb (tels que dpkg-deb ou ar) n’ont pas été trouvés sur le système.

Ce qui est évidemment un faux message d'erreur puisque dpkg-deb et ar sont tous deux installés:

$ dpkg-deb --version
Debian 'dpkg-deb' package management program version 1.18.10 (AMD64).
$ ar --version
GNU ar (GNU Binutils for Ubuntu) 2.28

Le fichier journal d'installation d'Adobe Air à partir de /root/.appdata/Adobe/AIR/Logs/Install.log

[setup:2506][INFO] Runtime Installer begin with version 2.6.0.19170 on Linux x86
[setup:2506][INFO] Commandline is: 
[setup:2506][INFO] No installed runtime detected
[setup:2506][INFO] Relaunching with elevation
[setup:2506][INFO] Launching subprocess with commandline /tmp/air.hp19kU/setup -ei
[setup:2525][INFO] Runtime Installer begin with version 2.6.0.19170 on Linux x86
[setup:2525][INFO] Commandline is: -stdio /tmp/air.KWo9tt/channel -ei
[setup:2525][INFO] No installed runtime detected
[setup:2525][INFO] Starting silent runtime install. Installing runtime version 2.6.0.19170
[setup:2525][INFO] Session detected: GNOME
[setup:2525][ERR] Error occurred during rpm create operation; beginning rollback: [ErrorEvent type="error" bubbles=false cancelable=false eventPhase=2 text="dpkg-query: package 'Adobe-certs' is not installed and no information is available;Use dpkg --info (= dpkg-deb --info) to examine archive files,;and dpkg --contents (= dpkg-deb --contents) to list their contents.Could not run the command : ar" errorID=5031]
[setup:2525][INFO] Rollback complete
[setup:2525][ERR] Exiting due to error: [ErrorEvent type="error" bubbles=false cancelable=false eventPhase=2 text="dpkg-query: package 'Adobe-certs' is not installed and no information is available;Use dpkg --info (= dpkg-deb --info) to examine archive files,;and dpkg --contents (= dpkg-deb --contents) to list their contents.Could not run the command : ar" errorID=5031]
[setup:2525][ERR] Runtime Installer end with exit code 7
[setup:2506][ERR] Exiting due to error: [ErrorEvent type="error" bubbles=false cancelable=false eventPhase=2 text="dpkg-query: package 'Adobe-certs' is not installed and no information is available;Use dpkg --info (= dpkg-deb --info) to examine archive files,;and dpkg --contents (= dpkg-deb --contents) to list their contents.Could not run the command : ar" errorID=5031]
[setup:2506][ERR] Runtime Installer end with exit code 7

J'ai donc trouvé un autre moyen d'installer Adobe Air via un package deb (je ne le savais pas auparavant):

$ wget http://airdownload.Adobe.com/air/lin/download/2.6/adobeair.deb
$ Sudo dpkg -i adobeair.deb

Et voilà! Adobe Air est installé sur Ubuntu 16.10/17.04.
Maintenant, installez Scratch 2.

# Find the latest Scratch AIR file link from https://scratch.mit.edu/scratch2download/
$ wget https://scratch.mit.edu/scratchr2/static/sa/Scratch-456.0.1.air
$ Sudo Adobe\ AIR\ Application\ Installer ./Scratch-456.0.1.air 

et encore la même erreur:

Adobe AIR n'a pas pu être installé. Les outils Debian permettant de créer des paquets deb (tels que dpkg-deb ou ar) n’ont pas été trouvés sur le système.

Install.log

[Adobe AIR Application Installer:3197][INFO] Application Installer begin with version 2.6.0.19170 on Linux x86
[Adobe AIR Application Installer:3197][INFO] Commandline is: 
[Adobe AIR Application Installer:3197][INFO] Installed runtime (2.6.0.19170) located at /opt/Adobe AIR
[Adobe AIR Application Installer:3197][INFO] Unpackaging file:///home/administrator/Downloads/Scratch-456.0.1.air to /tmp/FlashTmp.LSCkv7
[Adobe AIR Application Installer:3197][INFO] Application signature verified
[Adobe AIR Application Installer:3197][INFO] Unpackaging/validation complete
[Adobe AIR Application Installer:3197][INFO] No app located for appID 'edu.media.mit.Scratch2Editor' and pubID ''
[Adobe AIR Application Installer:3197][INFO] Converting unpackaged application to a native installation package in /tmp/FlashTmp.RJSwfW
[Adobe AIR Application Installer:3197][ERR] Native installation package creation failed: [ErrorEvent type="error" bubbles=false cancelable=false eventPhase=2 text="Unhandled exception Error: Error creating the package Could not run the command : ar" errorID=5031]
[Adobe AIR Application Installer:3197][ERR] Application Installer end with exit code 7

On dirait qu’une compagnie Adobe Air non entretenue ne peut plus jouer avec les nouveaux dpkg-deb et ar.

Des astuces pour déconnecter Scratch 2 sur Ubuntu 16.10/17.04?

15
Martin

J'ai joué avec ce couple d'heures. J'ai d'abord essayé de retrouver le Adobe Air Application Installer et de trouver ce qui se passe à l'intérieur.

$ Sudo strace -s 500 -t -o air_scratch.txt Adobe\ AIR/Versions/1.0/Adobe\ AIR\ Application\ Installer ~/Downloads/Scratch-456.0.1.air 

Et j'ai trouvé cette ligne:

read(18, "dpkg-deb: error: treewalk root /tmp/FlashTmp.3TWnKI/build/DEBIAN is not a directory\n", 4096) = 84

Il semble que le nouveau dpkgne puisse pas gérer les liens comme le précédent. Cela peut être corrigé par un script wrapper placé par exemple. ~/air/bin/dpkg et en modifiant la variable PATHavant d'exécuter Adobe Air Application Installer. Malheureusement, Scratch ne peut pas être installé sans Sudo, et changer PATHpour Sudo n’est pas si facile.

Ensuite, j'ai trouvé un forum polonais de contribuables malheureux, qui résolvent des problèmes similaires (ils doivent exécuter une application Air du ministère des Finances sur Debian/Ubuntu): https://forum.dug.net.pl/viewtopic .php? pid = 310108 .

Et au fond de ce forum, j'ai trouvé quelques astuces, comment utiliser Scratch 2 sur Ubuntu 16.10/17.04 (même sans l'installation de adobeair.deb).

Ceci est ma solution de travail finale, testée sur une installation propre.

# install necesary i386 libraries
$ Sudo apt-get install libgtk2.0-0:i386 libstdc++6:i386 libxml2:i386 libxslt1.1:i386 libcanberra-gtk-module:i386 gtk2-engines-murrine:i386 libqt4-qt3support:i386 libgnome-keyring0:i386 libnss-mdns:i386 libnss3:i386

# make keyring visible for Adobe Air
$ Sudo ln -s /usr/lib/i386-linux-gnu/libgnome-keyring.so.0 /usr/lib/libgnome-keyring.so.0
$ Sudo ln -s /usr/lib/i386-linux-gnu/libgnome-keyring.so.0.2.0 /usr/lib/libgnome-keyring.so.0.2.0

# Download Adobe Air
cd ~/Downloads
wget http://airdownload.Adobe.com/air/lin/download/2.6/AdobeAIRSDK.tbz2
$ Sudo mkdir /opt/Adobe-air-sdk
$ Sudo tar jxf AdobeAIRSDK.tbz2 -C /opt/Adobe-air-sdk

# Download Air runtime/SDK from Archlinux
wget https://aur.archlinux.org/cgit/aur.git/snapshot/Adobe-air.tar.gz
$ Sudo tar xvf Adobe-air.tar.gz -C /opt/Adobe-air-sdk
$ Sudo chmod +x /opt/Adobe-air-sdk/Adobe-air/Adobe-air

# Get actual scratch file URL from https://scratch.mit.edu/scratch2download/
$ Sudo mkdir /opt/Adobe-air-sdk/scratch
wget https://scratch.mit.edu/scratchr2/static/sa/Scratch-456.0.1.air
$ Sudo cp Scratch-456.0.1.air /opt/Adobe-air-sdk/scratch/
cp Scratch-456.0.1.air /tmp/
cd /tmp/
unzip /tmp/Scratch-456.0.1.air
$ Sudo cp /tmp/icons/AppIcon128.png /opt/Adobe-air-sdk/scratch/scratch.png

Créer un lanceur:

$ cat << _EOF_ > /usr/share/applications/Scratch2.desktop
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Exec=/opt/Adobe-air-sdk/Adobe-air/Adobe-air /opt/Adobe-air-sdk/scratch/Scratch-456.0.1.air
Icon=/opt/Adobe-air-sdk/scratch/scratch.png
Terminal=false
Name=Scratch 2
Comment=Programming system and content development tool
Categories=Application;Education;Development;ComputerScience;
MimeType=application/x-scratch-project
_EOF_

$ chmod +x /usr/share/applications/Scratch2.desktop

Et c'est tout. La première utilisation est un peu plus longue, car Air décompresse l'application Scratch 2 dans le dossier ~/.appdata/edu.media.mit.Scratch2Editor.

Scratch 2 running on Ubuntu 17.04

19
Martin