Table of Content
This is a four-parts article. There are few sections here.Part One
- Preface: Test Bed, Must Read
- Getting Started With Docker
- Package Management: ALPM Frontend, ASP and AUR Helper, Get Help
- Updating System: OS Release, The Riddle, Refresh Update, List Upgradable, Download Upgrade, Upgrade, Common Form
- Package IRSIF: Install, Removal, Query Search, Show Info, Change Log, List Files, Verify, Package as File
- What's Next
- Dependency: Using pacman, Test, Using pactree
- Repository: Configuration, Mirror
- Group: Blackarch Example, List Group
- Lock Package: IgnorePkg, HoldPkg
- System Wide: List Packages, Search Files
- History: The Log File
- Clean Up: Cache, Autoremove
- Case: When chroot fail
- What's Next
- Automatic Build: User Privilege, PKGBUILD, makepkg, Example, Dependency, Download, Install, Namcap
- ABS: Deprecation, ASP, SVN
- What's Next
- Introducing AUR: Package Query, cower, Foreign Package
- AUR Helper: yaourt, pacaur, packer, aura
- Screenshot: Query AUR
There are two main topics in package dependency, the dependency itself, and reverse dependency.
Package that required by: such as man-db need groff-base and other.
Package that require: such as groff-base needed by man-db or other.
Luckily both can be achieved with single command.
We have already discuss this on package removal.
There is a cool official tool, the
It could also resolve reverse dependency well.
Switch repository in Arch based is simple.
Most of the time I manage repository using
configuration directly in Arch based distribution.
I don’t know if there is better way.
Case: Other distribution utilized ALPM may use different repository.
Case: Sometimes there is additional repository as well,
Before you begin. This is the official documentation.
Mirror configuration is in
It is originnaly just consist one line.
We can fill more repository from this mirror generator site.
I filter the option for Indonesia only.
Just append by copy paste the result under the original
Do not forget to uncomment.
I also append my other three favorite repositories as well.
We are not done yet. Now we need to rank the mirror to find the fastest mirror. First backup the mirrorlist.
Do not forget to refresh.
ALPM has a very nice group support.
I have already wrote an article about this.
With BlackArch, you can install tools by category. One category today. And other category the day after. Until all completely installed. Or you can install only what you need. And keep our system clean.
But we are not talking about BlackArch here. Therefore I must make a more genreci example.
To show all group, just use
Cool! Now we can install a specific group.
base-devel, as we need toolchain later for automatic compilation.
Two method here
IgnorePkgto avoid change, upgrade or downgrade.
HoldPkgto avoid removal.
Consider an water creature case here that I installed from outdated repo. It will always be on the upgradable list.
Unless we explicitly ignore it, by using
I have been using this
to avoid driver upgrade for my
because there was about one year that,
the later driver does not work with
What if I want this water creature to be always in my system ?
We explicitly hold it, by using
System Wide Information
Listing packages handled by package manager,
can be achieved by
pacman -Ql has a very different task.
You can query only installed packages.
To find package that provide a specific file,
you can utilize
Verify integrity of package database, such as dependencies and consistency.
testdb has been replaced.
You can also
You can also examine
This is most the forgotten part of package management, although it is not uncommon to notice messages.
The Log File
There are few log files.
more is a good tool to read log file.
Most likely you want the
tail, latest transaction,
at the bottom of the recorded event.
Keep your system neat and tidy.
APT as default keep downloaded package.
/var/cache/pacman/pkg/ * -x86_64.pkg.tar.xz
/var/cache/abs/local/yaourtbuild/ * -x86_64.pkg.tar.xz
You can clean this directory by using
Note that all package that you use will still in that directory. You can uninstall manually if you want. Please preserve system packages such as driver and kernel, just in case upgrade issue happened.
I personally like to collect important package to other directory, and remove all package manually.
ALPM has this very nice autoremove feature that is flexible but not easy to remember for daily basis.
Supposed that I just remove vim, without removing dependency.
Now we can have this
Consider, not to be noisy this time. We have array of packages in a row.
Now we can remove recursively.
When chroot fail
Once I had a kernel panic, that caused by filesystem failure, due to electricity went out. This wasn’t the only misery, apparently chroot also failed miserably, with message input/output error, that means I cannot do pacman to reinstall missing files (mostly library).
This is when
pacman -U -r,
this command can have a target directory.
It means we can install in different root location.
glibc from different partition (or live usb),
I can chroot successfully.
Later I can _pacman in chroot to replace some missing library files.
Note that image below does not run on docker, but real life problem solving.
There are still, some interesting topic for
Consider finish reading [ Part Three ].
Thank you for reading