Talk:Pacman/Tips and tricks

From ArchWiki
Jump to: navigation, search

pacman-optimize on SSD

[Moved from Talk:Improve pacman performance -- Alad (talk) 05:05, 16 October 2015 (UTC)]

pacman-optimize only tries to reduce fragmentation of the files right? If that is the case perhaps we should include a note that this probably won't help much on an SSD. —This unsigned comment is by F4hy (talk) 18:27, 29 March 2013‎. Please sign your posts with ~~~~!


[Moved from Talk:Improve pacman performance -- Alad (talk) 05:05, 16 October 2015 (UTC)]

Looks like the systemd-timer-pacman-optimize-git package is no longer maintained. [1]

Should the wiki no longer recommend this package? -- I'm guessing it shouldn't.

Also, is pacman-optimize less important than in the past? -- I am genuinely unsure about this.

--Matthew02 (talk) 05:40, 2 March 2015 (UTC)

The maintenance of systemd-timer-pacman-optimize-gitAUR has nothing to do with that of pacman itself, it is packaged separately and even in the AUR. Anyway, I'd keep the section until pacman-optimize is removed from pacman.
The reasons why it is not very important nowadays are improvements in pacman itself (mentioned in the ML post linked above), increased speeds of HDDs and the advent of SSDs.
-- Lahwaacz (talk) 22:18, 2 March 2015 (UTC)

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)

You would have to go way back to track this. It seems to have worked without -d / even in 2006: [2], [3]. I guess that simply nobody asked the right question... -- Lahwaacz (talk) 12:30, 16 October 2015 (UTC)
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)

Listing optional dependencies of all installed packages

To show a list of optional dependencies of all installed packages you can use this script (requires expac). Usefull when you missed some scrolling by and the closed the terminal. Consider installing via pacman --asdeps -S $p to mark them as dependecies and then orphans when the package they get installed for is removed.
if [[ -t 1 ]]; then
	packagename=$(tput bold)
	installed=$(tput setf 2)
	normal=$(tput sgr0)

(for p in $(expac %n);do # every installed package
	if [[ -n $(expac %o $p) ]]; then # that has optional dependencies
		echo $p
done;) | (while read p; do
	echo $packagename$p$normal: # echo package name
	expac -l "\n" "%O" $p | while read dep; do # every opt-dep
		echo -n "    $dep"
		if [[ -n $(pacman -Q $(echo $dep | cut -d ":" -f 1) 2> /dev/null) ]]; then # if installed
			echo -n " $installed[Installed]$normal"
Note: To view optional dependencies for only one specific package use pacman -Qi $p

-- 08:38, 20 January 2017‎ M3t0r

Since the main interest is listing optional dependencies which are not installed, the above can be summarized to (also much faster):
join -v2 -o2.2,2.1 <(expac -Q '%n' | sort) <(expac -Qv '%n\t%o' -l '\t' | awk '$2 !~ /None/ { 
	for(i = 2; i <= NF; ++i) printf("%s\t%s\n", $i, $1) | "sort -k1,1"
}') | sort | column -t

--Alad (talk) 12:40, 20 January 2017 (UTC)
Yes, it's faster, but less intuitive reading of the code and the output. It's also missing the description what they would enable.
--M3t0r (talk) 22:04, 20 January 2017 (UTC)