Zip compression on desktop Linux in 2018

After many years of futile though persistent attempts to use Linux Mint Cinnamon as a main OS I gave up and decided to give a try to Kubuntu 18.04.
After I finally could settle down and ignore the fact that Dolphin does not have any tools to mount remote file systems, which I use alot, I admitted that modern KDE is a quite convenient DE. At least it has become much better since I tried it last time and it had grayed-out to the limit of utter illegibility font on minimized windows.
Plasma still has a few annoyances for me but I can put up with them more easily than with stumbling mouse pointer or always-working lock screen on Linux Mint.

Anyway. My previous system was Windows 10 Pro, which has been killed by me for it had been talking too much and always tying to find new friends for itself on outside networks…
It’s dead uncompressed body, preserved by dd, has a weight about 128GB.
And once, time has come to compress it and save on an external HDD for a rainy day.

As I run a Linux server I sometimes need to use command-line compression utilities. Such occasions are rare and I’m always forgetting the proper syntax and keys.
I have written down my typical command-line operations with file-compression utilities into separate file, but now I have this shining, semi-transparent, blurry modern OS…
I should have an easy tool to create a zip archive, shouldn’t I?
Zip compression has been used intentionally because it is widely supported and it is unknown in which circumstances I will use this compressed file.

Ark is installed on KDE by default. It is good. It could be invoked right from Dolphin file manager to compress my 128GB system’s image.
After beginning of this task I’ve made two disappointing observations:
– There is no progress indication of the operation let alone estimated time or estimated compression ratio.
Simple tool is not a problem when you trying to compress a couple of megabytes. You can use any kind of shi… I mean… software for this purpose, but I have a large file and I would like to know, at least approximately, how long will it take to compress it.
– Default settings for zip compression in Ark use only one core of CPU. It’s bad, because I got four physical and eight logical cores.

Being disappointed by Ark I checked the second well-known file-compressing tool: file-roller.
I found it very similar to Ark. It uses one CPU core, no progress-bar or something like that.
Funny enough, I was forced to read documentation for file-roller because my intuition was not enough to use it’s GUI to compress a single file (Ark has similar GUI).

I tried to find other archive managers for linux but failed. The only promising thing I found was PeaZip.
I was unable to install it’s Qt version because of dependency hell and GTK version had rather bad look in kubuntu 18.04 – some interface elements were indistinguishable.
As far as I can tell from articles on the interned, PeaZip has some kind of progress indication (notoriously inaccurate) and some old bugtracker records let me hope that it supports multi-threading.
But it is packaged badly… apparently so badly that creators offer to run it as a windows application in Wine

My last hope to comfortably compress a large file on Linux was WinRAR in Wine.
And you know what? It works fine. Despite the fact that Wine software has mmmmm not excellent integration with KDE – there is no “windows program loader” in file manager’s context menu and wine-launcher can’t be placed on taskbar – WinRAR looks and works very well. During creation of a zip archive it uses all 4 cores of my CPU.
I did a partial test between compression speed of Arc and WinRAR.
WinRAR compressed my system image from 128GB to 19GB for about 40 minutes using 4 threads.
Ark, after an hour of one-threaded work, created just a 6GB file. After that I interrupted process because, as I understand, the whole task will take at least 3 hours.

Later I tried different compression methods for zip archive in Ark and some of them use all 4 cores on my CPU. Moreover, some of them use all 8 logical cores on 100% load, though I can’t tell is the product of such usage better than WinRAR offers or not. Anyway, default compression method “deflate” on Linux uses just one core.

The interesting thing is about progress-bar. I’ve heard that all these archive managers actually have a progress indication. I thought that I do something wrong, because I see something like progress-bar too but it doesn’t show progress, but just run from left to the right and back.
Then I accidentally came across this 4-years old bug (or feature) of clone of the file-roller archive manager.

It seems that archive managers on Linux (at least their GUI) is able to show progress only as a count of files to be compressed, but not the size of those files.

I was really surprised that there is no progress indication in GUI tools for archiving on Linux.
It seems that nobody really uses archive managers on Linux or compressing only small files so they don’t care about progress indication and the only way to archive large files on linux is to use WinRAR or 7Zip through Wine.

Leave a Reply

Your email address will not be published. Required fields are marked *