5 of 7
added 387 characters in body
goldilocks
  • 58.9k
  • 17
  • 112
  • 227

This is more or less a duplicate of these questions:

Although since apt has a new simplified, slightly snazzier interface I'll give the new version 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 shared 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 one of mine. 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; based on the description of man page sections in man man 1 is a pretty good guess here, but apt-file search gcc.1.gz implies some odd things, one of which is that the gcc package includes a c89-gcc man page and a c99.gcc -- 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 rare discrepancy -- there is no such package in Raspbian. They've done something odd again.

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.

Can somebody please point me to a COMPLETE libfcgi package for the Raspberry Pi 3?

Dunno why you'd want the static lib, but 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.

goldilocks
  • 58.9k
  • 17
  • 112
  • 227