## Major Problem when Upgrading a UserLAnd Linux Guest System via ‘apt-get’.

A fact which I had blogged about before was, that I had installed a Debian 10 Linux Guest System on the Android, Google Pixel C Tablet, using the Android app ‘UserLAnd’. This Debian 10 version was compiled by the package maintainers to run on an ARM-64 CPU.

Well, along with major updates to Debian 9 / Stretch, the Debian maintainers have just issued an update to Debian 10 / Buster, from version 10.0 to version 10.1 . The problem? When trying to perform the upgrade via ‘sudo apt-get’, the process hangs over the attempt to update or install ‘systemd’, and then configure it. Apparently, doing this requires full root privileges, because ‘systemd’ would normally control how services run in the background with ‘root’, but UserLAnd does not allow any part of its Guest System to run as ‘root’.

This could become a stumbling-block, in any future updates.

The ‘solution’ which I attempted to apply was, to remove everything that depends on ‘systemd’, and to re-apply the upgrade in total. But the net effect of that is, to remove many more packages than I intended to remove, including all things related to ‘Gtk 3′, ‘LXTerminal’, as well as key components that allow ‘LXDE’, the Lightweight Desktop Manager, to function at all.

Caution: This would have been a completely unsafe thing to do on a real computer, and was only plausible because the setup in question was virtual in some way, and also expendable. This would normally brick the computer…

When the makers of UserLAnd provided easy screen-shortcuts to install Debian and LXDE, they knew how to modify the installation script, to ignore whatever problems result from installing LXDE and its dependencies in a ‘proot’ed environment. But I don’t know those tricks. (:1) So at one point I had a partially gutted system, without LXDE really installed.

But the (Android) devs behind UserLAnd also provided a quick workaround for that problem. The next time I exited the corrupted session, and re-launched LXDE from the UserLAnd menu, this Android app recognized that LXDE was no longer installed, and simply reinstalled it for me, after which I could access it again.

Once I had done this, my wallpaper was a black background, and quite a few of the installed applications were no longer installed. And so what I needed to do next was, to run the equivalent of the following command:


$sudo apt-get install gnome-backgrounds clipit evince wxmaxima gcl firefox-esr libpam-cracklib   After having done this, I was able to select a wallpaper again, from the file chooser, and to regain most of the abilities I already had before. I might still be missing some of the applications I once had. But what all this suggests is, that the Linux Guest System should only consist of a vest-pocket system, with a small number of applications, because in reality any and all Linux applications may simply need to be reinstalled at some point in time. But, there is a way in which users are not ‘hosed’ if this happens: Linux still segregates its data into a system directory, and a user home directory. Even though we have no form of access control within a ‘proot’ed system, even if certain applications are removed from the system directory, and then reinstalled there, our home directory will remember all our personal settings and data. So the solution can be as quick as the initial disaster was. My Linux Guest System is now down to taking up 4.86GB of Android application-data. (Updated 9/09/2019, 16h15 … ) (As of 9/07/2019, 20h00 : ) I think I’ve gotten closer to finding out, what went wrong… ## Problems Getting Synaptic To Work, On My Google Pixel C Tablet One of the facts which I’ve blogged about was, that I had used an Android app (that does not require root) in order to install a Linux Guest System, on my Google Pixel C Tablet. The version of Linux it’s subscribed to is Debian 10 / Buster. And, the CPU of that tablet is an ARM-64. One of the considerations which need to be made, when setting up this Guest System, is that both RAM and Storage are scarce, the latter because the entire Linux Guest System consists of Application Data, belonging to this one Android app. One idea which I was pursuing until last night was, to get the Synaptic GUI to work, where the ‘apt-get’ command-line does already work. Either would provide the main way to install software. But the GUI is much nicer, in allowing searches for packages to take place, instead of just package-names being burped on the command-line (blindly), and also, displaying lengthy descriptions of the packages first. The way I’d need to launch Synaptic is like so: $ xhost +
$sudo synaptic   The first bug which needs to be dealt with, is This Bug. But, even when that bug has been dealt with, there are more problems facing the use of Synaptic under Debian / Buster. And they all have to do with the fact that the new Synaptic can no longer be used effectively, to search for packages. First off, in order for the Search Field to display in the toolbar of Synaptic, one needs to install the following: $ sudo apt-get install apt-xapian-index
\$ sudo update-apt-xapian-index



This is a process that takes about an hour to complete, and when it has completed, its only result is that the Search Field displays in the Tool-Bar of Synaptic. By itself, this Search Field is useless because it only acts as a filter, on the actual search results, that we get when clicking on the Search Button. And, this process is not optimal in a ‘proot’ed environment, on an Android tablet, because the fully built database takes up more than 200MB.

The actual Search Button has been rendered useless. When told to search both the names and descriptions of packages, the resulting search takes about 20 minutes to complete, and does not become faster the second time, even when we have ‘apt-xapian-index’ installed and set up. The only other possibility is, only to search the names of packages, which defeats the entire purpose of using Synaptic.

I once had a (Debian 8 / Jessie) Linux Guest System installed the same way, on a Samsung Galaxy Tab S, first generation, and the searches within Synaptic were quick and painless.

(Updated 9/07/2019, 15h15 … )

## How to Add a Web-browser to GNURoot + XSDL.

In This earlier posting – out of several – I had explained, that I’ve installed the Android apps “GNURoot Debian” and “XSDL” to my old Samsung Galaxy Tab S (first generation). The purpose is, to install Linux software on that tablet, without requiring that I root it. This uses the Android variant of ‘chroot’, which is actually also called ‘proot’, and is quick and painless.

However, there are certain things which a ch-rooted Linux system cannot do. One of them is to start services to run in the background. Another is, to access hardware, as doing the latter would require access to the host’s ‘/dev’ folder, not the local, ch-root’s ‘/dev’ folder. Finally, because XSDL is acting as my X-server, when GNURoot’s guest-software tries to connect to one, there will be no hardware-acceleration, because this X-server is really just an Android app, and does not really correspond to a display device.

This last detail can be quite challenging, because in today’s world, even many Linux applications require, direct-rendering, and will not function properly, if left just to use X-server protocol, à la legacy-Unix. One such application is any serious Web-browser.

This does not result from any malfunction of either Android app, because it just follows from the logic, of what the apps are being asked to do.

But we’d like to have a Web-browser installed, and will find that “Firefox”, “Arora” etc., all fail over this issue. This initially leaves us in an untenable situation, because even if we were not to use our Linux guest-system for Web-browsing – because there is a ‘real’ Web-browser installed on the (Android) host-system – the happenstance can take place, by which a Web-document needs to be viewed anyway – let’s say, because we want to click on an HTML-file, that constitutes the online documentation for some Linux-application.

What can we do?