Linux User Group of Mauritius Promoting open source software in our beautiful island


How to reduce the amount of disk space used by the systemd journal

Posted by Avinash Meetoo

We, Linux people, generally use systemd now and one of its components is the journal controlled by the journalctl command line tool.

As explained on the Arch wiki,

systemd has its own logging system called the journal. The /var/log/journal/directory is a part of the systemd package and the journal will write to /var/log/journal/

The journal is always appended and therefore grows in size. On my laptop, the journal was taking 1.8Gb of space and was full of details which, I believe, I’ll never need. So I decided to clear all old contents (which the systemd people call a vacuum). I issued:

journalctl --disk-usage
journalctl --vacuum-size=64M
journalctl --disk-usage

And the journal immediately became smaller. I then issued a

journalctl --verify

which made ma realise that some of the remaining journal files were corrupted (for some reason). There is no journal repair tool in systemd so I simply removed the offending files (with rm).

Now, I can easily check my journal entries for today and I know everything will be all fine:

journalctl --since today


Ghost Desktop on Xubuntu 17.04 won’t start

Posted by Jochen Kirstaetter

Ghost Desktop on Xubuntu 17.04 won't start

Already before the migration from Joomla to Ghost last weekend I run the Ghost Desktop application on Windows. Now, after the successful completion it was about time to get going on my other machines. You know, the ones away from the main rig... Usually used during the evening hours, just for fun, or experimenting.

Tonight, I decided to give one of my Linux systems some attention, started to upgrade some packages, and installed new software. Among those also Ghost Desktop App for Linux. On the Ghost website you get version 1.3.0 (as of writing), and it's a Debian package.

Knowing that the desktop app is an Electron-based application, and I already packaged a few Electron apps myself, it would run on any Ubuntu-based system, too.
Note: This post was written in Ghost Desktop running on Xubuntu 17.04 64bit

Installation of Ghost Desktop

Either you double-click on the downloaded .deb package and your system will prompt you to open/install the application in Software, or you can run the following command in the Terminal:

$ sudo dpkg -i ~/Downloads/ghost-desktop-1.3.0-debian.deb 

Ghost Desktop can then be launched via the Application Menu/Launcher under ghost-desktop or if you prefer the terminal:

$ Ghost

The problem: Ghost Desktop won't start

If you try to launch the application via the menu or any other GUI launcher you won't get any response at all. The software just isn't executed, it seems.

Compared to running it in the Terminal. This might produce the following output:

$ Ghost
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Unable to find a valid app
    at Object.<anonymous> (/usr/lib/Ghost/resources/electron.asar/browser/init.js:121:9)
    at Object.<anonymous> (/usr/lib/Ghost/resources/electron.asar/browser/init.js:173:3)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:424:7)
    at startup (bootstrap_node.js:147:9)

The solution: Set permissions

Fortunately, this has been reported already on GitHub by user letsjustfixit. The issue is caused by a missing permission bit on the Electron app. A temporary workaround has been documented until the package is going to be fixed.

Run the following chmod to set read and execute bits on the Electron app and dependent components. Then launch Ghost Desktop again.

$ sudo chmod -R +rx /usr/lib/Ghost/resources/app
$ Ghost 

 ⚡️  Welcome to Ghost  👻

Happy blogging!

It's great to see that such issues are handled on GitHub, and the "fix" is easily done.

As maintainer of own Electron-based applications I'm interested in the root cause. So far, I didn't come across a similar problem (touching wood!). Thankfully, I'm going to add this to my notes on Electron.

If you're familiar with this kind of problem regarding Electron packaging on Linux, give it try to fix it. On my side, I already cloned the Ghost-Desktop repository. Let's see whether I'm able to create a pull request for the Ghost community.

Tagged as: No Comments

Stopping by the #RiSk[Solutions] hackathon

Posted by Ish Sookun

