DistroWatch Weekly, Issue 696, 23 January 2017

Feature Story (by Jesse Smith)

GoboLinux 016



When I first started using Linux one of the characteristics of the operating system I had trouble adjusting to was the way directories were named. Names like usr, etc and opt are not particularly descriptive, for example. Further, it can take a while to get used to the organizational differences which separate /bin, /usr/bin and /usr/local/bin, not to mention the practical differences between /usr/share and /usr/lib. If you struggle, as I did, to get used to the way in which most Linux distributions organize their file systems, then you may be interested in GoboLinux. GoboLinux (or Gobo, as I will refer to the distribution) is described on the project's website as follows: GoboLinux is a Linux distribution that features a new file system organization, which departs from the traditional Unix heritage of Linux systems. Basically, this means that it is not based in directories such as /usr and /etc. The main idea of the alternative hierarchy is to store all files belonging to an application in its own separate sub-tree; therefore we have directories such as /Programs/FooPlayer/1.0/lib.



To allow the system to find these files, they are logically grouped in directories such as /System/Index/bin, which, you guessed it, indexes all executable files inside the Programs hierarchy.



To maintain backwards compatibility with traditional Unix/Linux apps, there are symbolic links that mimic the Unix tree, such as "/usr/bin -> /System/Index/bin", and "/sbin -> /System/Index/bin" (this example shows that arbitrary differentiations between files of the same category were also removed). While some people might find Gobo's longer and more descriptive directory names easy to understand, the distribution is not intended to be used by beginners. In fact, Gobo is developed for more experienced users who are comfortable using a command line and compiling their own software from source code. Gobo's alternative directory structure means each piece of software added to the system is contained in its own directory. This means when the administrator wants to remove an application they have installed, removing it is as easy as deleting its directory. Leaving the user to compile software from source code and deleting directories to remove software from the system means Gobo can largely do away with traditional package management.



GoboLinux is available for 64-bit x86 computers exclusively. The ISO I downloaded for GoboLinux 016 was 958MB in size. Booting from the installation media brings up a text-based menu system where we are asked to select our preferred language from a list of six European languages. We are then asked to select our keyboard's layout from another list. At this point, the system drops us to a command prompt where we are logged in as the root user. The default shell is zsh. A welcome message lets us know we can run the startx command to launch a desktop environment or run the Installer command to begin installing the distribution.





GoboLinux 016 -- The Awesome application menu

(full image size: 737kB, resolution: 1280x1024 pixels)



I found when running Gobo in a VirtualBox test environment, the startx command would fail with an error indicating no video screens could be found. When running the distribution on a physical desktop computer, Gobo successfully launched the graphical environment, presenting me with the Awesome desktop. The Awesome desktop uses a dark theme and most panels and window backgrounds are black. A panel runs across the top of the display and contains the application menu, task switcher and system tray. The environment is responsive and generally avoids distracting the user. I did run into two minor issues when exploring Awesome, both matters of personal preference rather than bugs. The first was I found the title bar area of windows was vaguely defined and it was not always clear where I needed to click to move windows or select them. I also found that with the default settings, Awesome would open new application windows at seemingly random points around the screen. There are ways to adjust how application windows are arranged, but the default setting left me chasing after windows and dragging them into positions better suited to my work flow.



Both times I went through Gobo's installation process I did so by running the Installer command from a terminal. The first time I ran the installer, a message appeared on my screen, letting me know no available partitions had been found and I was asked to run either the GParted or cfdisk partition managers to fix the problem. The installer then quits. I set up a new, blank partition for Gobo and re-launched the installer. This time I was shown a brief welcome message which explains how our disk should be partitioned before we try installing Gobo. Assuming our disk partitions look right to the installer, we can then proceed through a series of text menus. We can navigate these text screens using a combination of the Tab key, spacebar and Enter.



Gobo's installer shows us hundreds of packages in a list and asks which ones we would like to install. The default is to have all the available packages selected. We are then asked if we would like to install a boot loader and, if so, on what part of our disk. I noticed the installer gave me an incorrect option. I could choose between installing the boot loader on my disk's MBR or in my swap partition. I think the installer should have offered me a choice between the MBR and root partition, as is common practise. We are then asked to provide a hostname for our computer, select our keyboard's layout and select a boot theme. There is no way to preview the boot theme on the text menu, making the selection somewhat arbitrary. We then select our time zone from a list and create a password for the system's root account. The system installer gives us the option of creating additional user accounts and then copies its files to our hard drive. When the installer is finished, it drops us back to the command line (or virtual terminal).



