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

From ArchWiki
Jump to: navigation, search
Line 3: Line 3:
 
Currently '''optdepends''' in pacman serve no purpose other than informational.  It would be good to "improve" this somewhat.
 
Currently '''optdepends''' in pacman serve no purpose other than informational.  It would be good to "improve" this somewhat.
  
=How to improve?=
+
=Current Situation=
  
 
'''example package with optdepends'''
 
'''example package with optdepends'''
Line 12: Line 12:
 
  Optional Deps : tk: for IDLE, pynche and modulator
 
  Optional Deps : tk: for IDLE, pynche and modulator
  
'''pacman recognises installed optdepends'''
+
=How to improve?=
 +
 
 +
Everything marked with ''[done]'' is implemented in the optdep branch of [https://github.com/moben/pacman this repo], but probably won't land in pacman before 4.1.
 +
 
 +
 
 +
'''pacman recognises installed optdepends'''  ''[done]''
 
  > pacman -S --asdep tk
 
  > pacman -S --asdep tk
 
  > pacman -Qi python
 
  > pacman -Qi python
Line 19: Line 24:
 
  Required By: python (optional)
 
  Required By: python (optional)
  
'''information about optdepends is not output if an optdepends package is installed'''
+
'''information about optdepends is not output if an optdepends package is installed'''  ''[done]''
 
  > pacman -S tk
 
  > pacman -S tk
 
  > pacman -S python
 
  > pacman -S python
 
  (no optional dependencies notification output)
 
  (no optional dependencies notification output)
  
'''optdepends are not orphans unless a flag is specified'''
+
'''optdepends are not orphans unless a flag is specified'''  ''[done]''
 
  > pacman -Qtd
 
  > pacman -Qtd
 
  > pacman -Qtd --optdep
 
  > pacman -Qtd --optdep
 
  tk 8.5.6-1 (optdepend for python)
 
  tk 8.5.6-1 (optdepend for python)
  
'''optdepends can be removed with -Rs'''
+
'''optdepends can be removed with -Rs'''  ''[done]''
 
  > pacman -Rs python
 
  > pacman -Rs python
 
  Remove (2): python-2.6.1-1  tk-8.5.6-1
 
  Remove (2): python-2.6.1-1  tk-8.5.6-1
Line 40: Line 45:
 
  Remove (1): tk-8.5.10-1
 
  Remove (1): tk-8.5.10-1
  
'''optdeps are not recursively removed if there is still a package needing them'''
+
'''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.
 
Suppose tk, python and git are installed. python and git optdepend on tk.
Line 70: Line 75:
 
* A flag/configuration option to install a packages optdepends by default
 
* 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 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
+
* Add option to tell pacman to list optdepends even when installed and indicate install status of each ''[done]''

Revision as of 12:01, 9 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)

optdepends can be removed with -Rs [done]

> 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
checking dependencies...
:: python: optionally requires tk: for IDLE, pynche and modulator

Remove (1): tk-8.5.10-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)

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]