Последствия использования apt-get в Ubuntu Touch

17

Я только что получил свой выпуск BQ Aquaris E4.5 Ubuntu. Я играл с этим и обнаружил, что это именно то, чего я ожидал.

Одна из замечательных особенностей этого - полный стек Ubuntu, включая управление пакетами. Я хотел бы начать использовать apt-get для установки таких вещей, как htop, python2, openvpn и других.

Однако я дошел до apt-get Unable to write to /var/cache/apt The Package lists or status file could not be parsed or openedошибки. Я понимаю ( Ubuntu Touch использует apt-get ), что это происходит из-за того, что раздел / / монтируется как ro, и apt-get нужен для rwтого, чтобы он работал.

Здесь ( Установка с помощью sudo app-get install не работает, «Не использовать блокировку только для чтения файла / var / lib / dpkg / lock» ) - вот как вы можете обойти эту проблему с помощью следующей команды sudo mount -o remount,rw /. <--- Может быть плохая идея. Посмотрите ответ Evergreen для более полного и безопасного способа включения rwрежима.

То, что я хотел бы знать, каковы последствия установки "/" как rw. Я читал, что для начала он остановит обновления OTA, с которыми у меня все в порядке, пока я могу поддерживать свою систему в актуальном состоянии, используя apt-get. Однако я также прочитал ( /ubuntu//a/583439/264601 ) другие виды ужасов.

Итак, мои 2 вопроса:

  1. Смогу ли я поддерживать свою систему в актуальном состоянии, используя только apt-get?
  2. Какие еще последствия следует ожидать, кроме отключения OTA-обновлений ?

Большое спасибо за ваши ответы!

Трюки
источник

Ответы:

4
  1. Нет (но какое-то время это будет похоже на да)

Если вы включите rw на / и начнете изменять его, ничто не отключит доставку обновлений OTA. Поэтому, когда они прибудут, они будут предложены вам для установки, как и раньше.

Однако процесс OTA делает очень простую вещь с файловой системой. Он просто распаковывает большой набор файлов поверх имеющейся у вас файловой системы. Так как он знает (потому что это должно быть ro) предыдущую файловую систему, это просто набор файлов, которые изменились.

Итак, вы играете. Вносят ли внесенные вами изменения побочные эффекты, когда это происходит? В общем да. В общем, вы изменили какой-то файл в / filesystem и добавили программное обеспечение, которое зависит от этого изменения. Когда OTA установлен, это изменение будет удалено и потенциально заменено конфликтующим изменением. На данный момент, что происходит дальше, неизвестно и, конечно, не проверено.

Таким образом, на практике некоторые установки apt-get будут в значительной степени добавлять программное обеспечение параллельно существующим файлам, поэтому OTA не окажет значительного влияния на них. Тем не менее, это повлияет на один набор файлов - ведение записей apt (OTA доставляет записи, используемые при создании файловой системы ro). Таким образом, ваша система потеряет знание о том, что там, а что нет.

Это основная опасность при обновлении apt-get. Он всегда будет выполняться с неверной базой данных о том, что находится на устройстве, поэтому он не может быть гарантированно успешным. По мере того, как ваши добавления становятся более сложными, а базовая система выполняет серьезные переходы (например, когда телефоны переходят из Utopic в Vivid), apt-get, запускаемый вручную, будет делать неправильные вещи.

Каждый OTA становится азартной игрой, пока вы не выполните стирание и переустановку.

  1. Ваша система будет медленно разрушаться - см. Выше.
Джон Макали
источник
10

Чтобы иметь возможность использовать «apt-get» в ubuntu-touch, в целях безопасности я предлагаю вам использовать функцию «Включение / отключение режима чтения-записи».

После включения «режима чтения-записи» это отключит обновление системы Ubuntu.

Однако вы можете восстановить автоматические обновления по беспроводной сети, отключив «режим чтения-записи».

«По умолчанию система доступна только для чтения. Вы можете переключиться в режим чтения-записи, хотя это отключает обновления системы Ubuntu. Основная цель для этого - разработка системы Ubuntu напрямую. Это не требуется для разработки приложений или обычного использования системы. Восстановление из режима чтения-записи возможно, но требует переустановки системы с нуля. Предупреждение: Переключение устройства в режим чтения-записи (и / или восстановление из него) является расширенной функцией и может привести к полной потере данных. Предупреждение: Переключение устройство в режиме чтения-записи отключает автоматические обновления дельты по беспроводной сети. Принятие полного обновления по беспроводной сети после создания записи на устройстве может отменить внесенные вами изменения. "

Во-первых, Включение режима разработчика на вашем устройстве Ubuntu. Для этого перейдите в Настройки → Об этом устройстве → Режим разработчика . (Вы должны применить «Блокировку безопасности» по альтернативе: « 4-значный пароль » или « Пароль ». В противном случае, с помощью функции « swipe » вы не сможете включить «режим разработчика»)

Подключите ваше устройство к ПК (предположим, что это среда платформы Ubuntu).

Чтобы проверить соединение, используйте adb для отображения подключенных в данный момент устройств:

$ adb devices

Список подключенных устройств

Устройство 025d138e2f521413

  1. Установить пакет phablet-tools

Убедитесь, что архив юниверса включен , а затем:

$ sudo apt-get install phablet-tools

  1. Включение режима чтения-записи:

$ phablet-config Writable-изображение

Система перезагружается в режиме чтения-записи.

  1. Отключение режима чтения-записи: вы можете отключить чтение-запись и восстановить автоматические обновления по беспроводной сети:

$ adb shell rm /userdata/.writable_image

Чтобы восстановить нормально защищенную область чтения-записи в исходное состояние, которое не содержит изменений, которые вы внесли в режиме чтения-записи, установив систему Ubuntu:

$ ubuntu-device-flash touch --channel = CHANNEL

Источники: https://developer.ubuntu.com/en/start/ubuntu-for-devices/install-ubuntu-for-devices/#install-options

Советы: до сих пор не очень хорошая идея использовать «apt-get», поскольку они (Mr.Popey) сказали:

«Мы не тестируем установленные на телефоне сценарии apt-get и, если вы используете обновление apt-get, вы можете устанавливать пакеты, которые еще не были полностью протестированы, как часть обновлений на основе образов»

Источник: Как установить файл .deb в Ubuntu-Touch?

вечнозеленый
источник
3
Это очень полный ответ о том, как включить rwрежим. Но это все еще не отвечает на мои вопросы, я боюсь.
Трюки
@evergreen Как мне запустить sudo apt-get install phablet-toolsв первый раз, если apt отключен (из-за изображения только для чтения) на телефоне?
Хуршид Алам
@KhurshidAlam Эта команда должна вводиться на другом компьютере, как указано в разделе «Подключите ваше устройство к ПК (предположим, что это среда платформы Ubuntu)». Просто чтобы убедиться, что у вас есть все необходимые инструменты в этой среде.
Трюки
Если на вашем компьютере не установлена ​​Ubuntu, вы можете собрать инструменты phablet из источника: bazaar.launchpad.net/~phablet-team/phablet-tools/trunk/files . 1. Установите bzr, используя менеджер пакетов. Например, в CentOS это будет yum install bzr2. Источник клонов phablet-tools: bzr branch lp:phablet-tools3. Перейдите в phablet-toolsкаталог: cd phablet-tools4. Установите их: sudo python setup.py install Надеюсь, это поможет всем пользователям CentOS и другим (Elementary OS, Linux Mint, Arch Linux, Tails, Debian, openSUSE, Манджаро, Федора, Зорин и т. д.)
Максим Мазурок
0

Для постоянного чтения и записи требуется всего 3 строки. Первоначально я пытался следовать этим инструкциям на UBPorts, но безрезультатно. Фаблетные инструменты не нужны.

adb shell
sudo touch /userdata/.writable_image
sudo reboot

изменить его на ч / б только для сессии

adb shell
sudo mount -o remount,rw /

Перейдите обратно на R / O постоянно

adb shell
sudo mount -o remount,rw /

Ubuntu Touch обычно не предназначен для apt-get. Настольные приложения, как правило, предполагается использовать в контейнере libertine, хотя я его не настраивал. В зависимости от модели apt-get засорит корневой раздел. Также очень возможно, что это может помешать обновлениям, установить конфликтующий пакет или иным образом сломать вашу систему. Но где веселье, если ты не можешь?

Первоначально я почти сразу использовал корневое пространство, и мне пришлось использовать эти команды для освобождения некоторого пространства, хотя должна быть более подходящая символическая ссылка на пользовательские данные.

sudo mount -o rw,remount /                             
sudo rm -r /var/cache/apt
sudo tune2fs -m 0 /dev/loop0
errorcodevortex
источник