Konsekwencje korzystania z apt-get w Ubuntu Touch

17

Właśnie otrzymałem moją wersję BQ Aquaris E4.5 Ubuntu. Bawiłem się nim i stwierdziłem, że jest to dokładnie to, czego się spodziewałem.

Jedną ze wspaniałych rzeczy jest pełny stos ubuntu, w tym zarządzanie pakietami. Chciałbym zacząć używać apt-get do instalowania rzeczy takich jak htop, python2, openvpn i innych.

Dotarłem jednak do apt-get Unable to write to /var/cache/apt The Package lists or status file could not be parsed or openedbłędu. Rozumiem ( Ubuntu Touch przy użyciu apt-get ), że dzieje się tak z powodu montowania partycji „/” jako ro, i apt-get potrzebuje jej rwdo działania.

Tutaj ( instalacja z sudo app-get install nie działa, „Nie używanie blokowania dla pliku tylko do odczytu / var / lib / dpkg / lock” ) jest sposobem na obejście problemu za pomocą następującego polecenia sudo mount -o remount,rw /. <--- Może być złym pomysłem. Zobacz odpowiedź evergreen, aby uzyskać pełniejszy i bezpieczniejszy sposób włączenia rwtrybu.

Chciałbym wiedzieć, jakie są konsekwencje montowania „/” as rw. Przeczytałem, że na początek zatrzyma aktualizacje OTA, z którymi jestem całkowicie OK, o ile będę mógł aktualizować system za pomocą apt-get. Jednak czytam też ( /ubuntu//a/583439/264601 ) inne rodzaje horrorów.

Więc moje 2 pytania to:

  1. Czy będę w stanie aktualizować system za pomocą apt-get?
  2. Oprócz wyłączania aktualizacji OTA, jakich innych konsekwencji należy się spodziewać ?

Dziękuję bardzo za odpowiedzi!

Akrobacje
źródło

Odpowiedzi:

4
  1. Nie (ale przez chwilę będzie to wyglądać tak)

Jeśli włączysz rw na / i zaczniesz go modyfikować, nic nie blokuje dostarczania aktualizacji OTA. Po przybyciu zostaną zaoferowane do zainstalowania, tak jak poprzednio.

Jednak proces OTA robi bardzo prostą rzecz dla systemu plików. Po prostu rozpakowuje duży zestaw plików na posiadanym systemie plików. Ponieważ zna (bo powinien to być ro) poprzedni system plików, jest to po prostu zestaw plików, które się zmieniły.

Więc uprawiasz hazard. Czy wprowadzone zmiany powodują skutki uboczne, kiedy to się dzieje? Ogólnie tak. Zasadniczo zmodyfikujesz niektóre pliki w systemie plików / i dodasz oprogramowanie zależne od tej zmiany. Po zainstalowaniu OTA zmiana zostanie usunięta i potencjalnie zastąpiona zmianą powodującą konflikt. W tym momencie to, co dzieje się dalej, jest niepoznawalne i na pewno nie przetestowane.

Tak więc w praktyce niektóre instalacje apt-get w dużej mierze dodają oprogramowanie równolegle do istniejących plików, więc OTA nie będzie miało na nie dużego wpływu. Jednak na pewno wpłynie to na jeden zestaw plików - własne przechowywanie dokumentacji apt (OTA dostarcza rekordy używane w konstrukcji systemu plików ro). Twój system straci wiedzę o tym, co jest, a co nie.

Jest to podstawowe zagrożenie związane z aktualizacją apt-get. Zawsze będzie wykonywane z niepoprawną bazą danych tego, co znajduje się na urządzeniu, więc nie można zagwarantować, że odniesie sukces. Gdy twoje dodatki stają się coraz bardziej złożone, a system bazowy dokonuje poważnych zmian (na przykład gdy telefony zmieniają się z Utopic na Vivid), apt-get uruchamiany ręcznie zrobi coś złego.

Każda OTA staje się wtedy hazardem, dopóki nie wyczyścisz i nie zainstalujesz ponownie.

  1. Twój system powoli się zepsuje - patrz wyżej.
John McAleely
źródło
10

Aby móc używać „apt-get” w ubuntu-touch, dla bezpieczeństwa sugeruję użycie funkcji „Włączanie / wyłączanie trybu odczytu i zapisu”.

Po włączeniu „trybu odczytu i zapisu” spowoduje to wyłączenie aktualizacji systemu Ubuntu.

Jednak można przywrócić automatyczne aktualizacje bezprzewodowe, wyłączając „tryb odczytu i zapisu”.

„Domyślnie system jest tylko do odczytu. Możesz przełączyć się do trybu odczytu i zapisu, ale powoduje to wyłączenie aktualizacji systemu Ubuntu. Głównym celem tego jest bezpośrednie rozwijanie systemu Ubuntu. Nie jest to wymagane do tworzenia aplikacji lub normalnego korzystania z systemu Odzyskiwanie z trybu odczytu i zapisu jest możliwe, ale wymaga ponownej instalacji systemu od zera Ostrzeżenie: Przełączanie urządzenia w tryb odczytu i zapisu (i / lub odzyskiwanie z niego) to zaawansowana funkcja, która może spowodować całkowitą utratę danych. urządzenie działające w trybie odczytu i zapisu wyłącza automatyczne aktualizacje delta bezprzewodowego. Akceptacja pełnej aktualizacji bezprzewodowej po zapisaniu w urządzeniu może cofnąć wprowadzone zmiany ”.

Po pierwsze: Włączanie trybu programisty na urządzeniu Ubuntu. Aby to zrobić, przejdź do Ustawienia → Informacje o tym urządzeniu → Tryb programisty . (Trzeba zastosować „Blokada bezpieczeństwa” przez alternatyw: „ 4-cyfrowy kod dostępu ” lub „ znaki ASCII .” W przeciwnym razie, z „ swipe funkcję”, nie można włączyć „tryb programisty”)

Podłącz urządzenie do komputera (Załóżmy, że jest to środowisko platformy Ubuntu).

Aby zweryfikować połączenie, użyj adb do wyświetlenia aktualnie podłączonych urządzeń:

$ adb devices

Lista załączonych urządzeń

Urządzenie 025d138e2f521413

  1. Zainstaluj pakiet phablet-tools

Upewnij się, że archiwum wszechświata jest włączone , a następnie:

$ sudo apt-get install phablet-tools

  1. Włączanie trybu odczytu i zapisu:

$ phablet-config writable-image

System uruchomi się ponownie w trybie do odczytu i zapisu.

  1. Wyłączanie trybu odczytu i zapisu: Możesz wyłączyć odczyt i zapis i przywrócić automatyczne aktualizacje bezprzewodowe:

$ adb shell rm /userdata/.writable_image

Aby przywrócić normalnie chroniony obszar odczytu i zapisu do pierwotnego stanu, który nie zawiera żadnych zmian dokonanych w trybie odczytu i zapisu przez instalację systemu Ubuntu:

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

Źródła: https://developer.ubuntu.com/en/start/ubuntu-for-devices/installing-ubuntu-for-devices/#install-options

Porady: do tej pory nie jest dobrym pomysłem używanie „apt-get”, jak to powiedzieli (Mr.Popey):

„Nie testujemy zainstalowanych scenariuszy apt-get na telefonie, a jeśli korzystasz z aktualizacji apt-get, możesz zainstalować pakiety, które nie zostały jeszcze w pełni przetestowane w ramach aktualizacji opartych na obrazach”

Źródło: Jak zainstalować plik .deb w Ubuntu-Touch?

zimozielony
źródło
3
To jest bardzo kompletna odpowiedź na pytanie, jak włączyć rwtryb. Ale obawiam się, że wciąż nie odpowiada na moje pytania.
Stunts
@evergreen Jak mam uruchomić sudo apt-get install phablet-toolspo raz pierwszy, jeśli apt jest wyłączony (z powodu obrazu tylko do odczytu) w telefonie?
Khurshid Alam
@ KhurshidAlam To polecenie powinno zostać wpisane na innym komputerze - jak podano w „Podłącz urządzenie do komputera (Załóżmy, że jest to środowisko platformy Ubuntu)”. Po prostu upewnij się, że masz wszystkie niezbędne narzędzia w tym środowisku.
Stunts
Jeśli nie masz zainstalowanego Ubuntu na komputerze, możesz zbudować phablet-tools ze źródła: bazaar.launchpad.net/~phablet-team/phablet-tools/trunk/files . 1. Zainstaluj bzr, używając menedżera pakietów. Na przykład w CentOS będzie to yum install bzr2. Klonuj źródło phablet-tools: bzr branch lp:phablet-tools3. Przejdź do phablet-toolskatalogu: cd phablet-tools4. Zainstaluj je: sudo python setup.py install Mam nadzieję, że pomaga wszystkim użytkownikom CentOS i innym (Elementary OS, Linux Mint, Arch Linux, Tails, Debian, openSUSE, Manjaro, Fedora, Zorin itp.)
Maxim Mazurok
0

Trwałe montowanie odczytu i zapisu wymaga tylko 3 linii. Początkowo próbowałem postępować zgodnie z tymi instrukcjami na portach UBPort, ale bezskutecznie. Nie są potrzebne narzędzia phablet.

adb shell
sudo touch /userdata/.writable_image
sudo reboot

zmień na r / w tylko na sesję

adb shell
sudo mount -o remount,rw /

Zmień z powrotem na r / o na stałe

adb shell
sudo mount -o remount,rw /

Ubuntu touch zwykle nie jest przeznaczony do apt-get. Aplikacje stacjonarne powinny być używane w swobodnym kontenerze, chociaż go nie skonfigurowałem. W zależności od modelu apt-get zablokuje partycję root. Jest również bardzo możliwe, że może zakłócać aktualizacje, instalować pakiet powodujący konflikt lub w inny sposób uszkodzić system. Ale gdzie jest zabawa, jeśli nie możesz?

Pierwotnie prawie natychmiast zużyłem przestrzeń roota i musiałem użyć tych poleceń, aby zwolnić trochę miejsca, chociaż powinno istnieć bardziej odpowiednie dowiązanie symboliczne do danych użytkownika

sudo mount -o rw,remount /                             
sudo rm -r /var/cache/apt
sudo tune2fs -m 0 /dev/loop0
errorcodevortex
źródło