DistroWatch Weekly, Issue 717, 19 June 2017

Feature Story (by Jesse Smith)

Swimming with SharkLinux One project which caught my attention recently is SharkLinux, an Ubuntu-based distribution which claims to offer a number of interesting features. The distribution's website reports that SharkLinux is built on Ubuntu's 16.04 LTS release, but maintains a rolling release development cycle. SharkLinux ships with the MATE desktop and reportedly installs software updates automatically in the background. The project's website also mentions that users can perform administrator tasks using the sudo command with no password requirement and common package management commands have been aliased to easy to remember short-cuts.



This may seem like an unusual collection of features, or at least I thought so, but I believed I saw the potential in SharkLinux for a distribution I could give to less technical users. An operating system which automatically gets security updates, doesn't need to be re-installed and which does not prompt for a password when performing configuration tasks seemed like a good idea for less technical relatives.



I downloaded the 1.5GB ISO for SharkLinux and booted from it. The SharkLinux live disc brings up a MATE desktop with the application menu, task switcher and system tray placed at the bottom of the screen. The MATE wallpaper shows us a close up image of an open shark's mouth and the project's logo. An icon on the desktop can be used to launch the project's system installer. The default theme is mostly dark blue and grey, reminding me of the Windows desktop environments of the 1990s.





SharkLinux -- The Guake drop-down terminal

(full image size: 1.1MB, resolution: 1280x1024 pixels)



Installing



I decided to jump right in by launching the system installer. SharkLinux uses the Ubiquity system installer which it inherits from Ubuntu. The Ubiquity installer is pleasantly straight forward to use and quickly walks us through setting up the operating system with a minimal number of steps. The installer worked without any problems and, a few short minutes later, had finished setting up SharkLinux on my hard drive. The one odd thing I noticed during the installation was that when I had first launched the live desktop, I had an active network connection. I was able to get on-line and browse the web. However, when I launched the system installer, my network connection was dropped. As Ubiquity likes to have a network connection in order to download some packages, I re-enabled the network connection and things proceeded smoothly from there and my link to the Internet was not dropped again.



The second quirk of SharkLinux I ran into was, once the distribution had been installed, I could not find any button or launcher to reboot the computer. In the distribution's live environment (and in the installed copy of SharkLinux) there is no obvious way to logout, shut down or reboot the computer. I was able to open a virtual terminal and issue a reboot command to shut down the operating system, but this seems like a strange feature to place out of sight of the user.



First impressions



The first time I booted into SharkLinux I was presented with a graphical login screen. Signing into the account I had created during the installation process brought me back to the MATE desktop and its shark-themed wallpaper. Upon signing in a window appeared in the middle of my desktop and reported the system was being updated. The update window displays a progress bar, but no details of what is being upgraded. We can use the system while the upgrade is in progress and I was thankful for this as the initial upgrade took several minutes.



Once the package upgrades are finished, a welcome window appears. This window doesn't provide us with much information, but does display several icons that offer to set up or install new components. There are several launchers in the welcome window and I will not get into all of them, but I will touch on a handful. One launcher is present for upgrading the MATE desktop environment, another offers to set up the Dropbox client software, another will install software updates. Additional icons offer to open the SharkLinux website, install extra third-party software and configure e-mail. The e-mail icon simply launches the Thunderbird e-mail application. There is an icon called SharkExpansion which, when clicked, opens a window asking if we want to install "SharkExpansion". No details are given and I did not find any information on what SharkExpansion is on the project's website and so skipped this step.



The welcome window only appears the first time we sign into the distribution, but the individual launchers and configuration tools can be found in MATE's application menu later if we want to revisit the utilities.



I noticed, after using SharkLinux for a while, that the background would change regularly. This gives us a variety of wallpapers (most of them not shark-themed) to look at.



Applications



SharkLinux ships with a wide variety of desktop applications. Looking through the application menu we find the Firefox and Chrome web browsers, FileZilla for transferring files, the Thunderbird e-mail client and LibreOffice. The Transmission bittorrent software and the Webtorrent bittorrent application are included along with the uGet download manager and the MEGASync desktop client. The Atril document viewer and a dictionary are included. The VLC media player is included along with the GNU Image Manipulation Program and the Eye of MATE image viewer. The distribution ships with Wavebox, a multi-protocol desktop communications client, the Guake drop-down terminal and a system monitor. There are several virtual machine manager launchers and links to download additional items such as Cockpit, Fire Jail, LinuxBrew, LXD Sandbox, WINE, TeamViewer, a Google Drive client, Ubuntu Cloud and SharkCloud. There generally isn't any explanation for what these one-click installers will provide, apart from the software's name so those unfamiliar with the brands will need to look up their descriptions.





