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

The create command shown above cannot be run directly in the terminal app, due to apparmor restrictions. You can run it from another device using either adb or ssh connection. Alternatively, you can run it from the terminal app using a loopback ssh connection running this command: 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

Remove a package

On the package list, within the container (System Settings > Libertine > Manage Libertine Containers > CONTAINER NAME), swipe right on the package you want to remove to reveal the option to remove the package.

Or you can remove the package via the command line:

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.

The first option is based on libertine-container-manager exec. It lets you run your commands as root. The drawback is that the container is not completely set up. So far we know that the folders mentioned above (Documents, Music, …) are not mounted i.e., the /home/phablet/ directory is empty. Likewise the directory referenced in TMPDIR is not available which may lead to problems with software that tries to create temporary files or directories. You may use this option e.g., for installing packages.

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.