Talk:Pacman/Tips and tricks

From ArchWiki
Latest comment: 4 April by Erus Iluvatar in topic Listing changed backup files

Leading slash

Pacman/Tips_and_tricks#aria2 doesn't work without leading slash, i.e. -d / turning file names to //var/cache/.... The article mentions this, but it doesn't mention why. -- Alad (talk) 05:28, 16 October 2015 (UTC)Reply[reply]

You would have to go way back to track this. It seems to have worked without -d / even in 2006: [1], [2]. I guess that simply nobody asked the right question... -- Lahwaacz (talk) 12:30, 16 October 2015 (UTC)Reply[reply]
Oops, it does not work without -d /. Then the problem must be on aria's side, which expects a file name for the -o option, which is then catenated with -d into the full path. Assuming that -d defaults to the cwd, /var/cache/ would appear twice in the result. -- Lahwaacz (talk) 12:43, 16 October 2015 (UTC)Reply[reply]

pacman cache

I still think we should warn people not to symlink /var or anything under it. It leaves the whole system unusable because if the cache disappears during a pacman transaction, you're left with missing /usr/lib libraries, and nothing works, including pacman itself. This is a serious enough problem that it can take hours to figure out how to recover. If the wiki had mentioned this problem it would have saved me a lot of time and effort, and I'm not the only one who has run in to this. It is not, however, considered a bug. See JimRees (talk) 23:15, 29 April 2017 (UTC)Reply[reply]

This revisions says that: [3]. But to make it more clear: [4] -- Rdeckard (talk) 00:13, 30 April 2017 (UTC)Reply[reply]
Actually, I undid my change since I think that first change is more accurate (mentioning /var/cache/pacman/pkg and ancestors), so I went back to that but explicitly mentioned /var as an example. -- Rdeckard (talk) 01:11, 30 April 2017 (UTC)Reply[reply]
Thanks for the background information. I was not aware of the bug report and now clearly understand why you altered the section the way you did. I hope the recent change is sufficient for you. Since every misbehaving program might leave a system unbootable if it plays a role in the boot process, it should be unnecessary to add this redundant information. However the problem you described is still severe and I hope you agree that the recent edits made to the article do the topic justice. Thanks for clarifying the topic and adding this to the article and sorry for reverting your edits at first. -- Edh (talk) 21:07, 30 April 2017 (UTC)Reply[reply]

local repository database extension/compression recomendation

If you opt to not compress a pacman database, the files database can become very large, 10x larger than a gzipped one in my case, which cause issues when trying to update the local pacman files db (pacman -Fy) since apparently there is a max (expected) size. Should we include a warning about uncompressed databases?

—This unsigned comment is by JoshH100 (talk) 00:35, 29 January 2019‎. Please sign your posts with ~~~~!

Use a new nginx.conf for Dynamic reverse proxy cache using nginx

I propose to replace the current nginx.conf with an improved nginx.conf and update the section. The new config doesn't make the upstream servers directly available on the network and it allows having mirrors with different relative paths to package files. It also removes directives that are not needed and has some other minor cleanups. I've been using a similar config for a few months now without any problems, so I believe it should be fine. Noctavian (talk) 16:05, 28 February 2019 (UTC)Reply[reply]

What do you mean by "The new config doesn't make the upstream servers directly available on the network"? -- Lahwaacz (talk) 20:54, 28 February 2019 (UTC)Reply[reply]
In the new config the server blocks for the upstream mirrors are set to listen to Only the computer that is running the nginx cache can send requests to Other computers on the network can't. The current config exposes the upstream mirrors to the network, a nmap scan will show the 8080 port of the cache as open and the ports 8001, 8002, 8003 of the upstream mirrors as open. One can browse to cache.domain.example:8002 and have direct access to whatever package mirror website is used by the cache bypassing the cache config order and locations. The upstream mirrors don't need to be available to the entire network for the cache to work; they only need to be available to the computer that is hosting the nginx cache. I believe ports should not be left open on the network if they don't have to be open. Noctavian (talk) 08:37, 1 March 2019 (UTC)Reply[reply]
I have written a draft for the section update on my user page. I made some small changes to the config file since last week, added comments and mirror examples and turned off IPv6 address resolution to prevent some errors that can happen sometimes. Suggestions.are welcome. I haven't seen objections to my proposal, so I'm going to wait a few more days for feedback and then update the section on the main page with my draft and the new nginx.conf file if that's ok. Noctavian (talk) 11:43, 8 March 2019 (UTC)Reply[reply]
Feel free to go ahead. -- Lahwaacz (talk) 17:11, 16 March 2019 (UTC)Reply[reply]

Remove uninstalled packages from the cache with paccache

Just figured the following out, noting here since I'm not sure it's worth noting in the page itself: paccache won't remove uninstalled packages, even with -u, unless -k is given a value lower than the number of instances in cache. In particular, oneshot AUR experiments won't be removed without -k0. Gesh (talk) 01:23, 1 November 2021 (UTC)Reply[reply]

The -u flag just adds all installed packages to the blacklist. So to remove uninstalled packages from the cache and nothing else, use -uk0. — Lahwaacz (talk) 06:28, 1 November 2021 (UTC)Reply[reply]

Additional options needed for mounting overlay of remote pacman pkg cache

"The factual accuracy of this article or section is disputed. Reason: Why is -o index=off -o metacopy=off needed? Is -o redirect_dir=off needed only for this use-case? If not, it should be explained on the overlay filesystem page too."