SharkLinux -- Running LMMS and Firefox

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



SharkLinux uses Network Manager to help us get on-line. Also in the background we find the GNU Compiler Collection, Java and the Deja Dups backups utility. I quite like Deja Dups for its simplicity in creating regular backups. The distribution runs the systemd init software and version 4.4 of the Linux kernel.



Software management



Apart from some one-click launchers which will perform a quick-install of third-party software, SharkLinux features two graphical software managers: Synaptic and App Grid. Synaptic is a well known, no-frills package manager which has a well earned reputation for speed and flexibility. Synaptic doesn't make managing software packages particularly pretty - it displays simple lists of packages in a given category, but it works well.





SharkLinux -- Quick-install launchers

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



App Grid takes a very different approach, displaying a large grid of applications with screen shots and brief descriptions. Looking at App Grid's graph paper style layout reminds me of looking at the application screen of a mobile device or the comics page of a newspaper. Clicking on one of the panels brings up a screen showing us details of a selected application, complete with a screen shot and user reviews. App Grid has few options, but one thing the software manager will do is let us filter the desktop applications it will display based on a program's category. Managing packages from within App Grid requires our user's sudo password. While it is working on installing new programs, App Grid does not appear to offer any progress information, downloading and installing packages happens quietly in the background. There is a page we can bring up showing items we have queued for installation, but otherwise App Grid is coy about what it is doing behind the scenes.





SharkLinux -- App Grid software manager

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



The SharkLinux website reports the distribution provides a rolling release model of software updates. This is a bit misleading. The SharkLinux installation media (the ISO file) is updated on a semi-regular basis and has no fixed version number. However, the software which ships with the distribution and is available in the default repositories does not get upgraded on a rolling release model. Most software is simply pulled in from Ubuntu's 16.04 LTS repositories. This means, even after updating all available software packages, my SharkLinux system was still running version 4.4 of the Linux kernel. My desktop was still MATE 1.16 even though MATE 1.18 had been available for months. Desktop applications, such as LibreOffice and the GNU Image Manipulation Program were likewise well behind their upstream versions.



In short, SharkLinux will automatically update itself with security updates, but not upgrade to new versions of most packages, with a few common exceptions such as the Firefox web browser which Ubuntu keeps up to date.



Hardware



I tried running SharkLinux in two test environments, in a VirtualBox virtual machine and on a desktop computer. When running on the desktop computer the distribution ran smoothly. All of my hardware was detected and worked well. Running SharkLinux inside VirtualBox provided a similarly good experience. At first the distribution was unable to use my host computer's full screen resolution, but I was able to install the VirtualBox guest modules from SharkLinux's repositories to remedy this. In both environments, the distribution tended to use just under 400MB of RAM when logged into the MATE desktop.





SharkLinux -- The MATE settings panel

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



Conclusions



One aspect of using Linux distributions (particularly younger distributions) I find fascinating is the glimpse into the priorities of the developers. Smaller projects especially can give us a look at what a given developer finds important and what software they do not consider significant enough to include. As an example, SharkLinux ships with many installers and applications for sharing files and synchronizing files to cloud storage, but no printer configuration software. In a similar vein, the distribution includes very few media players, but multiple web browsers. Of course, the big quirk of SharkLinux was the lack of obvious reboot/shut down/logout options, which suggests to me the developer rarely needs to power off their computer or share it with others.



When I first started using this distribution I thought it might appeal to my older relatives. The legacy Windows style of the desktop environment, the quick-install option for WINE, the ability to use sudo without a password and the promise of automatic upgrades all seemed geared toward less experienced, older computer users.



However, having run SharkLinux for a while, I increasingly got the impression the distribution would not suit less experienced Linux users. There are some rare sudo password prompts, the application menu is a bit cluttered with similar entries and there aren't clear descriptions or instructions for many of the Shark tools or extensions. Of course, teaching family members to use a drop-down virtual terminal to power off their computer is not likely to go smoothly either, in my opinion.



The overall impression I cam away with is SharkLinux is a reflection of what the project's developer wants and needs, but is eclectic enough that it's not likely to appeal to a wide audience. * * * * * 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 * * * * * Visitor supplied rating



SharkLinux has a visitor supplied average rating of: 9.4/10 from 37 review(s).

Have you used SharkLinux? You can leave your own review of the project on our ratings page.





Miscellaneous News (by Jesse Smith)