A few weeks ago, Ajay Ramjatan, the President of the Linux User Group of Mauritius sent the executive members an email about a hackathon. It's organized by the "Fonds francophone pour l’innovation numérique (FFIN)" with the collaboration of OTAM, MITIA and the Ministry of Technology, Communication & Innovation. It is the fifth edition and this time it's happening in Mauritius.

#RiSk[Solutions] hackathon - Xavier

The event spanned over four days starting on Thursday 13 April 2017. I followed one presentation on Thursday where a « security consultant » talked about state-sponsored hacking. Well, he did talk about a lot of other stuff such as Ransomware, Password Managers etc but those are mainstream subjects. I was interested in the subject of state-sponsored hacking. In the slide the presenter mentioned "cybercriminel" rather than "hacker".

Is a hacker a cybercriminal?

That's an interesting topic but it's not within the scope of this blog post.

I could not attend the second day of the event but Ajay attended the rest of the days. In fact, both Ajay and Pritvi, an executive member of the Linux User Group, stayed for longer hours on Saturday while mentoring the participants. Pritvi stayed the whole night as the hackthon lasted 24-hours. On Saturday night I stopped by for a few minutes and met them.

On Sunday I arrived at the CyberTower 1 shortly after 10h00. The participants looked tired, due to lack of sleep most probably, but the enthusiasm was still there. Ajay was helping some participants with a PHP module that was not well configured on their Kali Linux virtual machine. I greeted them and wished the participants luck.

At 15h00 the ceremony started.

The jury panel was divided in two parts. A technical panel where the jury had already given scores after looking at the work/code of the participants and another panel who would give scores based on the quality of the presentation.

#RiSk[Solutions] hackathon - Jury panel

Members of the jury panel wore red t-shirt, mentors wore green, those from the organizing committee wore yellow and participants were in blue.

The first team that presented encountered a technical issue, which is very common when using virtual machines. Since they changed network after moving to the presentation room the machine IP address changes and possibly if they're on bridged network the virtual machine's address changes too.

The teams that did their presentations are in the following order:

  • Team X
  • Cybercure
  • Intruso
  • Team 42
  • Invictus

S. Moonesamy (SM) live streamed the presentations and jury questions on Periscope. They are available at:

After the presentations the jury members moved to a different room to discuss and tally the scores while the participants and attendees received a musical show by Indian artists. SM, Yash and I went downstairs in search of food but unfortunately on a Sunday none of the cafe or shop is opened in Cybertower 1. We came back upstairs and had a chat with Ajay. A few minutes later the musical/dance show was over and the jury panel was ready to announce the winner.

Zakiya called Pritvi on stage among others to offer the second prize. As she did that she reminded it's unique about Pritvi to be helping through several user groups in Mauritius and not just the Linux User Group.

Cybercure won the first prize!

Two special prizes were also given to Intruso and Team X.


openSUSE Goodies Pack

Posted by Ish Sookun

As the Developers Conference 2017 was approaching Shelly asked me what am I doing with the openSUSE stickers and DVDs. I replied that I would distribute them to visitors when they'd come to the Installfest of the Linux User Group. That's when Shelly came up with the idea of having an openSUSE Goodies Pack. To keep it short it's a package containing various stickers, a bookmark, an openSUSE 42.2 64-bit DVD, and a laptop camera cover.

openSUSE Goodies Pack

In total Shelly made five such goodies packs. However, I couldn't make it to the Installfest as my presentation was on the same day. Bad timing.

I therefore decided to give away the goodies packs as prizes to questions that I would ask during my presentation. My talk was on Microservices and I explained the same using NGINX that ran on openSUSE 42.2. That was perfect to shoot some questions about openSUSE and yes, the attendees correctly answered that packages could be installed on openSUSE using RPM, Zypper and YaST. I had a question that asked which part of the home page of is a microservice. One fellow answered « the notifications » and that's correct.

The openSUSE Goodies Pack garnered some attention on Twitter and MSP fellow Arwin Baichoo replied with a tweet showing the content of the goodies pack.

The rest of the stickers and openSUSE DVDs were distributed to attendees. Humeira gladly helped me with that.


