Pacman pkg manager

I've looked at Arch's pacman in a bit more detail while healing up. I've never really needed to explore all the capabilities of pacman other than install -S, remove -Rns, update database -Syy, update system -Syu. When it comes to keys and cache file maintenance, I break out my notes file.. Pacman supplies makepkg, a tooI I frequently use to build AUR packages. I wasn't aware of that till now. I also just learned pacman does not supply pkgfile, the "go to" file to package search tool for pacman. As of pacman 5.0, it now has a has a built in file to package search tool.

I use pkgbrowser, a GUI utility for browsing pacman databases and the AUR. I also use pkgbrowser for it's various search functions such as search a file belongs to which package, etc. Pkgbrowser is not transactional in any way and is only a convenience tool to supplement cli pacman usage. Example showing what package supplies makepkg.


This tool has spoiled and removed me from all the search and other available operations available in pacman. The pacman package supplies a bunch of tools both called by pacman and otherwise. Below is a list with a very brief explanation of what I found so far. I just very recently learned of bacman. Very nice tool I used to create a few AUR packages with my custom configs, that are installed on my system. 

I recently tried the new "this <file> belongs to what package" operation built into pacman. $ pacman -F <file> It errored out with something about the package database. I did an -Syy to force an update on the package database. The -F file function still wouldn't work. Come to find out, pacman now has 2 databases, one for packages and one for files. It wasn't clear to me in the man pacman page, but it was right there, just very unclear. To create a database for the -F operation to work, use $ pacman-Fy . It seems to me the man page info for the new -F operation, -y option was not clear due to the wording. Here's a copy, paste from the current man page:




FILE OPTIONS
       -y, --refresh
           Download fresh package databases from the server. Use twice to force a refresh even if databases are up to date.



Since I was dealing with the -F file operation, this didn't seem right and I discounted it. I already forced a package database refresh. At this time, I didn't know there was a new database for the file operation. I see others on the forums having issues and see a great suggestion to reword the -y option to reflect it's dealing with files rather than packages. His suggestion:


FILE OPTIONS
       -y, --refresh
           Download fresh file databases from the server. Use twice to force a refresh even if databases are up to date.


Below is a list of the data compressed with gzip, used by pacman in /var/lib/pacman/sync/

# ls -l
total 29768
-rw-r--r-- 1 root root  4023610 May 22 16:41 community.db
-rw-r--r-- 1 root root 16261899 May 20 06:39 community.files
-rw-r--r-- 1 root root   128206 May 22 07:31 core.db
-rw-r--r-- 1 root root   710336 May 17 13:05 core.files
-rw-r--r-- 1 root root  1723920 May 22 13:23 extra.db
-rw-r--r-- 1 root root  7621460 May 20 07:54 extra.files


My thoughts are none of this should or would have been an issue if an announcement was made on the Arch homepage news. I see Allen (pacman lead dev) discussed and explained the new databases and the necessary command, on his personal blog. Was the ball dropped on this?

OK lets get back on track. Lets show some love for the Arch devs. Their combined work creates an awesome Linux distro. So some of them are a little indifferent regarding users with an IQ below 140, at least we get to use their work....

Below is a list of independent programs that make up and come with the pacman package.


bacman - Recreate a package using pacman's database and system files

checkupdates - Safely print a list of pending updates

cleanupdelta - Returns a list of unused delta in a given sync database.

makepkg - Make packages compatible for use with pacman

makepkg-template - self expl. see man makepkg-template

paccache - A flexible pacman cache cleaning utility.

pacdiff - A simple program to merge or remove pacnew/pacsave files.

paclist - List all packages installed from a given repository

paclog-pkglist - Parse a log file into a list of currently installed packages

pacman - The Arch Linux package manager

pacman-db-upgrade - Upgrade the local pacman database to a newer format

pacman-key - Manage pacman's list of trusted keys

pacman-optimize - Improve the performance of pacman

pacscripts - Prints the pre,post, install,remove,upgrade scripts of package.

pacsearch - Perform a pacman search using both the local and the sync databases.

pacsort - A sort utility implementing alpm_pkg_vercmp.

pactree - A simple dependency tree viewer.

pkgdelta - pkgdelta will create a delta file between two packages.

rankmirrors - Ranks pacman mirrors by their connection and opening speed.

repo-add - repo-add will update a package database by reading a package file.

repo-elephant - prints a cute little aski art elephant.

testpkg - Test a pacman package for validity.

updpkgsums - Usage: updpkgsums [build file]

vercmp - Compare package version numbers.

     __
    '.   \
     '-   \
      /   /_         .---.
     /    | \\,.\/--.//     )
     |     \//         )/   /
      \      ' ^ ^   /    )____.----..  6
       '.____.     .___/            \._)
          .\/.                               )
           '\                                /
           _/ \/    ).        )           (
          /#  .!    |        /\           /
          \  C// #  /'-----''/ #     /
       .   'C/ |     |    |   |         |mrf  ,
       \), .. .'OOO-'. ..'OOO'OOO-'. ..\(,





I'll follow up with adding to this post if I find anything interesting enough to mention as I continue to explore and figure things out.



Links:

A thorough pacman user guide.  It's a bit dated, and specifically the info about the ARM [Arch Rollback Machine] is obsolete.

The current old packages repo, and instructions if needed.




Pacman -F
Pacman -F doesn't work
Pacman --files
Comments