My reply: I'm not an expert on use of sshfs for mounting remote filesystems. To me, using sshfs is much simpler than going to all the trouble of setting up the chosen box to serve up /var/cache/pacman/pkg over, e.g., NFS. I wonder if using fuse.sshfs leads to this problem? That being said, my setup is bog standard, all boxes using linux kernel from Arch, connected to the same LAN switch with normal IPv4 addressing, e.g.,, and so on.

Without using any additional options the problem I encounter is an unusual but familiar one, namely:

$ ls /tmp/pacman_pkg/ > /dev/null
ls: reading directory '/tmp/pacman_pkg/': Stale file handle

This is obviously unworkable. The minimal options I am able to succeed with are: -o redirect_dir=off -o index=off. Prior to the 5.17 kernel series, I needed -o index=off -o metacopy=off but in my use something then changed which requires -o redirect_dir=off (and -o metacopy=off now comes along for free). Without these options... "Stale file handle".

I am eliminating additional options from the generic commands even though I expect that anyone who tries to run them as listed will fail due to the file handle reporting as stale. I will add a tip note suggesting these options if problems are encountered. HTH :) Cmsigler (talk) 16:21, 27 April 2022 (UTC)Reply[reply]

I'm not super familiar with sshfs, but this looks good to me! Thanks for addressing the accuracy template ^^ CodingKoopa (talk) 06:48, 2 May 2022 (UTC)Reply[reply]

Is PackageKit still not recommended to use in 2022?

In Pacman/Tips_and_tricks#Graphical, a warning says that PackageKit opens up system permissions by default and thus is not recommended to use. However, that warning was added back in 2018 and it links bug reports from 2016. I'm wondering if it's still valid in 2022? Also, as far as I know, PackageKit only allowed users from the wheel group to perform updates (kind of similar to what sudo does).

Is this still the case nowadays? If so, are there any other warnings one should know of before using PackageKit? I'm thinking partial upgrades, but I'm not sure. Cont999 (talk) 03:54, 3 September 2022 (UTC)Reply[reply]

sudo pacman requires a password, whereas PackageKit doesn't, so they are really not equivalent. I believe PackageKit can also update the system even if the user is not in the wheel group. I haven't looked upstream, but this is how the software is designed to work because it fits the way other distributions configure things. In Fedora, for example, you do not need to authenticate to install updates to the system. Updates can also run without user intervention. These practices are dangerous on Arch. Unattended updates aren't supported and attended ones require you to read the output and the News. So the problems using PackageKit on Arch are not going to be resolved unless changes are made locally, but there's not much motivation to do that as Arch users are expected to be able to use pacman. That is, the bugs on Arch aren't bugs elsewhere, so upstream is unlikely to fix them (and break how stuff works elsewhere); the bugs are more easily avoided on Arch by not using PackageKit. At least, that would be my understanding. --cfr (talk) 01:11, 13 December 2022 (UTC)Reply[reply]

Why do I have this package?

I occasionally wonder why a certain PACKAGE is installed. I used to browse pactree -r PACKAGE to answer this question, but I recently figured that you can just do pacman -Qe `pactree -ruo PACKAGE` to list all explicitly installed packages that directly or indirectly depend on PACKAGE.

I would've added a section to the article but I'm not sure if this is useful for anyone but me. Rumsbums (talk) 07:58, 21 January 2024 (UTC)Reply[reply]

to list all explicitly installed packages that directly or indirectly depend on PACKAGE.

The question is, why do you want to know that in the first place? What purpose such information can serve?
If you have some explicit package you don't need, just uninstall it. If it is required by something else, pacman won't let you uninstall it anyway. In which case you can simply mark it as non-explicit (pacman -D --asdeps PACKAGE).
Also this maybe a bit obvious, but you should not uninstall base metapackage of course. It is a special case and core of the proper Arch installation.
Hanabishi (talk) 08:17, 21 January 2024 (UTC)Reply[reply]
To add to this, you can run pacman -Rsc --print package to see what would have been removed. — Lahwaacz (talk) 14:07, 21 January 2024 (UTC)Reply[reply]

Listing changed backup files

Specified command in 1.10 no longer works with pacman 6.1.0


# pacman -Qii | sed -n '/\[modified\]/{s/^\(.* : \)\| *//; s/ .*$//; p}'

. Singeinfini (talk) 10:51, 16 March 2024 (UTC)Reply[reply]

By using sed's -E flag, one can stop using a lot of backslash (\) characters to declare meta characters.
Arash (talk) 05:24, 19 March 2024 (UTC)Reply[reply]
Had the same problem. I've been doing this.
# pacman -Qii | grep -F [modified] | cut -c 19- | cut -d ' ' -f 1
52factorial (talk) 11:19, 26 March 2024 (UTC)Reply[reply]
Well, the solution of @Singeinfini is much better, It's a 2 function script, rather than 4. But, I just gave it a minor tip. For example:
pacman -Qii | sed -En '/\[modified\]/{s/^(.* : )| *//; s/ .*$//; p}'
Using -E flag just reduced 3 backslashes.
Arash (talk) 11:54, 26 March 2024 (UTC)Reply[reply]
To still have it be a 2 function script, you can do
pacman -Qii | awk '/\[modified\]/ {print $(NF - 1)}' 
Lifeismana (talk) 22:25, 3 April 2024 (UTC)Reply[reply]
Thanks, I've updated the page with this :) Closing. --Erus Iluvatar (talk) 07:05, 4 April 2024 (UTC)Reply[reply]