When I have installed a package using
apt, is there a way to find out by which command(s) I can run the installed program(s)?
For instance, the package
httpcode is not available as
httpcode, and the package description (
apt show httpcode) does not explain how to run it. How could I have found out that it’s run via
hc from the command line?
There are two slightly hacky workarounds I found:
Assuming that programs are by default installed in
usr/bin, I ran
ls -ltc | head -n 10to find recenlty touched files there, and indeed I found
Similarly to 1,
dpkg -L httpcodereturns a list of files created by installing the package, which also lists
Is there a better solution to this problem that doesn’t hinge upon the intuition of where the program might be stored on disk?
I also found that
man httpcode does open the man page of the program, even though I called it with the package name as argument. Does this always work (if the program provides a manpage)?
Here is Solutions:
We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.
The locations of files (executables, man-pages and other stuff) should conform Filesystem Hierarchy Standard as a rule.
Personally I solve this problem with one of four methods:
It is known that executables are placed in the directories declared in
$ echo $PATH
So one can list all package files with
man dpkgfor details) and find files in
/usr/gamesdirectories. So we can use the following command:
$ dpkg -L httpcode | grep -E "/bin/|/sbin/|/usr/games/" /usr/bin/hc
So we can see that
/usr/bin/hcbelongs to this package.
List all man-pages:
$ dpkg -L httpcode | grep "/man/" /usr/share/man/man1 /usr/share/man/man1/hc.1.gz
So we can see that we can use
For applications with GUI I run search for
$ dpkg -L httpcode | grep ".desktop" $
In this particular case it will not return anything.
With some complicated proprietary (or bad-packaged) stuff this method transforms to reading
Execvariable in the
*.desktopfile – here Telegram is an example:
$ dpkg -L telegram | grep ".desktop" /usr/share/applications/telegram.desktop $ grep Exec $(dpkg -L telegram | grep ".desktop") Exec=/opt/telegram/Telegram -- %u
Execsee Desktop Entry Specification.
For not installed package one can visit https://packages.ubuntu.com and use Search package directories here (for all releases or for selected release), then click on list of files link in the right column of the table:
and one will get the file list:
This list may interpreted manually or by using searchbar in the browser.
If you can create a shortcut for it to the desktop by right clicking it in the Linux equivalent to the start menu then you can access the properties of said shortcut.
Then just use the end of the command that shortcut uses, for EG I just found Google Chrome’s (google-chrome-stable).
BAM there you go. The command to run anything via terminal and/or launcher
Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