Pacman

Historical bug tracker for the Pacman package manager.

The pacman bug tracker has moved to gitlab:
https://gitlab.archlinux.org/pacman/pacman/-/issues

This tracker remains open for interaction with historical bugs during the transition period. Any new bugs reports will be closed without further action.
Tasklist

FS#28754 - The -u option that goes with -R is ambiguously described.

Attached to Project: Pacman
Opened by Georgiy Treyvus (hiushoz) - Saturday, 03 March 2012, 01:24 GMT
Last edited by Allan McRae (Allan) - Thursday, 08 March 2012, 22:56 GMT
Task Type Bug Report
Category Documentation
Status Closed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

It leads you to believe that "pacman -Ru" is like "apt-get autoremove" when in reality it 1. requires other arguments and 2. is actually like a localized version of autoremove for each specified package group.
This task depends upon

Closed by  Allan McRae (Allan)
Thursday, 08 March 2012, 22:56 GMT
Reason for closing:  Won't fix
Comment by Karol Błażewicz (karol) - Saturday, 03 March 2012, 09:25 GMT
Indeed, there is no immediate indication that it requires arguments but 'pacman <operation> [options] [targets]' (at the beginning of the man page) tells you that only 'operation' is mandatory.
Comment by Dan McGee (toofishes) - Thursday, 08 March 2012, 14:51 GMT
-u, --unneeded
Removes targets that are not required by any other packages. This
is mostly useful when removing a group without using the -c option,
to avoid breaking any dependencies.

The first two words of the description are "Removes targets", which is our standard word for referring to command line arguments.
Comment by Dave Reisner (falconindy) - Thursday, 08 March 2012, 16:41 GMT
I have absolutely no idea what apt-get's "autoremove" does, and you haven't bothered to explain it. Your preconceived notions of what -u are in relation to the functionality of some other package manager clearly aren't panning out. Perhaps you need to change your attitude rather than forcing your beliefs upon us that the documentation is unclear.
Comment by Georgiy Treyvus (hiushoz) - Thursday, 08 March 2012, 17:02 GMT
In Debian "apt-get autoremove" removes orphaned packages that are no longer needed by other packages. It's equivalent to "pacman -Rsc $(pacman -Qtdq)". For each target to pacman -Ru we have pacman behaving like autoremove but localized to that group of packages. I just really feel that the man page could explain it more clearly similar to the fashion which I have outlined.
Comment by Dan McGee (toofishes) - Thursday, 08 March 2012, 17:14 GMT
Patches welcome.
Comment by Dave Reisner (falconindy) - Thursday, 08 March 2012, 17:22 GMT
And should we explain it again for users who previously used yum? or portage? or zypper? Why would we make this comparison only here and not throughout the entire manpage?

There exists a wiki page for such "translations" of pacman functionality compared to other package managers:

https://wiki.archlinux.org/index.php/Pacman_rosetta
Comment by Georgiy Treyvus (hiushoz) - Thursday, 08 March 2012, 17:44 GMT
We don't necessarily need to talk about it in APT terms. Orphaned packages are a package manager independent notion.

Like I would write something like:

-u, --unneeded
This takes package groups as arguments. For each argument specified orphaned packages that are not needed by other packages in the group are removed.
Comment by Dan McGee (toofishes) - Thursday, 08 March 2012, 17:48 GMT
group != target
target == (group OR package)

The only improvement I can see making is doing something like this:
"Restricts removal operation to targets that are not required by any other packages."
Comment by Dave Reisner (falconindy) - Thursday, 08 March 2012, 17:49 GMT
That sounds like what we have now only you've replaced our common usage of targets with "arguments" and reworded it in a way that's less general, and excludes the example usage.
Comment by Georgiy Treyvus (hiushoz) - Thursday, 08 March 2012, 18:13 GMT
Please keep in mind that as Arch is not by any means for the faint of heart that it's users are not morons. If they've gotten to the point where they're wondering what -Ru does and reading the man page they certainly already know that targets are arguments that can refer to a group or package. They do need to know that -Ru takes arguments. They need to know that in this case the arguments are package groups. They need to know that -Ru removes orphaned packages in each package group.
Comment by Dan McGee (toofishes) - Thursday, 08 March 2012, 18:19 GMT
The arguments are *targets*, damn it. They are NOT just groups, they can be packages too.

Please, for our sake and for our sanity to be preserved, stop proposing documentation updates that are incorrect. In this case, the only person in the "they" you refer to seems to be you.

dmcgee@galway ~
$ sudo pacman -Ru base-devel
checking dependencies...
warning: removing gcc from target list
warning: removing make from target list
warning: removing libtool from target list
warning: removing binutils from target list
warning: removing bison from target list
warning: removing automake from target list
warning: removing pkg-config from target list
warning: removing m4 from target list

Targets (4):

Name Old Version Net Change

autoconf 2.68-2 -2.15 MiB
fakeroot 1.18.2-1 -0.22 MiB
flex 2.5.35-5 -0.91 MiB
patch 2.6.1-3 -0.14 MiB

Total Removed Size: 3.42 MiB

Do you want to remove these packages? [Y/n] ^C
Interrupt signal received


dmcgee@galway ~
$ sudo pacman -Ru gcc make libtool flex
checking dependencies...
warning: removing gcc from target list
warning: removing make from target list
warning: removing libtool from target list

Targets (1):

Name Old Version Net Change

flex 2.5.35-5 -0.91 MiB

Total Removed Size: 0.91 MiB

Do you want to remove these packages? [Y/n] ^C
Interrupt signal received
Comment by Georgiy Treyvus (hiushoz) - Thursday, 08 March 2012, 20:03 GMT
Ok fair enough. Perhaps my understanding of the issue was off. I apologize for that.

Though I know what -Ru does to package groups can someone please explain what it does to individual packages?
Comment by Georgiy Treyvus (hiushoz) - Thursday, 08 March 2012, 22:55 GMT
  • Field changed: Percent Complete (100% → 0%)
Believe it or not I can read and I know what remove targets means. However the -c option is for removing reverse dependencies of a package. A package group is like a metapackage only dependencies aren't hard meaning packages can be safely removed while still keeping the package group installed. The -s option prolly won't work as again dependencies aren't hard. That's why -u is needed. It's like autoremove only localized to package groups as -s won't work. What -c has to do with anything I don't know. Package groups generally pull in dependencies and are not dependents. The -u is like an autoremove localized to target package groups. This must be clearly explained. Isn't the Arch Way that of simplicity and transparency as opposed to obfuscation?
Comment by Allan McRae (Allan) - Thursday, 08 March 2012, 22:56 GMT
Oops... clicked reopend instead of deny... Sorry for raising your hopes.

Loading...