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

15

Je dois installer Adobe Air sur Ubuntu 16.10 / 17.04 avec Scratch hors ligne 2. Air n'est pas pris en charge de nombreuses années sur Linux, il existe donc plusieurs solutions. Celui qui a fonctionné pour moi jusqu'à Ubuntu 16.04 (en utilisant le programme d'installation 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, cela se termine par une erreur d'installation:

Adobe AIR n'a pas pu être installé. Les outils Debian pour créer des paquets deb (tels que dpkg-deb ou ar) sont introuvables sur le système.

Ce qui est évidemment un faux message d'erreur dpkg-debet arsont 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é une autre façon d'installer un package Adobe Air via 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.
Installez maintenant 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 pour créer des paquets deb (tels que dpkg-deb ou ar) sont introuvables 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'un Adobe Air non entretenu ne peut plus jouer avec les nouveaux dpkg-debet arplus.

Des conseils pour Scratch 2 hors ligne sur Ubuntu 16.10 / 17.04?

Martin
la source
1
Je vous remercie! J'ai pu faire fonctionner Scratch 2.0 le 17.04 avec ces instructions. Cependant, je n'ai pas pu faire fonctionner le code du lanceur. Je n'ai pas pu trouver / usr / bin / applications sur mon installation d'Ubuntu 17.04 mais j'ai pu trouver / usr / share / applications. J'ai substitué ce chemin mais cela n'a pas fonctionné pour moi. J'ai installé Alacarte et l'ai utilisé pour créer un lanceur pour Scratch. J'ai utilisé / opt / adobe-air-sdk / adobe-air / adobe-air /opt/adobe-air-sdk/scratch/Scratch-456.0.1.air comme commande et tout a bien fonctionné.
Scratch 2.0 sur Ubuntu 17.04
Désolé pour ça, mea culpa. Trop longtemps plongé dans des scripts, je fais une faute de frappe à la fin. Je ferai une modification du tutoriel. Vous avez raison de dire que le dossier des lanceurs mondiaux est /usr/share/applications/, les lanceurs locaux sont dedans ~/.local/share/applications/. J'ai besoin de global car j'ai plus d'utilisateurs sur le bureau. Le lanceur global est alors disponible après avoir appuyé sur la super-touche (winkey) et tapé "Scratch". Merci beaucoup pour les tests!
Martin

Réponses:

19

J'ai joué avec ces quelques heures. J'ai d'abord essayé de retracer Adobe Air Application Installeret de trouver ce qui se passait à 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 résolu par un script d'encapsuleur placé par exemple dans ~/air/bin/dpkget changeant la PATHvariable avant 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 mécontents, 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 exécuter Scratch 2 sur Ubuntu 16.10 / 17.04 (même sans adobeair.debinstallation).

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 exécution est un peu plus longue, car l'Air déballe l'application Scratch 2 dans un ~/.appdata/edu.media.mit.Scratch2Editordossier.

Scratch 2 fonctionnant sur Ubuntu 17.04

Martin
la source
3
absolument patron! bon travail!
tatsu
avant de lancer "dpkg --add-architecture i386 && apt-get update", j'ai eu une erreur avec "libnss-mdns: i386". Ça marche pour moi sans
Mohamed EL HABIB
Bon travail! Cependant, le code ne fonctionne que si j'ai supprimé la $marque. La création du lanceur a également échoué sauf si j'ai suivi ce message ( askubuntu.com/questions/956389/… ). J'espère que cela aide les autres. Remarque: je suis trop novice chez Ubuntu.
Mohammad ElNesr
1
Le $est là pour signifier une commande que vous devez exécuter (par opposition à la sortie)
Dan Abrey
Ça marche! Même maintenant, sur Debian testing / buster. Je vous remercie!
miguev