Booting into the freshly installed copy of GoboLinux brings us to a text console where we can sign in as the root user or one of the accounts we created during the installation process. Gobo, with its default configuration, uses about 4.4GB of hard drive space and just 30MB of memory. I once again found that the distribution provided a different experience in VirtualBox compared to running on physical hardware. When running on my desktop computer, Gobo automatically set up a network connection and I could run startx to launch the Awesome desktop environment. When running in VirtualBox, Gobo failed to detect any network interface and the distribution could not launch a graphical environment.



The Distribution's documentation has a page dedicated to getting graphical interfaces running from within VirtualBox and includes two ways to get a desktop environment working. I tried both methods and neither of them worked for me, leaving me stuck with a text-only interface when testing the distribution in VirtualBox.



As it turned out, Gobo does not provide a lot of desktop software in the default installation anyway. We are given the Firefox web browser, the GNU Image Manipulation Program, a text editor and the Htop process monitor. Otherwise the Awesome application menu is pretty empty. Behind the scenes, we have access to the GNU command line tools, the OpenSSH secure shell software and manual pages. The GNU Compiler Collection (version 6.2) is installed for us along with the SysV init software. GoboLinux 016 runs on version 4.8.2 of the Linux kernel.





GoboLinux 016 -- Running the Firefox web browser

(full image size: 375kB, resolution: 1280x1024 pixels)



The primary focus of Gobo appears to be the way files and directories are organized, so let's look at those. The top level of the Gobo file system, rather than having directories such as etc, usr, opt and var, instead features directories called Data, Mount, Programs, System and Users. The documentation provides a fairly clear idea of what each directory is used for: Mount - Where removable devices are attached to the operating system

Programs - Directories containing programs, with each program contained in its own sub-directory.

System - Where the kernel, devices and links to executable programs are stored.

Users - Where we find user accounts, including root's home directory. The Data directory I was slightly unclear on. The documentation talks about two directories, Files and Depot, which did not exist on my system. The Files directory was reportedly used to store fonts, resources for compiling software and other non-executable resources. I think Files got renamed to Data. The Depot directory was said to be used as a shared space where users could store files outside of their home directories, but it appears to have been dropped in the latest release.



Something I find interesting about the way Gobo organizes files is the new file system layout does not get rid of directories called usr, etc, dev and bin. Instead, these directories are basically pushed down a level or two. For example, if before we had a program's executable saved as /usr/bin/nasm, now we have a directory called /Programs/Nasm/Current/bin/nasm. Instead of placing device names in /dev, we find Gobo uses /System/Kernel/Devices.



This might make it seem like a big part of the Gobo file system layout is making directory names more verbose and there is some truth to that. I think, in some ways, the more descriptive names make sense. When a newcomer installs Linux, it can be difficult to find things, as names like var, opt and /usr/local/bin are not intuitive. I think Gobo addresses this problem well by naming things more descriptively. The only drawback appears to be that it takes longer to type the Gobo versions of path names.





GoboLinux 016 -- Adjusting audio volume

(full image size: 709kB, resolution: 1280x1024 pixels)



The other thing the Gobo file system does for us is it places programs in their own, stand-alone directories. We can find and remove a program from the operating system by simply removing its entry from the /Programs directory. In a way, this side-steps the issue of a package manager dropping files all around the file system. New packages are bundled in one spot and easily removed. We don't necessarily need a package manager to keep track of where everything is, because each program is wrapped up in a directory bearing its name.



Which brings me to the subject of package management. The Gobo documentation discusses installing new software via the InstallPackage command. This seemed straight forward until I realized I did not know the names of any available packages. A few, like GIMP or Firefox, we might be able to guess through trial and error. I thought to look in the repositories directly to browse packages in my web browser, but the repository information was not where Gobo's wiki says it is. I eventually managed to track down the Gobo software repository and found only a few dozen packages were available. Any other software we want should be installed from its source code.