Solus founder decides to work on the project full time, Parrot Security considers switch to Devuan base, OpenBSD working on new kernel security feature, UBports releases first OTA update, a fix for Fedora update errors, Debian 9 editions released Solus is an independent Linux distribution which is perhaps best known for its user friendly approach and as the birthplace of the Budgie desktop environment. The project's popularity has not only attracted additional developers, such as Stefan Ric, but also resulted in project founder Ikey Doherty deciding to work on Solus full-time. " In four weeks from today I will be moving to Solus as a full time developer. Originally we planned to support 'a developer' once we hit the $2,500 goal. However, I personally feel that this is a move I can now make myself. In doing so this will allow me to commit full time to Solus and all of it's projects, bringing them up to the standards I want, with the features and experience that you deserve. Whilst we have achieved a great deal so far, this has been through spare time. With this move I'm now able to dedicate all of my work hours to Solus, which in itself will result in a massive explosion in growth and development cadence for our project. " More information on Ric and Doherty's work can be found in the project's blog post. * * * * * Parrot Security OS is a Debian-based, security-oriented distribution featuring a collection of utilities designed for penetration testing, computer forensics, reverse engineering, hacking, privacy, anonymity and cryptography. The distribution's developers are currently exploring the idea of whether Parrot should transition from Debian to using Devuan as its parent distribution. A decision has not been made yet, but the team has said they are testing how their software packages behave on a Devuan base. " Is Parrot switching to Devuan? Nope, not yet. We are just testing how our packages behave on top of Devuan instead of Debian, and what should be modified to have everything working without systemd (which seems to be hard-coded almost everywhere). We are also collecting feedback from our community, and this is why we posted a very short announcement on our social channels some days before writing this post, and in a very very short amount of time we were able to collect an exaggerated amount of positive messages. " Further (sometimes colourful) commentary on the subject of alternative init software and what the team would need to do to complete the transition can be found in the Parrot Security OS blog post. * * * * * Theo de Raadt has announced a new security feature is coming to the OpenBSD operating system which should make it more difficult to attack OpenBSD's kernel. The new feature, called kernel address randomized link, introduces small changes to the kernel each time the system boots. These changes in the internal layout of the kernel make it difficult for attackers to predict and exploit features in the kernel. " Previously, the kernel assembly language bootstrap/runtime locore.S was compiled and linked with all the other .c files of the kernel in a deterministic fashion. locore.o was always first, then the .c files order specified by our config utility and some helper files. In the new world order, locore is split into two files: One chunk is bootstrap, that is left at the beginning. The assembly language runtime and all other files are linked in random fashion. There are some other pieces to try to improve the randomness of the layout. As a result, every new kernel is unique. The relative offsets between functions and data are unique. " Additional details and a roadmap for improving the randomization feature can be found in de Raadt's mailing list post. * * * * * UBports is a community project which seeks to maintain and improve the mobile edition of the Ubuntu operating system. The UBports team has ported Ubuntu Touch to several new mobile devices and maintains legacy images for the devices originally supported by Canonical. The UBports team celebrated launching their first over the air (OTA) update this past week and reported positive collaboration with the Halium project in creating a base mobile Linux distributions can build upon. " Halium, as you may know, is a project aiming to standardize the Android hardware compatibility layer between many Linux distributions. This layer is required because Android drivers can't be used natively in a regular Linux distribution. This week the project had a lot to show off - it can boot both Ubuntu Touch and Plasma Mobile. As you can see in this tweet , Halium can boot both OS's on the Nexus 5. The third image, though, is the most interesting. It shows Plasma Mobile booting on the Fairphone 2, a phone that the OS hasn't been explicitly ported to. It's easy to see the opportunities that Halium opens up and we're proud to be a part of the project. blog post. At the time of writing, the UBports project appears to have over 3,000 users and is growing at a rate of approximately 100 users per day. * * * * * If you are running the Fedora distribution and have recently been running into errors when attempting to upgrade software, chances are you have been affected by a bug in the libdb package. The libdb software provides the database Fedora's package management utilities use to keep track of software packages. " There's a rather subtle and tricky bug in libdb (the database that RPM uses) which has been causing problems with upgrades from Fedora 24/25 to Fedora 26. The developers have made a few attempts to fix this, and testing this week had indicated that the most recent attempt - libdb-5.3.28-21 - was working well. We believed the fix needed to be applied both on the 'from' and the 'to' end of any affected transaction, so we went ahead and sent the -21 update out to Fedora 24, 25 and 26. Unfortunately it turns out that updating to -21 along with other packages can possibly result in a crash at the very end of the process, which in turn causes a (as it happens, minor and fully recoverable) problem in the RPM database. " A longer explanation and a fix for the issue were published on the Fedora Magazine website. * * * * * Over the weekend the Debian team released Debian 9 "Stretch". The new release was dedicated to project founder Ian Murdock who passed away in 2015. The new release sees the return of Mozilla Firefox and Thunderbird packages which replace the custom Debian packages of Iceweasel and Icedove. A long list of new features can be found in the project's release announcement. While Debian is most famous for its GNU/Linux distribution, the project creates other, special editions (called ports) of Debian. One of the more interesting Debian ports is Debian GNU/Hurd which runs on the GNU Hurd kernel rather than the Linux kernel. The Debian GNU/Hurd 2017 release is based on a snapshot of Debian's Unstable repository and was released at the same time as Debian GNU/Linux 9. The Hurd port's release announcement contains additional information on the new snapshot. * * * * * These and other news stories can be found on our Headlines page.





