Lancer des applications desktop

Libertine vous permet d’utiliser des applications desktop dans Ubuntu Touch.

To display and launch applications you need the Desktop Apps Scope which is available by swiping from the bottom of your device, and then tapping on the star. To install applications you may use the phone’s Settings interface or you may use the command line as described further below.

Gérer les conteneurs

Créer un conteneur

The first step is to create a container where applications can be installed:

Open Settings and scroll down to Libertine under the System sub-heading.

Tap Libertine to get to the Manage Libertine Containers sub-menu. If you have other containers already installed, they will be visible here. Tap the + sign at the upper right to add a container.

The Container Options dialog box will open asking you to enter a container name and password if desired. Confirm your entries by tapping OK, and the container will be created.

To do this via command line follow these steps:

libertine-container-manager create -i CONTAINER-IDENTIFIER

Vous pouvez ajouter des options supplémentaires comme:

  • -n name remplacer name par un nom facile à retenir à donner au conteneur
  • -t type type peut être à la fois chroot ou lxc. Celui par défaut est chroot et est compatible avec tous les périphériques. Si le noyau de votre périphérique le supporte, alors lxc est suggéré.

Le processus de création peut prendre un peu de temps à cause de la taille du container (quelques centaines de mégaoctets).

Note

La commande create montrée ci-dessus ne peut pas être lancée directement dans l’application terminal du fait de restrictions apparmor. Vous pouvez la lancer depuis un autre périphérique en utilisant soit une connexion adb soit une connexion ssh. Alternativement, vous pouvez la lancer depuis l’application terminal en utilisant une connexion ssh « loopback » en lançant la commande : ssh localhost.

Liste des conteneurs

Use the Settings Manage Libertine Containers sub-menu to list all the containers you have created on the device.

You can also use the command line. Run:

libertine-container-manager list

Détruire un conteneur

libertine-container-manager destroy -i CONTAINER-IDENTIFIER

Gérer les applications

Once a container is set up, you can view the installed applications in Desktop Apps Scope, or in the Manage Libertine Containers menu you can tap the name of the container.

You can also list them via command line:

libertine-container-manager list-apps

Install a package

From the apps list in the Manage Libertine Containers menu tap the + sign to get a dialog box to add a package.

Enter the package name if you know it. Otherwise you can search the archives for a package. You can make this process easier by making the Lubuntu Software Center your first package install. Being a desktop app, you will need to use the Libertine Tweak Tool in the Open Store to make the text large enough to read on a mobile device.

Packages may also be installed via command line:

libertine-container-manager install-package -p PACKAGE-NAME

Supprimer un paquet:

libertine-container-manager remove-package -p PACKAGE-NAME

Note

Si vous avez plus d’un conteneur ; alors vous pouvez utiliser l’option -i CONTAINER-IDENTIFIER pour spécifier pour quel conteneur vous voulez effectuer cette opération.

Run desktop application

Simply select the app from the Desktop Apps Scope to run it like any other app. To start a graphical application from the command line, for example gedit, run in a terminal:

# ubuntu-app-launch <CONTAINER_ID>_<desktop_file_name>_0.0
ubuntu-app-launch xenial_gedit_0.0

Fichiers

Les applications Libertine ont accès à ces dossiers :

  • Documents
  • Musique
  • Images
  • Téléchargements
  • Vidéos

Astuces

Emplacements

Pour chaque conteneur que vous créez, il y aura deux dossiers créés :

  • Un dossier racine ~/.cache/libertine-container/CONTAINER-IDENTIFIER/rootfs/ et
  • un dossier utilisateur ~/.local/share/libertine-container/user-data/CONTAINER-IDENTIFIER/

Accès Shell

Il existe deux options pour exécuter des commandes à l’intérieur d’un conteneur.