GoboLinux 016 -- Installing a package

(full image size: 615kB, resolution: 1280x1024 pixels)



Conclusions



When I first got into Linux, I was a bit thrown by the short, cryptic directory names. Over time I grew to appreciate the short, non-descriptive directory names as they cut down on the amount of typing I had to do, but I can understand why people would want longer, clearer names. On the other hand, I think Gobo's insistence on reworking the way programs are organized, really only makes sense for operating systems that do not have any form of package (or ports) management. In my opinion, the user should not need to worry about where their software is stored or how it is organized because the package manager will handle installation and clean-up for them. Gobo appears to be taking the view that new software will likely be installed from source code with (possibly) customized build settings and no form of ports management (as Gentoo and the BSDs use) or package management (as most other Linux distributions use) will be available.



What I'm coming around to is that Gobo appears to be addressing two separate problems: non-descriptive directory names and package organization. The descriptive directory names probably only make sense for Linux newcomers who are having trouble finding their way around while the approach to organizing program files will probably only appeal to users with enough experience to want to perform custom builds of their software rather than using a ports/package manager. I suspect that the intersection of these two groups is probably small.



It probably seems like I'm putting down GoboLinux for its unusual approach. And, admittedly, I do think not many people will benefit from the distribution's design. But, at the same time, I am impressed with how the Gobo team has implemented their unusual design choices. The system really ventures outside of the norm with respect to file system layouts and package organization and the new design works. The developers have managed to adjust the way an entire operating system is organized and do it transparently. From a technical side of things, I find the implementation of GoboLinux impressive. Its design may not appeal to me, but the way the design was put into practise is, in my opinion, cool to see first hand.



From a practical point of view, Gobo's sparse and out of data documentation, relatively few pre-installed packages and unusual approach will probably turn away most potential users. But I do applaud the developers' efforts in making something unusual and interesting. As a proof-of-concept, Gobo is fun to look at and it gives the user a new perspective on the classic Linux file system layout. * * * * * Hardware used in this review



My physical test equipment for this review was a desktop HP Pavilon p6 Series with the following specifications: Processor: Dual-core 2.8GHz AMD A4-3420 APU

Storage: 500GB Hitachi hard drive

Memory: 6GB of RAM

Networking: Realtek RTL8111 wired network card

Display: AMD Radeon HD 6410D video card

Miscellaneous News (by Jesse Smith)

arkOS aims to attract new contributors, PCLinuxOS plans to drop legacy packages, Solus adopting Flatpak, DragonFly BSD supporting UEFI, KDE neon to use Calamares, Kali Linux certification, TrueOS tests OpenRC, HandyLinux shutting down



