On 8/5/05, Chris Boyd <Chris.Boyd at usit.ie> wrote:
> I can't find any package that supplies that file "libbac.a"
> Anyway:
<snipped>
> /usr/local/bin/bin/g++ -c -I. -I.. -g spool.c
> /usr/local/bin/bin/g++ -c -I. -I.. -g status.c
> /usr/local/bin/bin/g++ -c -I. -I.. -g stored_conf.c
> make[1]: *** No rule to make target `../lib/libbac.a', needed by `bacula-sd'. Stop.
> make[1]: Leaving directory `/root/bacula-1.36.3/src/stored'
> make[1]: Entering directory `/root/bacula-1.36.3/src/tools'
> /usr/local/bin/bin/g++ -c -I. -I.. -g bsmtp.c
> make[1]: *** No rule to make target `../lib/libbac.a', needed by `bsmtp'. Stop.
> make[1]: Leaving directory `/root/bacula-1.36.3/src/tools'
> make: *** [install] Error 1
Hi Chris,
listen, I think the root of your problem is you don't have anything
resembling a working build environment. In your first mail you said
that you had had problems installing gcc, how did you actually install
gcc? The correct way (unless you've special reasons to do something
different) is to install it through the package management system.
This is accessible under SuSE via the yast or yast2 setup tool. You
pick packages from a menu, and then click install. This way you can
install the tools you need to compile packages from source, and the
installer will put the tools in the right places so your system can
find them.
I suspect you have installed gcc and friends more or less by hand.
Then you ran into the problem where even though the g++ executable was
present, make couldn't find it because it wasn't in the path. You
fixed this by using CC,CXX exports, but this only works on a
binary-by-binary case (changing PATH might have brought more success).
The problem below (to do with libbac.a) is (I think) because the "ar"
tool is also not in your path. I downloaded and compiled bacula, just
to see where your error fitted in with the build, and the command that
make wants to execute after it compiles stored_conf.c is of the form
g++ -L../lib -o bacula-sd [then a bunch of object.o files] -lz -lbac
... <and so on>
-lbac is short hand telling the compiler/linker to look for libbac.a
This is a library created by bacula during its compilation. The
commands that create this library (or archive) "ar" and "ranlib":
ar rc libbac.a many.o object.o files.o....
ranlib libbac.a
One, other, or both of these executables are (very likely) missing
from your path, so the libbac.a file cannot be created and then later
on further linking operations fail too. If you've installed them
somewhere, you can maybe alter your path to include the relevant
directories, but this is not a good solution and will waste your time
and store up problems for later.
So, my advice is to look in yast and find the appropriate development
tools, and install them. While you're at it, you can probably install
the precompiled bacula from SuSE too (this is probably the optimal
solution), though it might be worthwhile to still finish the
compilation of bacula just to have the satisfaction of getting it to
work (but if you install the binary one from SuSE, do not then install
your self-compiled version).
Michael
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!