在ubuntu touch中使用apt-get的后果


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错误。我了解(使用apt-get的Ubuntu Touch)这是由于将“ /”分区挂载为ro,而apt-get需要它rw才能正常工作。

此处(使用sudo app-get install安装不起作用,“对只读文件/ var / lib / dpkg / lock不使用锁定”)是使用以下命令来解决该问题的方法sudo mount -o remount,rw /。<---可能不是一个好主意。有关启用rw模式的更完整和安全的方法,请参见Evergreen的答案。

我想知道的是将“ /”安装为的后果是什么rw。我已经读过,对于初学者来说,它将停止OTA更新,只要可以使用apt-get使系统保持最新,我完全可以使用该更新。但是,我也阅读(/ubuntu//a/583439/264601)其他类型的恐怖故事。

所以我的两个问题是:

  1. 我是否可以仅使用apt-get来使系统保持最新状态?
  2. 除了禁用OTA更新以外,我还期待什么其他后果?

非常感谢您的回答!

Answers:


4
  1. 否(但是一段时间后会感觉像是)

如果在/上启用rw并开始对其进行修改,则不会禁用OTA更新的传递。因此,当它们到达时,它们将像以前一样提供给您进行安装。

但是,OTA流程对文件系统做了一件非常简单的事情。它只是将大量文件解压缩到您拥有的文件系统之上。因为它知道(因为应该是ro)以前的文件系统,所以这只是一组已更改的文件。

所以你在赌博。发生这种情况时,所做的更改是否会引起副作用?一般来说,是的。通常,您将修改/文件系统中的某些文件,并添加依赖于此更改的软件。安装OTA后,该更改将被删除,并有可能被冲突的更改所取代。在这一点上,接下来发生的事情是未知的,并且肯定未经检验。

因此,实际上,一些apt-get安装会在很大程度上与现有文件并行添加软件,因此不会受到OTA的太大影响。但是,一个文件集肯定会受到影响-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软件包

确保已启用Universe归档,然后:

$ sudo apt-get install phablet-tools

  1. 启用读写模式:

$ phablet-config可写图像

系统以读写模式重启。

  1. 禁用读写模式:您可以禁用读写并恢复自动无线更新:

$ adb shell rm /userdata/.writable_image

要将正常的可读写保护系统区域恢复到原始状态,其中不包括通过安装Ubuntu系统在读写模式下所做的任何更改:

$ ubuntu-device-flash touch --channel =频道

资料来源:https : //developer.ubuntu.com/en/start/ubuntu-for-devices/installing-ubuntu-for-devices/#install-options

忠告:到目前为止,使用“ apt-get”不是一个好主意,因为他们(Popey先生)说:

“我们不会在电话上测试安装了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-tools4.安装它们:sudo python setup.py install 希望它对所有CentOS用户以及其他用户(基本OS,Linux Mint,Arch Linux,Tails,Debian, (openSUSE,Manjaro,Fedora,Zorin等)
Maxim Mazurok

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.