[arch-general] post-install dependencies check
Can pacman be used to find which packages are missing which optional dependencies after an install? --
On 2/21/20 2:11 PM, Jude DaShiell wrote:
Can pacman be used to find which packages are missing which optional dependencies after an install?
pacman -Qi for a given package will show you optional dependencies and list which ones are satisfied. You can walk a dependency tree automatically and check for things which have uninstalled optdepends, by installing community/pacutils and running the command: paccheck --opt-depends --quiet --recursive with, optionally, the list of packages to do checks for. By default, like pacman -Qi, it will interpret no explicitly specified packages as "all installed packages". -- Eli Schwartz Bug Wrangler and Trusted User
On Fri, 2020-02-21 at 14:29 -0500, Eli Schwartz via arch-general wrote:
paccheck --opt-depends --quiet --recursive
Thank you for the pointer :), it does the job. Btw. when installing it there was an issue: [rocketmouse@archlinux ~]$ sudo pacman -S pacutils [snip] (1/1) pacaudit-pre.hook 2020/02/21 21:46:45 invalid character 'I' looking for beginning of value error: command failed to execute correctly [snip]
That looks like an unrelated bug in a hook installed by pacaudit. You should report it here: https://github.com/steffenfritz/pacaudit On Fri, Feb 21, 2020 at 3:52 PM Ralf Mardorf via arch-general < arch-general@archlinux.org> wrote:
On Fri, 2020-02-21 at 14:29 -0500, Eli Schwartz via arch-general wrote:
paccheck --opt-depends --quiet --recursive
Thank you for the pointer :), it does the job.
Btw. when installing it there was an issue:
[rocketmouse@archlinux ~]$ sudo pacman -S pacutils [snip] (1/1) pacaudit-pre.hook 2020/02/21 21:46:45 invalid character 'I' looking for beginning of value error: command failed to execute correctly [snip]
On Fri, 2020-02-21 at 16:12 -0500, Chris Billington wrote:
That looks like an unrelated bug in a hook installed by pacaudit.
Thank you for reporting it. Since you reported the issue, it now is fixed. https://github.com/steffenfritz/pacaudit/commit/98f2449f3bd406043796e151ad0e...
Am 21.02.20 um 21:52 schrieb Ralf Mardorf via arch-general:
... Btw. when installing it there was an issue: ... 2020/02/21 21:46:45 invalid character 'I' looking for beginning of value error: command failed to execute correctly ...
security.archlinux.org seems to be broken at the moment and returns "Internal Server Error". That is interesting.
On Fri, 21 Feb 2020 22:17:55 +0100, ProgAndy wrote:
security.archlinux.org seems to be broken at the moment and returns "Internal Server Error". That is interesting.
Yes, it does. On Fri, 2020-02-21 at 16:12 -0500, Chris Billington wrote:
That looks like an unrelated bug in a hook installed by pacaudit. You should report it here: https://github.com/steffenfritz/pacaudit
Not really. [rocketmouse@archlinux community]$ svn update pacutils Updating 'pacutils': At revision 577880. [rocketmouse@archlinux community]$ ls -hAl */*/* -rw-r--r-- 1 rocketmouse rocketmouse 1.3K Feb 21 22:49 pacutils/trunk/PKGBUILD pacutils/repos/community-x86_64: total 4.0K -rw-r--r-- 1 rocketmouse rocketmouse 1.3K Feb 21 22:49 PKGBUILD [rocketmouse@archlinux community]$ cat pacutils/trunk/PKGBUILD [snip]
I suspect that paccheck's recursive option is unneeded. [rocketmouse@archlinux ~]$ pacman -Qi alure | sed -n '/Deps/,$p' | sed '/^Required/q' | grep -v Required\ By | grep -v None | grep -v installed] dumb: for IT, XM, S3M and MOD support [rocketmouse@archlinux ~]$ paccheck --opt-depends --quiet alure alure: unsatisfied optional dependency 'dumb: for IT, XM, S3M and MOD support' [rocketmouse@archlinux ~]$ paccheck --opt-depends --quiet --recursive alure alure: unsatisfied optional dependency 'dumb: for IT, XM, S3M and MOD support' openal: unsatisfied optional dependency 'libmysofa: makemhr tool' python: unsatisfied optional dependency 'mpdecimal: for decimal' systemd: unsatisfied optional dependency 'libmicrohttpd: remote journald capabilities' systemd: unsatisfied optional dependency 'quota-tools: kernel-level quota management' util-linux: unsatisfied optional dependency 'words: default dictionary for look' python-requests: unsatisfied optional dependency 'python-pysocks: SOCKS proxy support' python-urllib3: unsatisfied optional dependency 'python-pysocks: SOCKS support' python-urllib3: unsatisfied optional dependency 'python-brotlipy: Brotli support' python-urllib3: unsatisfied optional dependency 'python-pyopenssl: security support' python-html5lib: unsatisfied optional dependency 'python-genshi: genshi treewalker' python-lxml: unsatisfied optional dependency 'python-lxml-docs: offline docs' mesa: unsatisfied optional dependency 'opengl-man-pages: for the OpenGL API man pages' mesa: unsatisfied optional dependency 'mesa-vdpau: for accelerated video playback' mesa: unsatisfied optional dependency 'libva-mesa-driver: for accelerated video playback' rrdtool: unsatisfied optional dependency 'lua51: to use corresponding binding' python2: unsatisfied optional dependency 'python2-pip' ruby: unsatisfied optional dependency 'ruby-docs: Ruby documentation' qt5-base: unsatisfied optional dependency 'freetds: MS SQL driver' xdg-utils: unsatisfied optional dependency 'kde-cli-tools: for KDE Plasma5 support in xdg-open' xdg-utils: unsatisfied optional dependency 'pcmanfm: for LXDE support in xdg-open' xdg-utils: unsatisfied optional dependency 'perl-file-mimeinfo: for generic support in xdg-open' avahi: unsatisfied optional dependency 'python2-twisted: avahi-bookmarks' avahi: unsatisfied optional dependency 'nss-mdns: NSS support for mDNS' at-spi2-core: unsatisfied optional dependency 'dbus-broker: Alternative bus implementation' colord: unsatisfied optional dependency 'argyllcms: color profiling' colord: unsatisfied optional dependency 'colord-sane: SANE support' networkmanager: unsatisfied optional dependency 'iwd: wpa_supplicant alternative' iproute2: unsatisfied optional dependency 'linux-atm: ATM support' modemmanager: unsatisfied optional dependency 'usb_modeswitch: install if your modem shows up as a storage drive' openssh: unsatisfied optional dependency 'libfido2: FIDO/U2F support' python-pyqt5: unsatisfied optional dependency 'python-opengl: enable OpenGL 3D graphics in PyQt applications' python-pyqt5: unsatisfied optional dependency 'qt5-serialport: QtSerialPort' python-pyqt5: unsatisfied optional dependency 'qt5-connectivity: QtNfc, QtBluetooth' python-pyqt5: unsatisfied optional dependency 'qt5-remoteobjects: QtRemoteObjects' jre8-openjdk: unsatisfied optional dependency 'icedtea-web: web browser plugin + Java Web Start' jre8-openjdk: unsatisfied optional dependency 'java8-openjfx: for JavaFX GUI components support' jre8-openjdk-headless: unsatisfied optional dependency 'java-rhino: for some JavaScript support' vulkan-icd-loader: unsatisfied optional dependency 'vulkan-driver: packaged vulkan driver' libva: unsatisfied optional dependency 'libva-vdpau-driver: backend for Nvidia and AMD GPUs' intel-media-sdk: unsatisfied optional dependency 'intel-compute-runtime: for rotate_opencl plugin' ocl-icd: unsatisfied optional dependency 'opencl-driver: packaged opencl driver' libdvdread: unsatisfied optional dependency 'libdvdcss: for decoding encrypted DVDs' openmpi: unsatisfied optional dependency 'gcc-fortran: fortran support' imagemagick: unsatisfied optional dependency 'imagemagick-doc: manual and API docs' texlive-core: unsatisfied optional dependency 'perl-tk: for texdoctk' texlive-core: unsatisfied optional dependency 'psutils: to manipulate the output of dvips' texlive-core: unsatisfied optional dependency 't1utils: can be useful when installing Type1 fonts' texlive-bin: unsatisfied optional dependency 'biber: for bibliography processing' jre-openjdk-headless: unsatisfied optional dependency 'java-rhino: for some JavaScript support' jasper: unsatisfied optional dependency 'jasper-doc: documentation' clang: unsatisfied optional dependency 'openmp: OpenMP support in clang with -fopenmp' clang: unsatisfied optional dependency 'llvm: referenced by some clang headers' libinput: unsatisfied optional dependency 'python-pyudev: libinput measure' libinput: unsatisfied optional dependency 'python-libevdev: libinput measure'
On Fri, 21 Feb 2020 22:22:14 +0100, Ralf Mardorf wrote:
I suspect that paccheck's recursive option is unneeded.
Doing a few tests, the quite option seems to have no impact either. paccheck --opt-depends or paccheck --opt-depends PACKAGE_NAME seems to provide the same output as paccheck --opt-depends --quiet --recursive *?*
On Fri, 21 Feb 2020 22:27:48 +0100, Ralf Mardorf wrote:
On Fri, 21 Feb 2020 22:22:14 +0100, Ralf Mardorf wrote:
I suspect that paccheck's recursive option is unneeded.
Doing a few tests, the quite option seems to have no impact either.
paccheck --opt-depends
or
paccheck --opt-depends PACKAGE_NAME
seems to provide the same output as
paccheck --opt-depends --quiet --recursive
*?*
In the context without a PACKAGE_NAME ;), but I'm mistaken. The quite option does make a big difference, just the recursive option seems to be unimportant for the purpose. [rocketmouse@archlinux ~]$ paccheck --opt-depends --quiet --recursive > /tmp/check_1.txt [rocketmouse@archlinux ~]$ paccheck --opt-depends --recursive> /tmp/check_2.txt [rocketmouse@archlinux ~]$ diff /tmp/check_1.txt /tmp/check_2.txt 0a1,30
2mandvd: all optional dependencies satisfied [...] [rocketmouse@archlinux ~]$ paccheck --opt-depends --quiet --recursive > /tmp/check_3.txt [rocketmouse@archlinux ~]$ paccheck --opt-depends --quiet > /tmp/check_4.txt [rocketmouse@archlinux ~]$ diff /tmp/check_3.txt /tmp/check_4.txt; echo $? 0
On 2/21/20 4:27 PM, Ralf Mardorf via arch-general wrote:
On Fri, 21 Feb 2020 22:22:14 +0100, Ralf Mardorf wrote:
I suspect that paccheck's recursive option is unneeded.
Doing a few tests, the quite option seems to have no impact either.
paccheck --opt-depends
or
paccheck --opt-depends PACKAGE_NAME
seems to provide the same output as
paccheck --opt-depends --quiet --recursive
Check again. $ paccheck --opt-depends bash bash: all optional dependencies satisfied $ $ paccheck --opt-depends --quiet bash $ -- Eli Schwartz Bug Wrangler and Trusted User
On 2/21/20 4:22 PM, Ralf Mardorf via arch-general wrote:
I suspect that paccheck's recursive option is unneeded.
I don't understand how you could possibly think so? The recursive option plainly makes it *recursive*, i.e. it lists the uninstalled optdepends for all your dependencies. This is quite important, for example, if you are using a program named "epiphany" which does HTML rendering via webkit2gtk and you wish to know why it doesn't play media. The --recursive flag will go through all the dependencies and show that *epiphany* is not playing media because *webkit2gtk* is missing its optional dependencies on gst-plugins-good gst-plugins-bad. -- Eli Schwartz Bug Wrangler and Trusted User
On Fri, 2020-02-21 at 17:19 -0500, Eli Schwartz via arch-general wrote:
On 2/21/20 4:22 PM, Ralf Mardorf via arch-general wrote:
I suspect that paccheck's recursive option is unneeded.
I don't understand how you could possibly think so? The recursive option plainly makes it *recursive*, i.e. it lists the uninstalled optdepends for all your dependencies. This is quite important, for example, if you are using a program named "epiphany" which does HTML rendering via webkit2gtk and you wish to know why it doesn't play media. The --recursive flag will go through all the dependencies and show that *epiphany* is not playing media because *webkit2gtk* is missing its optional dependencies on gst-plugins-good gst-plugins-bad.
Good point!
On Fri, 2020-02-21 at 14:11 -0500, Jude DaShiell wrote:
Can pacman be used to find which packages are missing which optional dependencies after an install?
In the Internet I found "For example with xmms2: pacman -Qi xmms2 | sed -n '/^Optional/,$p' | sed '/^Required/q' | head -n -1 | cut -c19- | cut -d: -f1 " - https://unix.stackexchange.com/questions/53080/list-optional-dependencies-wi... so I reedited it to for i in $(pacman -Q | cut -d\ -f1); do echo "##### "$i; pacman -Qi $(pacman -Q $i| cut -d\ -f1) | sed -n '/Deps/,$p' | sed '/^Required/q' | grep -v Required\ By | grep -v None | grep -v installed] ; done To install all packages "sudo pacman -S --asdeps $(pactree -l wine)" - https://confluence.jaytaala.com/display/TKB/Install+a+package+with+all+optio... might do the job.
participants (5)
-
Chris Billington
-
Eli Schwartz
-
Jude DaShiell
-
ProgAndy
-
Ralf Mardorf