Of course you can use virtualization, the issue is distraction.
We need to avoid tendency to focus on GUI tools.
At the same time, limiting the scope to CLI tools.
Most of the time, CLI tools is considered lower level than the GUI one.
Getting Started With Docker
As usual, first, we do attach docker process.
Package Management
Before Arch, there was Crux.
Arch was intended as additional Crux package manager,
but then was recreated from scratch.
While Arch Linux use .pkg.tar.xz extension for package,
Crus use .pkg.tar.gz extension for package.
If you are helpless, just add this help | less argument.
Or if you have man-db installed.
I mean after, source downloaded, compiled, built, and finally installed,
yes you can do below command.
Updating System
First Thing First
First thing to do is updating my system as usual.
Ports Update
You can use ports -u command.
That remind me of emerge -u command.
System Upgrade
Now is time to use prt-get,
an advanced package management tool for CRUX.
Consider system update using prt-get sysup.
As you can see above, openssl has been failed to compile.
Which we will solve later.
Package IRSIF
Install, Remove, Search, Info, File
Read the fine manual.
Package Install
You can use prt-get install
to install new package,
or prt-get update
to upgrade package currently installed package.
Package Removal
Removing package would not not package that depend on it.
Package would be removed without prior warning.
Therefore be careful while remove.
Package Query Search
Package Show Info
List Files
Listing files in particular package.
Or
There is this file owner command.
System Wide
System wide information.
Installed Packages
Equal to:
Dependency
There are two main topics in dependency,
dependency itself, and reverse dependency.
Beside these two, there are other topic as well,
such as managing conflict that we do not cover here.
Help
Ports has a very nice help that show all dependency related options.
Dependency
Package that required by: such as man-db need libpipeline and other.
This dependency information can be achieved by
depends or deptree command.
This will show required parts of the package.
Most people love tree
Reverse Dependency
Package that require: such as libpipeline needed by man-db or other.
This reverse dependency require dependent command.
Test
Removing libpipeline would not remove man-db.
libpipeline would be removed without prior warning.
Therefore be careful while remove.
Ports Difference
You check the ports difference.
Group
I cannot find any reference about group in Crux’s Ports.
I guess there is no group concept.
The Log File
This is most the forgotten part of package management,
although it is not uncommon to notice messages.
For that reason, I put the recorded event here,
before discussing about any further feature.
Log options in Crux is disabled as default.
You have to enable it manually by editing prt-get.conf
This is the nano log after nano installation.
Most likely you want the tail, latest transaction,
at the bottom of the recorded event.
Time after time, your cache size may growing bigger and bigger.
Package Cache
/usr/ports/core/ * / * .pkg.tar.gz
Unfortunately, I haven’t find any reference,
on how to clean up this port directory.
Hold Package
Hold in prt-get is pretty straightforward.
Ports can hold package using lock mechanism.
This is just a terminology.
Consider a system upgrade,
we choose to hold openssl as our guinea pig example.
We can see that sysup will have different result.
Issues with Unmaintained Docker Container
pkgadd
Sometimes prt-get does not work, as you can see below.
We have to face openssl install issue.
I was lucky, the package is there in openssl directory.
Therefore I can install using lower level pkg command directly.
Dependency Build
It turned out that glibc version is
2.19, which is less than 2.26.
Unfortunately, update command, not uprading the glibc version.
Distribution Upgrade
Distribution upgrade from 3.1 to 3.2
can be done using live DVD.
But cannot be done directly due to ncurse break.
Distribution upgrade from 3.2 to 3.3
also can be done using live DVD.
Since we are using Docker, it can’t be done with external boot.