The arkOS distribution is a lightweight flavour of Arch Linux ARM that runs on embedded devices and servers. The arkOS project is going through a period of reorganization in an effort to streamline development and attract new contributors. The project is moving from GitLab to GitHub in an effort to make itself more accessible to a larger pool of developers and automated builds will be tested using the Jenkins build suite. The project is also considering becoming less dependent on Arch Linux for its base: " Up until now, it's been necessary to use just one Linux distribution with arkOS, and that is Arch Linux. Back when this project was founded, systemd was still a new thing and it wasn't entirely possible to create a cross-distro project with such deep roots into system management. Now that systemd is being extended to other platforms (notably Debian Jessie), it is possible to liberate arkOS from being an Arch-only project. " Additional details can be found in the arkOS blog post. * * * * * A post from the PCLinuxOS Twitter account suggests the project is going to be doing some cleaning of its software repositories this year. PCLinuxOS is a rolling release distribution, but tends to be conservative when it comes to swapping out packages and changing the user interface. The project's post reads, " Things going away in 2017: Legacy GRUB, Legacy GDM and KDE4. " At the time of writing, PCLinuxOS already has KDE's Plasma 5.8 desktop available as a session option and GRUB2 (the replacement for GRUB Legacy) has been available to PCLinuxOS users for over a year. * * * * * The Solus project is planning to use Flatpak to provide its users with quick access to third-party software and applications whose licenses prevent them from being included in the distribution's repositories. While both Snap and Flatpak were considered for the job, the Solus team chose the latter for several reasons: " ostree and Flatpak, barring some minor changes which we're already upstreaming. Firstly, and very importantly to us, the so-called 'Chrome distribution issue' has already been conquered by Endless OS , utilizing Flatpak. On the other hand, this is still (to the best of my knowledge) at the prototype stage with Snaps. OK, let's not get hung up completely on a single example. From the perspective of integration, Snap (snapd and snapcraft) represents the biggest integration challenge. To correctly and fully integrate it would require modification of the build system (which disables networking by default for security!) to provide a full set of builds for the packages and their dependencies. Additionally, AppArmor (not used by Solus) is also required. On the other hand, integrating Flatpak into Solus was as trivial as packagingand Flatpak, barring some minor changes which we're already upstreaming. blog post. * * * * * The DragonFly BSD project is improving the operating system's support for UEFI-enabled computers. In a brief post on DragonFly BSD Digest, Justin Sherrill reports: " The DragonFly installer now supports UEFI directly. There's a uefi(8) man page now, and there's even rconfig support, though not enough people realize how awesome rconfig(8) can be. " Details about DragonFly BSD's evolving UEFI support can be found in this mailing list post. * * * * * The KDE neon distribution is an Ubuntu-based project which features the latest software from the KDE project, particularly the KDE Plasma desktop environment. Jonathan Riddell has announced that KDE neon will transition from using Ubuntu's Unbiquity system installer to the distribution-neutral Calamares installer. " It's been a long standing wish of KDE neon to switch to the Calamares installer. Calamares is a distro independent installer used by various projects such as Netrunner and Tanglu. It's written in Qt and KDE Frameworks and has modules in C++ or Python. Today I've switched the Developer Unstable edition to Calamares and it looks to work pretty nicely. " Some of the changes the Calamares installer will bring with it are mentioned in Riddell's blog post. * * * * * Kali Linux is a popular distribution for performing penetration testing. The Kali Linux team has announced a new certification program which will teach people how to properly use the Kali Linux platform. " After almost two years in the making, it is with great pride that we announce today our new Kali Linux Professional certification - the first and only official certification program that validates one's proficiency with the Kali Linux distribution. If you're new to the information security field, or are looking to take your first steps towards a new career in InfoSec, the KLCP is a 'must have' foundational certification. Built on the philosophy that 'you've got to walk before you can run,' the KLCP will give you direct experience with your working environment and a solid foundation toward a future with any professional InfoSec work. As we continually see, those entering the Offensive Security PWK program with previous working experience with Kali, and a general familiarity with Linux, tend to do better in the real world OSCP exam. " Details on the certification program and a new book, "Kali Linux Revealed: Mastering the Penetration Testing Distribution", are available on the project's website. * * * * * TrueOS (formerly PC-BSD) is a rolling release operating system based on FreeBSD. The TrueOS team is currently testing the OpenRC init software as a potential replacement for FreeBSD's RC. OpenRC is already used by some Linux projects and is an init option for Gentoo users. A post on the TrueOS website covers some of the benefits of the change: " With OpenRC, TrueOS boot times have been reduced from generally over one minute to around ten seconds. The organization of service config files lends itself to simpler manipulation of individual services. OpenRC also provides more reliable service status by using the start-stop-daemon or the built-in supervisor. So, TrueOS now starts faster, is more/differently organized, and is more reliable. " Documentation for using OpenRC on TrueOS can be found in the project's Handbook. * * * * * The HandyLinux distribution is a beginner friendly project based on Debian. The distribution features a custom application menu which was designed to make using Linux easy for newcomers. HandyLinux is also, primarily, a French language distribution and a good platform for French speaking people. Sadly, the HandyLinux project is shutting down. In a farewell blog post the project explains that the distribution did not attract enough community support. An English translation of the post reads, in part: " Let us rejoice in the disappearance of this distribution which has shown that an additional distro is not the best idea because, apart from the dispersion of development resources, there is also (and above all) dispersion of support resources . It is this aspect that HandyLinux has lacked: not enough people to form a solid community and able to face the inevitable attacks as soon as one has a hair of success. * * * * * These and other news stories can be found on our Headlines page.





Questions and Answers (by Jesse Smith)

Remotely running desktop applications



