Difference between revisions of "User:Allan/Pacman OptDepends"

From ArchWiki
Jump to: navigation, search
Line 34: Line 34:
 
  tk 8.5.6-1 (optdepend for python)
 
  tk 8.5.6-1 (optdepend for python)
  
'''optdepends can be removed with -Rs'''  ''[done]''
+
'''packages which are only optrequired get a nonfatal warning when trying to remove them'''
> pacman -Rs python
+
Remove (2): python-2.6.1-1  tk-8.5.6-1
+
 
+
'''packages which are only optrequired get a nonfatal warning'''
+
 
  > pacman -R tk
 
  > pacman -R tk
 
  checking dependencies...
 
  checking dependencies...
  :: python: optionally requires tk: for IDLE, pynche and modulator
+
  :: python: optionally requires tk (for IDLE, pynche and modulator)
 
   
 
   
 
  Remove (1): tk-8.5.10-1
 
  Remove (1): tk-8.5.10-1
 +
 +
'''optdepends can be removed with -Rs'''  ''[done]''
 +
> pacman -Rs python
 +
Remove (2): python-2.6.1-1  tk-8.5.6-1
  
 
'''optdeps are not recursively removed if there is still a package needing them'''  ''[done]''
 
'''optdeps are not recursively removed if there is still a package needing them'''  ''[done]''
Line 61: Line 61:
 
Note that this only affects automatic recursion, optdepends can still manually be removed (see above)
 
Note that this only affects automatic recursion, optdepends can still manually be removed (see above)
  
 +
'''if a flag is given, optdeps are recursively removed even if there is still a package needing them'''
 +
 +
Suppose tk, python and git are installed. python and git optdepend on tk.
 +
 +
> pacman -Rs --optdeps git
 +
checking dependencies...
 +
:: python: optionally requires tk (for IDLE, pynche and modulator)
 +
 +
Remove (2): git-1.7.6-1 tk-8.5.10-1
 +
 
'''cascading only affects optrequires if a flag is given'''
 
'''cascading only affects optrequires if a flag is given'''
 
  > pacman -Rc tk
 
  > pacman -Rc tk

Revision as of 01:12, 10 September 2011

The Idea

Currently optdepends in pacman serve no purpose other than informational. It would be good to "improve" this somewhat.

Current Situation

example package with optdepends

> pacman -S python
Optional dependencies for python
    tk: for IDLE, pynche and modulator
> pacman -Qi python
Optional Deps : tk: for IDLE, pynche and modulator

How to improve?

Everything marked with [done] is implemented in the optdep branch of this repo, but probably won't land in pacman before 4.1.


pacman recognises installed optdepends [done]

> pacman -S --asdep tk
> pacman -Qi python
Optional Deps : tk: for IDLE, pynche and modulator [installed]
> pacman -Qi tk
Required By: python (optional)

information about optdepends is not output if an optdepends package is installed [done]

> pacman -S tk
> pacman -S python
(no optional dependencies notification output)

optdepends are not orphans unless a flag is specified [done]

> pacman -Qtd
> pacman -Qtd --optdep
tk 8.5.6-1 (optdepend for python)

packages which are only optrequired get a nonfatal warning when trying to remove them

> pacman -R tk
checking dependencies...
:: python: optionally requires tk (for IDLE, pynche and modulator)

Remove (1): tk-8.5.10-1

optdepends can be removed with -Rs [done]

> pacman -Rs python
Remove (2): python-2.6.1-1  tk-8.5.6-1

optdeps are not recursively removed if there is still a package needing them [done]

Suppose tk, python and git are installed. python and git optdepend on tk.

> pacman -Rs git
checking dependencies...

Remove (1): git-1.7.6-1

> pacman -Rs git python
checking dependencies...

Remove (3): git-1.7.6-1 python-3.2.1-1 tk-8.5.10-1

Note that this only affects automatic recursion, optdepends can still manually be removed (see above)

if a flag is given, optdeps are recursively removed even if there is still a package needing them

Suppose tk, python and git are installed. python and git optdepend on tk.

> pacman -Rs --optdeps git
checking dependencies...
:: python: optionally requires tk (for IDLE, pynche and modulator)

Remove (2): git-1.7.6-1 tk-8.5.10-1

cascading only affects optrequires if a flag is given

> pacman -Rc tk
checking dependencies...

Remove (1): tk-8.5.10-1

> pacman -Rc --optdepends tk
checking dependencies...

Remove (2): tk-8.5.10-1 python-3.2.1-1

Other Ideas

  • A flag/configuration option to install a packages optdepends by default
  • Add option to tell pacman if you want it to ask you about installing each single optdepend
  • Add option to tell pacman to list optdepends even when installed and indicate install status of each [done]