How to administer Slackware 14.2?

Posted by Ish Sookun

The last presentation of Day 1 at the Developers Conference that I attended was that of Slackware 14.2 by Pritvi Jheengut.

Pritvi is a member of the Linux User Group of Mauritius and a usual suspect at such tech events. He is perhaps the most popular Slackware user on the island. He made a fierce reputation for that. Some know him for his weird methods of doing things but he remains just a geek with passion for a couple of things that he adores; Slackware being one of them.

Developers Conference 2017 - Slackware 14.2

I missed the beginning of his presentation. In fact, when I entered the room he was in the middle of some important explanation about installing packages using the installpkg command. The screen was black and the text green. Pritvi had worn a Darth Vader t-shirt and I heard rumours that he even started the presentation with the Darth Vader theme. That would be totally legit.

Pritvi made us visit the Slackware internals, a lot about the arrangement of system files and the way packages are kept simple.

The earlier thing that I missed was actually a question about Slackware packages which Pritvi asked the attendees; whether they found it weird to install something that's no more than just a tarball. It generated a discussion about package management, software repositories, the how and why of Slackware and above all its simplicity of software packaging vis-à-vis other Linux distributions.

I craved for some Linux fun which was missing on Day 1 but Pritvi's presentation fulfilled that. It was a cool and interactive session with questions that popped up like mushrooms.

I'm not sure I'll ever ditch openSUSE for Slackware but maybe I have a more decent opinion on Slackware administration now.


Developers Conference 2017 – Linuxfest

Posted by Ish Sookun

Hey folks! We're back. It's time to meet up and have geek fun at the Developers Conference 2017. At its third edition, I am sure that, this great event of the Mauritius Software Craftsmanship Community will not disappoint you. Of course, there must be something in menu that will suit your appetite.

Shelly and I have planned our DevCon weekend carefully. We'll be there all three days.

I have a session on NGINX Microservices scheduled at 10h30 on Saturday at the Educator 2. The rest of the time that day you would find me hopping between Voilà Hotel and Flying Dodo helping folks from the Linux User Group of Mauritius with the full-day activities.

LUGM - Developers Conference 2017

Members of the Linux User Group will run a Linuxfest and help keen enthusiasts with Linux installs & troubleshoots in the conference room of Flying Dodo. You're all invited to come share your knowledge. We will be running demos on a projector and if you have some cool stuff about Linux which you'd like to share then get in touch, it'll be great to have more fellows around advocating Free Software/Open Source. Ping LUGM members Nirvan, Nadim on Twitter or get in touch with Ajay or Ronny on Facebook.

Care to tweet? Use the hashtag #DevConMru.


Open and not extract .docx, .xlsx and .pptx files in the latest Gnome 3

Posted by Avinash Meetoo

In the latest version of Gnome 3, a subtle change was brought to Nautilus, the file manager, to automatically extract the content of a ZIP file in a new folder when it is double-clicked on instead of open an application to do so. The problem is that Microsoft Office files (.docx, .xlsx, .pptx, etc.) are ZIP files. This means that double-clicking on a .pptx file extracts its content instead of opening the file in, say, LibreOffice Impress!

This makes life miserable for all those who need to open Microsoft Office files on a regular basis and, of course, this is a bug (as acknowledged by the Gnome people  and the Red Hat / Fedora people).

Fortunately, it is quite easy to make Nautilus become sane again. Open Preferences and in the Behavior tab, unselect “Extract the files on open” in the Compressed Files section.



Automatically raise windows in Gnome

Posted by Avinash Meetoo


I love Gnome 3… except when I am using a terminal, decide to launch Chrome by clicking on its icon in the Dash and not realising that the terminal still have focus despite Chrome being shown on screen. Consequently, typing, say, and pressing enter only sends these keystrokes to the terminal (despite Chrome being shown) with potentially serious consequences.

But lo and behold, I have just found a solution. Just launch the Gnome Tweak Tool as shown above and put “Automatically Raise Windows” to ON.

