Wireshark mailing list archives
Setting PATH and MANPATH on macOS, and moving the command-line executables in the app bundle
From: Guy Harris <guy () alum mit edu>
Date: Sat, 15 Oct 2016 13:55:06 -0700
The master and 2.2 branches have changes to
1) put the man pages into the macOS app bundle under /Applications/Wireshark.app/Contents//Resources/share/man
and
2) add a file named Wireshark, containing
/Applications/Wireshark.app/Contents/Resources/share/man
to /etc/manpaths.d.
/etc/profile, /etc/csh.login, and /etc/zprofile in macOS will run
eval `/usr/libexec/path_helper -s`
for Bourne-compatible shells and
eval `/usr/libexec/path_helper -c`
for the C shell. This will construct a PATH setting from the contents of /etc/paths, and then scan /etc/paths.d for
files and append to that PATH setting entries with the contents of each of those files. That way, an installer that
puts commands in its own directory, whether it's in an app bundle or under, for example, /opt/X11, can arrange to have
login shells default to a PATH setting that includes their directory for commands.
path_helper *also* constructs a MANPATH setting from the contents of /etc/manpaths, and then scans /etc/manpaths.d for
files and appends to that MANPATH setting entries with the contents of each of those files.
However, it only does that if MANPATH has already been set in the environment, and it typically is *NOT* set when
/etc/profile etc. are run.
So, currently, adding that file to /etc/manpaths.d doesn't actually do any good (at least not on El Capitan).
This is presumably because the man command on macOS does a lot of work trying to find man pages in the "appropriate"
place, based on where the commands themselves are found. See SEARCH PATH FOR MAN PAGES in
https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/man.1.html
or, if you have a machine running macOS (under any of its names...), in the man page for the man command.
We might want to put the commands and man pages into the app bundle in a layout with "bin" and "man" directories, such
as
Wireshark.app/Contents/{bin,man}
or
Wireshark.app/Contents/usr/{bin,man}
and put the paths into /etc/paths.d and /etc/manpaths.d. That might not fix the problem for section 4 man pages, but
it would at least fix them for section 1 man pages - and might also mean we wouldn't need to put the wrapper scripts
(or anything else) into /usr/local/bin.
___________________________________________________________________________
Sent via: Wireshark-users mailing list <wireshark-users () wireshark org>
Archives: https://www.wireshark.org/lists/wireshark-users
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-users
mailto:wireshark-users-request () wireshark org?subject=unsubscribe
Current thread:
- Setting PATH and MANPATH on macOS, and moving the command-line executables in the app bundle Guy Harris (Oct 15)