Tips and Tricks (by Jesse Smith)

Combining commands in the shell



One of the more common tasks I perform on the command line is combining or merging the results from multiple commands. The command line gives us a great deal of flexibility when it comes to stringing multiple commands together to effectively create new, more complex tools. This can be especially useful when we want to perform multiple, similar tasks and combine the output from multiple programs.



One question I regularly run into is people asking if they can string together multiple grep commands to find lines in a text file which contain either one word or another, verses one word and another. This can be useful when searching for people's names, variations on a phrase or errors in a log file. Let's look at a few examples.



For the sake of these examples, I will pretend I have a text file called animals and it contains these lines: cat 0 dog

cat 1 horse

horse 2 horse

horse 3 dog

dog 4 horse

dog 5 cat Given the above text file, it is fairly easy to use the grep command to find any line which contains both the word "cat" and the word "dog". Here is an example of how we can string two grep commands together using a pipe (|) to do this: grep cat animals | grep dog The above command looks through the animals file, finds all the lines which include the word "cat" and then passes those lines to a second grep command that filters out any lines which do not contain the word "dog". We end up with cat 0 dog

dog 5 cat Things get a little more tricky though if we want to combine commands to find any lines which contain either "cat" or "dog". This is where the ; symbol comes in handy as it allows us to string two commands together and show us the combined output of both: grep cat animals ; grep dog animals The above command shows us all lines containing either "cat" or "dog". The problem is, there are some duplicates with lines zero and five repeated. cat 0 dog

cat 1 horse

dog 5 cat

cat 0 dog

horse 3 dog

dog 4 horse

dog 5 cat

We can filter those duplicate lines out by sorting the lines and only printing unique instances of each line. This can be done using the sort and uniq commands. First we encase our grep commands in curly braces. This tells our shell to handle the grep commands together as a unit and then pass their output along to the next command in the line. { grep cat animals; grep dog animals; } | sort | uniq The lines we got before containing either "cat" or "dog" are sorted alphabetically and only the unique lines are kept, leaving us with the following output: cat 0 dog

cat 1 horse

dog 4 horse

dog 5 cat

horse 3 dog

There are other situations in which combining the two commands into one unit using the {} symbols can be effective. If you have ever run into a situation where you have two directories which have a lot of duplicate copies of the same files, there is one easy way to locate them all, assuming their names have not changed.



Let us assume we have two directories, Documents and Backup. A lot of the same files have been copied into both of these directories, but we want to know which files are duplicated. We can use the find command to list all the files in both directories, including their sub-directories. Then we can sort the results and only show duplicate entries. { find Documents ; find Backup; } | cut -f 2- -d '/' | sort | uniq -d In the above command we list all of the files and directories found in both Documents and Backup. Then we use the cut command to strip away the leading directory names ("Documents/" and "Backups/" in this case). We then sort the results and remove any files which are not duplicated using uniq. The result will be a list of files which exist in both directories.



Combining commands, using pipes and semi-colons, can be quite powerful. Grouping these commands together to form a unit using braces expands on this power, allowing us to merge the output of multiple commands into one group of data to be managed and filtered. * * * * * More tips can be found in our Tips and Tricks archive.





Released Last Week

Torrent Corner

Upcoming Releases and Announcements

Opinion Poll

Comfort with the command line



In this week's Tips and Tricks column we talked about combining the output from command line programs before passing their information to other programs. This is one of many flexible and powerful features of Linux command line shells.



In this week's poll we would like to find out how comfortable our readers are with the command line. Do you avoid it, use it just a little or are you an expert at writing your own automated scripts?



You can see the results of our previous poll on running distributions without kernel blobs in last week's edition. All previous poll results can be found in our poll archives.



Comfort with the command line



I do not use the command line: 74 (4%) I use the command line a little: 562 (28%) I use the command line frequently: 653 (33%) I use the command line/scripts daily: 714 (36%)

DistroWatch.com News