I have regained my sanity!


Vagrant box export and import

Posted by Ish

I’ve been a VirtualBox user for a few years but I started working with Vagrant only recently. Vagrant provides an easy-to-use portable environment on top of virtual machine providers like VirtualBox, VMware, AWS etc; at least that is what is written everywhere.

While the internet abounds with articles and «expert» answers about how to work with Vagrant, I stumble upon a lot of blurry advice in needy times. The last resort, though not very tempting, is the official documentation. I say not very tempting because of the amount of reading required for just one set of command options.

Vagrant box export and import

Hashicorp, the company that funds the full-time development of Vagrant, hosts a catalog of Vagrant boxes for the different virtual machine providers, which is called Atlas. Let’s look at the command that is used to add a box to Vagrant.

vagrant box add opensuse/openSUSE-42.1-x86_64

In the above command opensuse is a user of Atlas and openSUSE-42.1-x86_64 is the name of the box. You might need the --provider option if you’re not using VirtualBox. Once the box has been added, it can be initialized as follows:

vagrant init opensuse/opensuse-42.1-x86_64

The command creates a Vagrantfile in the current directory with a lot of commented lines which you can uncomment to specify needed options with your Vagrant box (e.g shared folders, set memory etc). The following line in the file tells vagrant which base to use when provisioning the virtual machine the first time: = "opensuse/opensuse-42.1-x86_64"

To start up the Vagrant box we’ll do vagrant up and a bunch of messages depending on the Vagrantfile parameters will show up (e.g SSH port forwarding). Next we do vagrant ssh to jump inside the Vagrant box. The first time the Vagrant box is started, a virtual machine is provisioned in VirtualBox (since that is what I am using as provider). At next boot the VM will jump to normal startup unless «provisioning» options are specified.

As Vagrant users enjoy easy portability of the boxes, the same can be exported following this quick procedure:

vagrant package --output

Say you have set up a development environment on the openSUSE box and you need to share the same with other developers. The above command packages the virtual machine in one file, in our case it’s called Next each developer needs to add the box as follows:

vagrant box add openSUSE-devel

I am naming the project openSUSE-devel for easy reference.

Sure, if not executed from the directory containing then the full path to the file should be used. It makes the box available to Vagrant and a machine can then be initialized.

vagrant init openSUSE-devel; vagrant up

This creates the Vagrantfile and fires up the box. When one needs to destroy the box, just execute vagrant destroy and the virtual machine will be gone.

The post Vagrant box export and import appeared first on HACKLOG.

Tagged as: No Comments

Developers Conference 2016, day 3 with openSUSE bug hunting

Posted by Ish

I had my «openSUSE bug hunting» presentation scheduled at 09h30 this morning. I’m usually very lazy on Sundays but the enthusiasm of the Developers Conference is just an amazing feeling. Though we live on a small island, we get to meet some people maybe just once a year during this fun event. I picked up Shelly on the way and we reached Voilà Hotel at 09h05. Right at the hotel entrance Yash was waiting, he might have seen us coming. We went upstairs chatting and met JoKi. My presentation was scheduled at the Accelerator and I thought I’d just go and test the gear. Aargh! The TV had only HDMI cable and my ThinkPad had VGA & a Mini DisplayPort. That said, I needed an adapter. Joffrey who came around greeting everyone had a HDMI to VGA cable, which he lent me. At that same time JoKi also came with a Mini DisplayPort to HDMI convertor. Great! Then I had an adapter plus a backup.

I mirrored my laptop display and checked if everything’s fine. All good and it was 09h30.

Developers Conference 2016, openSUSE bug hunting

Thank you for the photo, Shelly :)

However, folks were still coming, so we thought let’s just wait till 09h45 giving a chance for others to arrive. Indeed I started at 09h45 sharp with a 3/4 full room and just a few minutes later it was «house full». That was great and a true encouragement though a Sunday morning.

Thank you for the (re-)tweets folks. :D

