This is in part a duplicate of these questions:
Although since apt
has a new, simplified, slightly snazzier interface I'll use the new version here and make the common point more clear.
I know that these include files should have also been installed by apt-get
Really? Why?
Library packages are usually installed as dependencies of other binaries. To serve at runtime, the include/header files (i.e., .h
files) are not required, so these are kept in a separate -dev
package (there may be other non-essential odds and ends as well, and possibly debugging symbols are in yet another package, but gdb
should explain this to you when you need them).
So to find it, a general approach might be:
apt search libfcgi | grep -B 2 dev
The -B 2
here includes the two previous lines of the search hit, since the output of apt search
(vs. the older style apt-cache search
) is is split across several lines and the description will be on one of its own preceded by the package name. In this case it's actually unnecessary since we're looking for a hit on part of the package name (dev
) and so the output ends up as:
Sorting...
Full Text Search...
libfcgi-dev/stable 2.4.0-8.3 armhf
So the headers can probably be installed via apt install libfcgi-dev
. Likely in this case so are the static archives (see below).
Another way of doing this, which provides more confirmation, is to apt install apt-file
, then e.g.:
> apt-file search fcgi_config.h
libfcgi-dev: /usr/include/fcgi_config.h
Beware while this one works, it is dependent on the package database info being correct, which is sometimes not the case on Raspbian -- presumably it happens when lib packages must be split in odd ways but there is not the resources people wise to manage them all properly. There are a few examples of this coming up.
I should get the source and compile it on the Pi
This is rarely necessary and should only be done as a last resort or because you need a particular version of something which is unavailable. In that case you install to /usr/local
and subsequently run ldconfig
for libraries so the linker will index them.
make complains that @LIBTOOL@ is missing
Solving this involves the same general approach...
apt search libtool
There are various hits but hint, it's just libtool
. There should be some meta package that's good for that and various other things such as "build-essential" but I am not sure what it is called (although a quick search for "linux debian apt install build essential" confirms that it is; remember, Raspbian is essentially Debian but Debian is much more extensively documented, so searching that way will lead to better results; you'll likely also get Ubuntu hits but those are very often applicable as well, particularly when it comes to package names).
gcc's man pages are absent
That's an odd one but I notice it's true on Raspbian even when gcc is installed. apt search gcc | grep doc
turns up various doc
packages.
Looking in /usr/share/man
, you can see man pages on Raspbian are installed in gzipped form with a section number suffix, e.g., foobar.3.gz
. The basename is the name of the man page; from the descriptions of man page sections in man man
section 1 ("Executable programs or shell commands") is a good guess, but apt-file search gcc.1.gz
implies some odd things, one of which is that the gcc
package includes a c89-gcc
and c99-gcc
man page -- but these are just short stubs.
Sometimes the online Debian search works better, and trying gcc.1.gz
via Search the contents of packages does claim it's in gcc-doc
, except here we have a discrepancy -- there is no such package in Raspbian. They've done something odd again. I believe this is consequent of the fact that the architecture doesn't correspond to any of the Debian ARM branches (including armhf
-- don't get confused by this), and the core C library and compiler are very specifically for ARM1176JZ(F)-S.
But there is a gcc-4.9-doc
, and subsequent to apt install gcc-4.9-doc
(a zany 14 MB...), you'll have a man gcc
. It may actually be in the dependency, gcc-doc-base
but a further likely Raspbian specific flub is that dpkg -L
doesn't show it in either one (or anything that would add up to 14 MB). Go figure. This is probably also why apt-file
doesn't find it properly.
Can somebody please point me to a COMPLETE libfcgi package for the Raspberry Pi 3?
The online Debian search claims it is in the -dev
package. apt-file search
on Raspbian doesn't find it, but as we've seen, it is imperfect. Since you're installing the dev package anyway, check to see if it's in /usr/lib
subsequently:
find /usr/lib -name libfcgi.a
If it's not, it has been left out and presumably either you make do with the .so
or else build from source.