Ubuntuタッチでapt-getを使用した場合の結果


17

BQ Aquaris E4.5 Ubuntuエディションを受け取りました。私はそれをいじってみましたが、それがまさに私が期待していたものであることがわかりました。

それについてのすばらしいことの1つは、パッケージ管理を含む完全な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エラーに達しました。私は理解しています(apt-getを使用したUbuntu Touch)これはとしてマウントされている「/」パーティションによるものroであり、apt-getが動作するためにはそれが必要であることがわかりrwます。

ここで(sudo app-get installを使用したインストールが機能しない、「読み取り専用ファイル/ var / lib / dpkg / lockにロックを使用しない」)は、次のコマンドで問題を回避する方法ですsudo mount -o remount,rw /。<---悪い考えかもしれません。rwモードを有効にするより完全で安全な方法については、evergreenの回答を参照してください。

私が知りたいのは、「/」をとしてマウントした場合の結果ですrw。apt-getを使用してシステムを最新の状態に保つことができる限り、OTAの更新を最初に停止することになると読んでいます。ただし、他の種類のホラーストーリー(/ubuntu//a/583439/264601)も読んでいます

私の2つの質問は次のとおりです。

  1. apt-getだけを使用してシステムを最新の状態に保つことはできますか?
  2. OTA更新を無効にする以外に、他にどのような結果が予想されますか?

ご回答ありがとうございました!

回答:


4
  1. いいえ(ただし、しばらくはイエスのように感じます)

/でrwを有効にして変更を開始した場合、OTA更新の配信は無効になりません。したがって、それらが到着すると、以前と同様にインストール用に提供されます。

ただし、OTAプロセスはファイルシステムに対して非常に単純なことを行います。それはあなたが持っているファイルシステムの上にある大きなファイルセットを展開するだけです。(roである必要があるため)前のファイルシステムを知っているため、これは単に変更されたファイルのセットです。

あなたはギャンブルをしています。あなたが行った変更は、これが起こったときに副作用を引き起こしますか?一般に、はい。一般的に、/ファイルシステムのいくつかのファイルを変更し、その変更に依存するソフトウェアを追加します。OTAをインストールすると、その変更は削除され、競合する変更に置き換えられる可能性があります。この時点で、次に何が起こるかは不明であり、確かに未検証です。

そのため、実際には、一部のapt-getインストールでは、既存のファイルと並行してソフトウェアが大幅に追加されるため、OTAの影響をあまり受けません。ただし、1つのファイルセットが確実に影響を受けます。apt自身のレコード保持(OTAはroファイルシステムの構築に使用されるレコードを提供します)。したがって、システムはそこにあるものとないものの知識を失います。

これは、apt-getアップグレードの主要な危険です。それは常にデバイス上にあるものの誤ったデータベースで実行されるため、成功することを保証することはできません。追加がより複雑になり、基になるシステムが主要な移行を行うと(電話がUtopicからVividに移動したときなど)、手で実行するapt-getは間違った動作をします。

その後、ワイプと再インストールを実行するまで、すべてのOTAはギャンブルになります。

  1. システムはゆっくりと壊れます-上記を参照してください。

10

ubuntu-touchで「apt-get」を使用できるようにするには、安全のために「読み取り/書き込みモードの有効化/無効化」機能を使用することをお勧めします。

「読み取り/書き込みモード」を有効にすると、Ubuntuシステムのアップグレードが無効になります。

ただし、「読み書きモード」を無効にすることで、無線による自動更新を復元できます。

「デフォルトではシステムは読み取り専用です。読み取り/書き込みモードに切り替えることができますが、これはUbuntuシステムのアップグレードを無効にします。これの主な目的はUbuntuシステムを直接開発することです。これはアプリの開発やシステムの通常の使用には必要ありません読み取り/書き込みモードからの回復は可能ですが、システムを最初から再インストールする必要があります警告:デバイスを読み取り/書き込みモードに切り替える(および/または回復する)は高度な機能であり、完全なデータ損失につながる可能性があります。読み取り/書き込みモードのデバイスは、無線による自動デルタ更新を無効にします。デバイスを書き込み可能にした後、無線による完全な更新を受け入れると、行った変更が取り消される場合があります。

まず、Ubuntuデバイスで開発者モードを有効にします。これを行うには、[設定]→[このデバイスについて]→[開発者モード]に移動します。(代替手段として「セキュリティのロック」を適用する必要があります:「4桁のパスコード」または「パスフレーズ」。そうでない場合、「スワイプ」機能では「開発者モード」を有効にできません)

デバイスをPCに接続します(Ubuntuプラットフォーム環境であると仮定します)。

接続を確認するには、adbを使用して現在接続されているデバイスを表示します。

$ adbデバイス

接続されたデバイスのリスト

025d138e2f521413デバイス

  1. phablet-toolsパッケージをインストールする

ユニバースアーカイブが有効になっいることを確認してから:

$ sudo apt-get install phablet-tools

  1. 読み書きモードを有効にする:

$ phablet-config writable-image

システムは読み取り/書き込みモードで再起動します。

  1. 読み取り/書き込みモードの無効化:読み取り/書き込みを無効にし、自動無線更新を復元できます。

$ 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/#install-options

アドバイス:今まで、彼ら(Mr.Popey)が言ったように、「apt-get」を使用するのは良い考えではありません。

「電話でapt-getインストールシナリオをテストしません。apt-getアップグレードを使用する場合、イメージベースの更新の一部としてまだ完全にテストされていないパッケージをインストールできます。」

ソース:Ubuntu-Touchに.debファイルをインストールする方法


3
これは、rwモードを有効にする方法に関する非常に完全な回答です。しかし、それでも私の質問には答えられません、私は恐れています。
スタント

@evergreen sudo apt-get install phablet-tools携帯電話でaptが無効になっている場合(読み取り専用画像のため)、最初に実行するにはどうすればよいですか?
ルシッドアラム

@KhurshidAlamこのコマンドは、「デバイスをPCに接続する(Ubuntuプラットフォーム環境であると想定)」で説明されているように、別のマシンで入力することになっています。この環境に必要なツールがすべて揃っていることを確認するだけです。
スタント

PCにUbuntuがインストールされていない場合、ソースからphablet-toolsをビルドできます: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-toolsます:4.インストールします: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

セッションのためだけにr / wに変更します

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.