Последствия использования apt-get в Ubuntu Touch
Я только что получил свой выпуск 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. Однако я также прочитал ( /questions/256739/mogu-li-ya-ustanovit-i-zapustit-sobstvennyie-prilozheniya-linux-s-graficheskim-i/256752#256752) другие виды ужасов.
Итак, мои 2 вопроса:
- Смогу ли я поддерживать свою систему в актуальном состоянии, используя только apt-get?
- Какие еще последствия следует ожидать, кроме отключения OTA-обновлений?
Большое спасибо за ваши ответы!
2 ответа
- Нет (но какое-то время это будет похоже на да)
Если вы включите rw на / и начнете изменять его, ничто не отключит доставку обновлений OTA. Поэтому, когда они прибудут, они будут предложены вам для установки, как и раньше.
Однако процесс OTA делает очень простую вещь с файловой системой. Он просто распаковывает большой набор файлов поверх имеющейся у вас файловой системы. Так как он знает (потому что это должно быть ro) предыдущую файловую систему, это просто набор файлов, которые изменились.
Итак, вы играете. Вносят ли внесенные вами изменения побочные эффекты, когда это происходит? В общем да. В общем, вы изменили какой-то файл в / filesystem и добавили программное обеспечение, которое зависит от этого изменения. Когда OTA установлен, это изменение будет удалено и потенциально заменено конфликтующим изменением. На данный момент, что происходит дальше, неизвестно и, конечно, не проверено.
Таким образом, на практике некоторые установки apt-get будут в значительной степени добавлять программное обеспечение параллельно существующим файлам, поэтому OTA не окажет значительного влияния на них. Тем не менее, это повлияет на один набор файлов - ведение записей apt (OTA доставляет записи, используемые при создании файловой системы ro). Таким образом, ваша система потеряет знание о том, что там, а что нет.
Это основная опасность при обновлении apt-get. Он всегда будет выполняться с неверной базой данных о том, что находится на устройстве, поэтому он не может быть гарантированно успешным. По мере того, как ваши добавления становятся более сложными, а базовая система выполняет серьезные переходы (например, когда телефоны переходят из Utopic в Vivid), apt-get, запускаемый вручную, будет делать неправильные вещи.
Каждый OTA становится азартной игрой, пока вы не выполните стирание и переустановку.
- Ваша система будет медленно разрушаться - см. Выше.
Чтобы иметь возможность использовать "apt-get" в ubuntu-touch, в целях безопасности я предлагаю вам использовать функцию "Включение / отключение режима чтения-записи".
После включения "режима чтения-записи" это отключит обновление системы Ubuntu.
Однако вы можете восстановить автоматические обновления по беспроводной сети, отключив "режим чтения-записи".
"По умолчанию система доступна только для чтения. Вы можете переключиться в режим чтения-записи, хотя это отключает обновления системы Ubuntu. Основная цель для этого - разработка системы Ubuntu напрямую. Это не требуется для разработки приложений или обычного использования системы. Восстановление из режима чтения-записи возможно, но требует переустановки системы с нуля. Предупреждение: Переключение устройства в режим чтения-записи (и / или восстановление из него) является расширенной функцией и может привести к полной потере данных. Предупреждение: Переключение устройство в режиме чтения-записи отключает автоматические обновления дельты по беспроводной сети. Принятие полного обновления по беспроводной сети после создания записи на устройстве может отменить внесенные вами изменения. "
Во-первых, Включение режима разработчика на вашем устройстве Ubuntu. Для этого перейдите в Настройки → Об этом устройстве → Режим разработчика. (Вы должны применить "Блокировку безопасности" по альтернативе: "4-значный пароль" или "Пароль". В противном случае, с помощью функции "swipe" вы не сможете включить "Режим разработчика")
Подключите ваше устройство к ПК (предположим, что это среда платформы Ubuntu).
Чтобы проверить соединение, используйте adb для отображения подключенных в данный момент устройств:
$ adb devices
Список подключенных устройств
Устройство 025d138e2f521413
- Установить пакет phablet-tools
Убедитесь, что архив юниверса включен, а затем:
$ sudo apt-get install phablet-tools
- Включение режима чтения-записи:
$ phablet-config Writable-изображение
Система перезагружается в режиме чтения-записи.
- Отключение режима чтения-записи: вы можете отключить чтение-запись и восстановить автоматические обновления по беспроводной сети:
$ adb shell rm /userdata/.writable_image
Чтобы восстановить нормально защищенную область чтения-записи в исходное состояние, которое не содержит изменений, которые вы внесли в режиме чтения-записи, установив систему Ubuntu:
$ ubuntu-device-flash touch --channel = CHANNEL
Источники: https://developer.ubuntu.com/en/start/ubuntu-for-devices/installing-ubuntu-for-devices/
Советы: до сих пор не очень хорошая идея использовать "apt-get", поскольку они (Mr.Popey) сказали:
"Мы не тестируем установленные на телефоне сценарии apt-get и, если вы используете обновление apt-get, вы можете устанавливать пакеты, которые еще не были полностью протестированы, как часть обновлений на основе образов"
Источник: Как установить файл.deb в Ubuntu-Touch?
Для постоянного чтения и записи требуется всего 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