La première option est basée sur libertine-container-manager exec. Elle vous laisse exécuter votre commande en tant qu’administrateur. L’inconvénient est que le conteneur n’est pas complètement mis en place. Jusque-là, nous savons que les dossiers mentionnés ci-dessus (Documents, Music, …) ne sont pas montés c’est-à-dire que le répertoire /home/phablet/ est vide. De même, le répertoire référencé dans TMPDIR n’est pas disponible, ce qui peut poser des problèmes avec un logiciel qui essaye de créer des fichiers ou des répertoires temporaires. Vous pouvez utiliser cette option par exemple pour l’installation de paquets.

Pour exécuter une commande, vous pouvez utiliser le modèle suivant:

libertine-container-manager exec -i CONTAINER-IDENTIFIER -c "COMMAND-LINE"

Par exemple, exécutez:

libertine-container-manager exec -i CONTAINER-IDENTIFIER -c "apt-get --help"

Pour obtenir un shell dans votre conteneur en tant que root lancer :

libertine-container-manager exec -i CONTAINER-IDENTIFIER -c "/bin/bash"

La seconde option est basée sur libertine-launch. Elle exécutera vos commandes en tant qu’utilisateur dans un conteneur complètement mis en place. Vous pouvez donc utiliser cette option pour modifier vos fichiers en utilisant les paquets installés.

Pour exécuter une commande, vous pouvez utiliser le modèle suivant:

libertine-launch -i CONTAINER-IDENTIFIER COMMAND-LINE

Par exemple, exécutez:

libertine-launch -i CONTAINER-IDENTIFIER ls -a

Pour obtenir une interface système en tant qu’utilisateur de phablet, lancez:

DISPLAY= libertine-launch -i CONTAINER-IDENTIFIER /bin/bash

Note

Quand vous lancez bash de cette manière, vous n’aurez aucun retour confirmant que vous êtes à l’intérieur de ce conteneur. Vous pouvez cependant lancer ls / pour vérifier que vous êtes bien à l’intérieur de ce conteneur.

Accessing SD card

In order to access your SD-card or any other part of the regular filesystem from inside your libertine container you must create a bind mount.

In order to add a bind mount use:

libertine-container-manager configure -i CONTAINER-IDENTIFIER -b add -p /media/phablet/ID-OF-SD

You can also make deep links in case you only want parts of your SD-card available in the container. In this case just the entire path to the directory you want to bind mount:

libertine-container-manager configure -i CONTAINER-IDENTIFIER -b add -p /media/phablet/ID-OF-SD/directory/you/want

This will not allow the container access to any of the directories earlier in the path for anything other than accessing your mounted directory.

In order to use the SD-card as extra space for your container, make sure first to format it using ext4 or similar. There is a mis-feature in udisk2 that mounts SD-cards (showexec) that ensures only files ending in .bat, .exe or .com can be executed from the drive if it is (v)fat formatted. This has been changed in other distributions allowing any file to have execute priviliges, but not ubuntu. The reccomended workaround is to add a udev rule to control how to mount a card with a given id, but since the udev rules are on the read only port on touch, this is not possible.

Raccourcis

Si vous le souhaitez, vous pouvez ajouter des alias pour les outils en ligne de commande. Ajoutez des lignes comme les suivantes à votre fichier ~/.bash_aliases:

alias git='libertine-launch -i CONTAINER-IDENTIFIER git'
alias screenfetch='libertine-launch -i CONTAINER-IDENTIFIER screenfetch'

Arrière-plan

Un serveur d’affichage coordonne les entrées et les sorties d’un système d’exploitation. La plupart des distributions Linux utilisent de nos jours un serveur X. Ubuntu touch n’utilise pas de serveur X mais utilise un nouveau serveur d’affichage appelé Mir. Cela signifie que les applications standard X ne sont pas directement compatibles avec Ubuntu Touch. Une couche de compatibilité appelé XMir est nécessaire. Libertine utilise donc XMir pour afficher les applications de bureau.

Un autre défi est que les mises à jours d’Ubuntu Touch sont délivrées par des images OTA. En conséquence, le système de fichier racine est en lecture seule. Libertine met à disposition un conteneur avec un système de fichier en mode lecture et écriture pour permettre l’installation d’applications Linux traditionnelles pour poste de travail.