Short answer
I use pacman and pamac only for the AUR. However I tested pamac, and it appears that pamac by default does a sync and upgrade, so the option --no-upgrade
would be needed. See man pamac
.
# One way to view upgrade history
grep -E -e 'upgraded manjaro-system' \
-e 'upgraded manjaro-release' /var/log/pacman.log
From the command line, pacman or pamac, there usually is a prompt asking you if you want to continue [y|N].
Don’t mix pacman and pamac. Use one or the other. It’ll just get confusing.
The way the two updates were listed above, I get the impression that you might think they are separate. That isn’t how it works. There isn’t a 5/7 and 6/4 update, there is one update and the current one is 6/4. You’ll get all updates when you update. One caveat though, a user should still review the 5/7 and the 6/4 Announcements for any specific instructions or issues.
There are updates that occur that have no Announcement.
In general, if the local sync metadata for the package you are installing specifies a package version that resides in your local cache already or on the Manjaro repositories, and the same goes for any requirements, your install will succeed. But if there is no match, the install will fail. It depends on the repo version and the local metadata version.
You might see something like (XX is some package name):
Error: failed retrieving file ‘XX.pkg.tar.zst’ from mnvoip.mm.fcix.net : The requested URL returned error: 404
warning: failed to retrieve some files
You could play games by downloading individual packages, but other packages already installed could be affected and a mess created. Let the package manager do its’ job. It would be cleaner and more reliable to just do a pacman -Syu
. It’ll have to be done anyway, that’s just how a rolling release works. If you have problems, the first thing folks will usually recommend is to update.
The pieces in play, to hopefully aid understanding
Manjaro Repository
To view the status:
- Check the website https://repo.manjaro.org/, or
- execute
pacman-mirrors
On repo.manjaro.org, if you follow one of the links you would see the file structure (simplified for this example below):
stable
core
x86_64
acl-2.3.1-3-x86_64.pkg.tar.zst 14-Feb-2023 14:45 139470
acl-2.3.1-3-x86_64.pkg.tar.zst.sig 14-Feb-2023 14:45 119
....
extra
testing
unstable
The repos only contain the latest version of packages. The package versions should correspond to the latest Announcment on this forum. pacman -Sy
downloads only the repo metadata to the local sync databases on your machine. The .db files are just the metadata, gzip’ed and tar’ed (compressed and archived). The metadata is the data that a user sees when they execute pacman -Si PKG
. It is the data that is going to be used when you install or update.
To view if there are any updates:
checkupdates
, orpamac checkupdates
It is highly recommended that pacman -Syu
be run to update your local machine. y
updates the metadata. u
uses the metadata to download, verify, and install a package. imho, there are more reasons to keep your sync databases and your local database at the same package versions - so the package version in the sync database matches the version installed. The only way this is achieved is by always doing a pacman -Syu
and 99.9% of the time never use Sy
.
Local mirrorlist
One of the first steps to take after installing Manjaro is to update your mirrorlist so an update can be done.
Always do a pacman-mirrors -f
before an install. Some folks rebuild their customer mirrorlist before every install, some do neither. I do at least the first because it also shows the status.
- runtime mirror list: /etc/pacman.d/mirrorlist
- custom mirror: /var/lib/pacman-mirrors/custom-mirrors.json
- default pool: /var/lib/pacman-mirrors/status.json
# Create custom mirrorlist
pacman-mirrors --country # or --geoip; see man: pacman-mirrors
# Status
pacman-mirrors --status # default; same as repo.manjaro.org
# Review status and order mirrors
pacman-mirrors --fasttrack # short form: -f
Local /var/lib/pacman/sync/*.db
Sync database - Package metadata for each repository (i.e., core, extra).
# Does package exist in sync database
pacman -Ss firefox
Local /var/lib/pacman/local/*
Installed packages database.
# Info about installed package.
pacman -Qi firefox
Local /var/cache/pacman/pkg/*.zst, *.sig
Packages are downloaded to this cache location.
The directory contains multiple versions (default: 3) of packages. The default is defined in /etc/pamac.conf (KeepNumPackages = 3).
There is a systemd timer, pamac-cleancache that maintains KeepNumPages.
# List timers
systemctl list-timers --no-pager
# View content of service
systemctl cat pamac-cleancache.service
# View config file value; Can also us pamac GUI
grep -i keepnumpackages /etc/pamac.conf
Additional Links
- pacman - ArchWiki
- Compare packages on branches
- Install steps that I take.