Working-from-afar asks: Can I login to my Linux computer from another computer and run desktop apps so that they show up on my screen, even if someone else is using the computer?



DistroWatch answers: Yes, you can. In fact, the idea of multiple people working (locally or remotely) on the same computer is one of the key design features of Linux and other UNIX-like operating systems. There are a few different approaches we can take to achieve running desktop applications remotely, depending on our preferences.



Perhaps the most traditional method of logging into a Linux system remotely and running desktop applications, whether someone else is logged into the remote computer or not, is to use OpenSSH and a technique called X forwarding. This gives you a command line interface to the remote computer. Then, when you launch desktop applications from your command line, the remote computer runs the application and displays it on your local desktop.



The initial set up is fairly straight forward. The remote computer, the one that will be hosting your applications and files, needs to be running the OpenSSH server service. On most distributions this can be achieved by simply installing the openssh-server package. If you're running a firewall on this computer, make sure you leave the OpenSSH port (by default it is port 22) open.



The computer you will be sitting at needs to have the OpenSSH client software installed. Most Linux distributions include the OpenSSH client in the default installation. Then you can connect to the remote computer using the ssh command with the hostname or IP address of the remote computer. ssh -Y remote-host-ip The above command will open a command line on the remote computer. You can then run commands such as firefox, gedit or abiword in order to launch desktop applications. These programs run on the remote computer, but display their windows on your desktop.



Another approach is to use virtual network computing (VNC). The initial set up is fairly similar to the first approach. We need to install a VNC server on the remote computer and a VNC client on our local computer. There are several VNC programs from which to choose. Personally, I like running x11vnc as the service on the remote computer and xtightvncviewer as the client on my local machine. These two packages may not have many features, but they are extremely easy to use. Simply install the x11vnc package on the remote computer and run the x11vnc command. Then, on the local computer run: xtightvncviewer remote-host-ip:5900 In this case remote-host-ip is the IP address or hostname of the remote computer and 5900 is the default port number we are connecting to. The above command connects to the remote computer and displays whatever is on the screen at the time. You can then interact with the remote system as if you were there, though with a slight lag in desktop responsiveness.



By default, x11vnc does not require a password to connect to the server from a remote computer. It is a good idea to change this behaviour via one of x11vnc's authentication methods, such as the -usepw parameter. The x11vnc manual page provides a list of security options.



The only problem with x11vnc is that, by default, it shows us what is on the screen of the remote computer. Which is fine if no one else is using it, but if the remote computer is being used by someone else, then we probably want to have our own, private desktop session, and not interfere with what they are doing.



In situations where we want to start a fresh desktop session rather than connect to an existing graphical session, we can use Tight VNC Server. The Tight VNC Server package works a lot like x11vnc, but it creates a new desktop session we can connect to and use remotely. Once the tightvncserver package has been installed, it can be run with a simple command: tightvncserver The server will listen on a network port of 5900 or higher. The first session will usually be served on port 5901, the second on 5902 and so on. We can then connect to the remote computer using the xtightvncviewer application as shown above.



The Ubuntu community documentation has a page dedicated to the various ways to set up VNC connections and explores security options to protect the VNC server. * * * * * For more questions and answers, visit our Questions and Answers archive.





Released Last Week

antiX 16.1



A new version of antiX, a Debian-based distribution featuring a simple desktop built around several lightweight and rarely-used window managers, has been released: " antiX 16.1 'Berta Cáceres' released. Bug-fix version, including all updates from Debian 'Jessie' and security-patched kernels. Existing users of antiX 16 do not need to download and install; simply update via the repositories. So what is new? Not a lot, but we have included two excellent new applications - live-kernel-updater and live-usb-maker. Debian 8.7, but free of systemd. And it fits on a CD. Great live USB features. As usual, antiX comes in 3 flavours for both 32-bit and 64-bit processors: Full - 4 windows managers (IceWM, Fluxbox, JWM, herbstluftwm); Base - 3 windows managers (Fluxbox, JWM, herbstluftwm); Core-Libre - no X window, just enough to get you connected and ready to build. Uses a 'libre' kernel. Customised 4.4.10 LTS kernel with fbcondecor splash. " Visit the project's home page to read the brief release announcement.



Vinux 5.1