I chose the title of my prez «openSUSE bug hunting» from a blog post I wrote in 2013 while running «release candidates» of openSUSE. Starting the presentation I spoke about how some folks might organize special events working to hunt and find bugs, while some bugs we just encounter when doing regular tasks. What do we do when we find one of those bugs? Do we just ignore and think, «it’s just an error, nothing more», and we continue work? Do we search on the internet whether others encountered similar errors and if there is a fix? Few people ever consider filing a bug report through the right channel, unless it’s just a «button» away like some applications (e.g web browsers) offer.

Bug reporting most of the time require some information gathering from the system; that is where I took the presentation. Before diving further into the system though, I opened a few bug reports from openSUSE Bugzilla to show as example. I also gave a quick overview of the openSUSE Build Service and openSUSE Connect. That helped show the audience how to find package maintainers and get information about official and non-official packages.

I did not have slides; but I rather fired-up an openSUSE Vagrant box inside which I had setup an environment for demos. The rest of the «talking» happened within the Vagrant box. We looked at how to obtain system information using command-line utilities and from the /proc fs. Next we looked at digging for application error info in log files. We played with systemctl and journalctl which gave us clear and concise information about application states. We then queried using rpm and its various options to get as much information about packages that we can use when filing the bug report. At that time an openSUSE user from the audience said we can also use zypper to search for installed packages on the system. Yes, indeed, but rpm -qa | grep php shows no clutter compared to zypper se php. I however grabbed the opportunity to tell the audience that folks having a «debian lifestyle» can still type aptitude equivalents to search and install packages from the command-line; thanks to the «zypper-aptitude» compatibility scripts written by Bernhard M. Wiedemann.

All while we continued digging for application errors and how to search and sort things from the logs; I did a quick demo using Nginx and PHP-FPM.

We talked about the need of default configuration files after installing PHP 7 and that such changes need to be addressed with the «openSUSE factory» guys.

It was near 10h30 and Jeshan signaled me that the next speaker had already come. I asked for a last 5 mins to show something quick using the «strace» tool. Actually a university student asked me a question before the event and I invited him to come to the prez and ask the question again so we could altogether see how tracing tools can help us find useful information for bug reports. That part of the prez might be good for a separate blog post. I sincerely have to apologize to the next speaker if he is reading this post; we started 15 mins late and that surely must have impacted other presentations.

Eddy and I talked about work stuffs after the presentation. Then some of us went to Bagatelle food-court for a mini-break. When we came back Sun was preparing his gear for the next presentation. He talked about grid systems, explained what are decks & cards and how it’s used on He showed some hidden features of, like what happens when you type «heart» or «superlsl» while you’re on the homepage and how the text is read if you type «kozer» while you’re on an article page.

Sun demoed the «live article» feature of and the work needed behind to keep it light, simple and fast. He talked about «facebook instant articles» and definitely we’re proud to be the first media group, not just in Mauritius, but in the African continent to deploy the same.

After Sun’s presentation I met my ex-colleagues and we went for a pizza & beer lunch at Flying Dodo.

The pizza being late and as the Developers Conference closing ceremony had started Shelly, Ubeid and I rushed back.

JoKi’s wife, Mary Jane, Vincent, Louis, Arnaud and a few others, we had figured how to hijack JoKi’s speech and bring on some more party time to celebrate JoKi’s birthday. Yeah, he’s getting old, now it’s confirmed as he turns 40. Ubeid quickly edited some slides and we told JoKi that as he finished his speech thanking everyone, we had a quick stuff to show; some sort of observation we’ve made. Ahaan! That’s when Arnaud, helped by Mary Jane’s cousin, they brought that big cake along with its table.

Everybody cheered! Everybody laughed. We all had fun, we had cake, we took crazy photos and celebrated the end of Developers Conference 2016.

Developers Conference 2016

Developers Conference 2016

Developers Conference 2016

The post Developers Conference 2016, day 3 with openSUSE bug hunting appeared first on HACKLOG.

Tagged as: No Comments