Run desktop applications¶
Libertine allows you to use standard desktop applications in Ubuntu Touch.
To install applications you can use the Settings interface on your Ubuntu Touch device, or the command-line as described further below.
Limitations¶
Before using Libertine on your device, be aware that there are limitations to the usability of packages.
Software that is not designed with a mobile use-case in mind may be difficult to use due to lack of touchscreen support, scaling and other UI issues.
Applications will not run in the background in Libertine, hence it is not a solution to run server software on your phone.
Manage containers¶
Create a container¶
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. Already installed containers 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 optionally a password. Confirm your entries by tapping «OK», and the container will be created.
To do this via the command-line:
libertine-container-manager create -i CONTAINER-IDENTIFIER
You can add extra options such as:
-n namename is a more user-friendly name of the container
-t typetype can be eitherchrootorlxc. The default ischroot, which is compatible with every device.If the kernel of your device supports it,
lxcis suggested.
Creation can take a while due to the size of the container (some hundred megabytes).
Примітка
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 an ADB or SSH connection.
Alternatively, you can run it from the terminal app using a loopback SSH connection by running this command: ssh localhost.
Список контейнерів¶
Використовуйте підменю Налаштування управління контейнерами Libertine, щоб переглянути список усіх контейнерів, які ви створили на пристрої.
Ви також можете скористатися командним рядком. Виконайте:
libertine-container-manager list
Знищити контейнер¶
libertine-container-manager destroy -i CONTAINER-IDENTIFIER
Керувати програмами¶
Після налаштування контейнера встановлені програми стають доступними в панелі програм. Ви також можете натиснути на назву контейнера в меню Керування контейнерами Libertine.
Ви також можете перелічити їх за допомогою командного рядка:
libertine-container-manager list-apps
Встановити пакет¶
У списку програм у меню Керування контейнерами Libertine можна натиснути значок +, щоб відкрити діалогове вікно, в якому можна додати пакет.
Введіть назву пакета, якщо вона вам відома. В іншому випадку ви можете пошукати пакет в архівах. Ви можете спростити цей процес, встановивши в першу чергу центр програмного забезпечення, наприклад gnome-software. Оскільки це настільна програма, вам потрібно буде скористатися інструментом Libertine Tweak Tool в Open Store, щоб зробити текст достатньо великим для читання на мобільному пристрої.
Пакети також можна встановлювати за допомогою командного рядка:
libertine-container-manager install-package -p PACKAGE-NAME
Видалити пакет¶
Видаліть пакет, провівши по ньому пальцем вправо від його запису в списку пакетів (в Налаштування системи > Libertine > Керування контейнерами Libertine > НАЗВА КОНТЕЙНЕРА). З’явиться опція для його видалення.
Або ви можете видалити пакет за допомогою командного рядка:
libertine-container-manager remove-package -p PACKAGE-NAME
Примітка
Якщо у вас є більше одного контейнера, ви можете використовувати опцію -i CONTAINER-IDENTIFIER, щоб вказати, з яким контейнером ви хочете виконати операцію.
Запустити настільну програму¶
Запустіть його з меню програм, як будь-яку іншу програму. Для запуску графічної програми з командного рядка, наприклад gedit, виконайте в терміналі наступну команду:
# lomiri-app-launch <CONTAINER_ID>_<desktop_file_name>_0.0
lomiri-app-launch focal_gedit_0.0
Файли¶
Програми Libertine мають доступ до таких тек:
Документи
Музика
Фотографії
Завантаження
Відео
Поради¶
Розташування¶
Для кожного створеного контейнера буде створено два каталоги:
Кореневий каталог
~/.cache/libertine-container/CONTAINER-IDENTIFIER/rootfs/такаталог користувача
~/.local/share/libertine-container/user-data/CONTAINER-IDENTIFIER/
Доступ до оболонки¶
Існує два варіанти виконання команд всередині контейнера.
Перший варіант базується на libertine-container-manager exec. Він дозволяє виконувати команди як root. Недоліком є те, що контейнер не налаштований повністю. Наразі ми знаємо, що зазначені вище теки (Документи, Музика, …) не змонтовані, тобто тека /home/phablet/ порожня. Аналогічно, тека, на яку посилається TMPDIR, недоступна, що може призвести до проблем із програмним забезпеченням, яке намагається створити тимчасові файли або теки. Цією опцією можна користуватися для встановлення пакетів.
Для виконання команди можна використовувати наступний паттерн:
libertine-container-manager exec -i CONTAINER-IDENTIFIER -c "COMMAND-LINE"
Наприклад, запустіть:
libertine-container-manager exec -i CONTAINER-IDENTIFIER -c "apt-get --help"
Щоб отримати оболонку в контейнері як root, виконайте:
libertine-container-manager exec -i CONTAINER-IDENTIFIER -c "/bin/bash"
Другий варіант базується на libertine-launch. Він виконуватиме ваші команди як користувач phablet у повністю налаштованому контейнері. Ви можете використовувати цей варіант для модифікації ваших файлів за допомогою встановлених пакетів.
Для виконання команди можна використовувати наступний паттерн:
libertine-launch -i CONTAINER-IDENTIFIER COMMAND-LINE
Наприклад, запустіть:
libertine-launch -i CONTAINER-IDENTIFIER ls -a
Щоб отримати оболонку як користувач phablet, виконайте:
DISPLAY= libertine-launch -i CONTAINER-IDENTIFIER /bin/bash
Примітка
Коли ви запускаєте Bash таким чином, ви не отримаєте жодного конкретного підтвердження того, що ви перебуваєте всередині контейнера. Ви можете перевірити ls /, щоб переконатися, що ви дійсно перебуваєте всередині контейнера. Список ls / буде відрізнятися всередині і зовні контейнера.
Примітка
При спробі виконати команди, які вимагають привілеїв суперкористувача, ви можете зіткнутися з такою помилкою:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
Спробуйте замінити «sudo» на «fakeroot» у вашій команді, наприклад:
fakeroot apt install firefox
Доступ до SD-карти¶
Щоб отримати доступ до SD-карти або будь-якої іншої частини звичайної файлової системи зсередини контейнера Libertine, необхідно створити прив’язку.
Щоб додати прив’язку, використовуйте:
libertine-container-manager configure -i CONTAINER-IDENTIFIER -b add -p /media/phablet/ID-OF-SD
Ви також можете створити глибокі посилання, якщо хочете, щоб у контейнері були доступні лише певні частини вашої SD-карти. У цьому випадку просто додайте повний шлях до каталогу, який ви хочете прив’язати mount:
libertine-container-manager configure -i CONTAINER-IDENTIFIER -b add -p /media/phablet/ID-OF-SD/directory/you/want
Це не надасть контейнеру доступ до будь-яких каталогів, розташованих раніше в шляху, крім доступу до вашого змонтованого каталогу.
Щоб використовувати SD-картку як додатковий простір для Вашого контейнера, спочатку переконайтеся, що Ви відформатували її за допомогою ext4 або подібної файлової системи. У UDisks2, якщо він відформатований у (V)FAT, є проблемна особливість (mis-feature), яка монтує SD-картки з опцією showexec, через що можуть виконуватися з диска лише файли, які закінчуються на .bat, .exe або .com. Це було виправлено в інших дистрибутивах, дозволяючи будь-якому файлу мати права на виконання, але не в Ubuntu. Рекомендований обхідний шлях — додати правило udev для контролю способу монтування картки з певним ID, але оскільки правила udev знаходяться на порту, який в Ubuntu Touch тільки для читання, це неможливо.
Ярлики¶
Якщо Ви хочете, можете додати псевдоніми для інструментів командного рядка. Додайте такі рядки до свого ~/.bash_aliases:
alias git='libertine-launch -i CONTAINER-IDENTIFIER git'
alias screenfetch='libertine-launch -i CONTAINER-IDENTIFIER screenfetch'
Встановлення пакетів вручну¶
Якщо Ви хочете встановити пакет з файлу, спочатку потрібно зробити його доступним для користувача root, наприклад, скопіювавши його в каталог /root:
cp ~/Downloads/somepackage.deb ~/.cache/libertine-container/CONTAINER-IDENTIFIER/rootfs/root/
Потім встановіть його за допомогою dpkg::
libertine-container-manager exec -i CONTAINER-IDENTIFIER -c "dpkg -i /root/somepackage.deb"
Тло¶
Сервер відтворення координує введення та виведення операційної системи. Ubuntu Touch використовує не X, а новий сервер відтворення під назвою Mir. Це означає, що стандартні програми X несумісні напряму з Ubuntu Touch. Цю проблему вирішує шар сумісності під назвою XMir. Libertine використовує XMir для відтворення програм робочого столу.
Ще однією проблемою є те, що оновлення системи Ubuntu Touch випускаються у вигляді образів OTA. Як наслідок, коренева файлова система є доступною тільки для читання. Libertine надає контейнер із файловою системою для читання та запису, що дозволяє встановлювати звичайні настільні програми для Linux.