The Vinux distribution is an Ubuntu-based project developed for blind and partially sighted people. Vinux provides screen readers, Braille support and high contrast icons. The latest release from the project, Vinux 5.1, is based on Ubuntu 14.04.5 LTS and offers three desktop environments: Unity 7.2.4, GNOME 3.10.4 and MATE 1.8. " This release features not just the Unity Desktop, but GNOME Shell and the ever popular GNOME 2 fork called MATE, though we primarily will support Unity only. Remember we recommend that when possible users perform updates on a regular basis. This will enable the Vinux team to update packages, and introduce new features. Vinux 5.1 is based upon Ubuntu 'Trusty Tahr' 14.0.4.5 LTS. " The release notes mention a regression in console speech changes: " sudo speechd-up from a GNOME terminal or add a start-up item to do it automatically upon login. We are unable to include the Vinux 4.0 console speech changes due to Vinux 5.1 not using ConsoleKit any longer, please see the wiki for more information. To use speechd-up log in to your desktop session and runfrom a GNOME terminal or add a start-up item to do it automatically upon login. release announcement has further details.





Vinux 5.1 -- Running the Unity desktop

(full image size: 989kB, resolution: 1280x1024 pixels)



BitKey 14.1.0



BitKey is a specialist, Debian-based distribution designed for Bitcoin users - it provides useful utilities to perform highly secure air-gapped Bitcoin transactions as well as tools for most paranoid Bitcoin users, such as Warpwallet for generating a "brainwallet". It is developed by the TurnKey Linux project. The distribution's first release, version 14.1.0, was announced yesterday on its GitHub page: " BitKey 14.1.0. Changes: refreshed component versions and base operating system to Debian 'Jessie'; manually verified and signed integrity of upstream components; new Bitcoin apps - warpwallet, coinbin and libbitcoin-explorer (bx); new packages - secure-delete, dosfstools (mkfs.vfat); added background color labels to boot modes; desktop UX - cut and paste, improved keybindings. " See also BitKey's website to learn about the product's features and to read about its security modes. * * * * * Development, unannounced and minor bug-fix releases

Debian 8.7.1

NAS4Free 11.0.0.4.3460

Linux Mint LMDE-2-201701-beta

Robolinux 8.7.1

ArchBang 0117-beta

NethServer 7.3-rc4

Scientific Linux 7.3-rc2

RancherOS 0.8.0-rc4

Vinux 4.1

OPNsense 17.1-rc1

Netrunner 17.01.2

APODIO 11-beta

Torrent Corner

Weekly Torrents



The table below provides a list of torrents DistroWatch is currently seeding. If you do not have a bittorrent client capable of handling the linked files, we suggest installing either the Transmission or KTorrent bittorrent clients.



Operating System Torrent MD5 checksum antiX 16.1 antiX-16.1_x64-full.iso f4fed27008d7ff792650d7a201e8ac6b Robolinux 8.7.1 "MATE" robolinux64-mate-v8.7.1.iso fd86b43e3cb9aad71f270e8c97c0c601 Vinux 5.1 vinux-5.1-amd64.iso f29d5ae0f5e7371b297efd5bef9eecd4 Quirky 8.1.6 xerus-8.1.6-amd64.iso 9dbe5f59d3bc79d106770e42dda53abf



Archives of our previously seeded torrents may be found here. All torrents we make available here are also listed on the very useful Linux Tracker website. Thanks to Linux Tracker we are able to share the following torrent statistics.



Torrent Corner statistics:

Total torrents seeded: 280

Total data uploaded: 53.7TB

Upcoming Releases and Announcements

Opinion Poll

Running desktop applications remotely



In our Questions and Answers column this week we talked about running desktop applications remotely. We would like to get an idea of what approach our readers prefer to use to access their desktops from a distance. Do you use X11 forwarding, VNC or some other method? Leave us a comment with your tips for accessing a desktop remotely.



You can see the results of our previous poll on bittorrent clients here. All previous poll results can be found in our poll archives.



Running desktop applications remotely



I use X11 forwarding: 240 (17%) I use a shared VNC connection: 41 (3%) I use a private VNC connection: 130 (9%) I use another method: 146 (10%) I do not run desktop applications remotely: 869 (61%)

DistroWatch.com News