There are a number of other tools that are required to build Zenoss from source (a toolchain). Among them are a C compiler, the make command, and other associated tools.
The Zenoss appliance is based on the rPath Linux 1 (rp11
) distribution.
Troves (like the gcc
toolchain) that are not available on the Zenoss update repository server are generally available from install labels, such as:
conary.rpath.com@rpl:1
The trove candy store is rBuilder Online. Zenoss recommends that you obtain an account there. It provides good search capabilities for packages of interest, and offers forums to assist with appliance-specific questions.
For a gcc
toolchain, try this as the root user:
# conary update --resolve autoconf automake make which \ --install-label="conary.rpath.com@rpl:1" # conary update --resolve gcc=conary.rpath.com@rpl:1 \ --install-label="conary.rpath.com@rpl:devel"
The binutils
trove should already be on the box.
An actual install sequence looked like the ouput below. If the --info switch is used, it is possible to see if everything is going to resolve nicely. And if you are really paranoid, use the --test flag which runs through the update but does not commit the result.
# conary update autoconf automake make which --resolve --info \ --install-label="conary.rpath.com@rpl:1" Install autoconf(:data :doc :runtime)=2.59-7-0.1 Install automake(:data :doc :runtime)=1.9.6-3-0.1 Install m4(:runtime)=1.4.3-4-0.1 Install make(:doc :locale :runtime)=3.80-7.2-1 Install which(:doc :runtime)=2.16-3-0.1 # conary update autoconf automake make which --resolve \ --install-label="conary.rpath.com@rpl:1" Including extra troves to resolve dependencies: m4:runtime=1.4.3-4-0.1 Applying update job: Install autoconf(:data :doc :runtime)=2.59-7-0.1 Install automake(:data :doc :runtime)=1.9.6-3-0.1 Install m4(:runtime)=1.4.3-4-0.1 Install make(:doc :locale :runtime)=3.80-7.2-1 Install which(:doc :runtime)=2.16-3-0.1 # conary update --info --resolve gcc=conary.rpath.com@rpl:1 \ --install-label="conary.rpath.com@rpl:devel" Install gcc(:devel :devellib :doc :lib :locale :runtime)=3.4.4-9.4-1 Install libgcc(:devellib)=4.1.2-11-1[~!gcc.core] # conary update --resolve gcc=conary.rpath.com@rpl:1 \ --install-label="conary.rpath.com@rpl:devel" Including extra troves to resolve dependencies: libgcc:devellib=4.1.2-11-1 Applying update job: Install gcc(:devel :devellib :doc :lib :locale :runtime)=3.4.4-9.4-1 Install libgcc(:devellib)=4.1.2-11-1[~!gcc.core]
Generally try to find something on the rpl:1 branch name and do not mix rpl:2 stuff with the rpl:1 stuff. In some cases, you may have to resort to pulling a trove from the rpl:devel branch if it cannot find it elsewhere. That's what happened above when trying to resolve the libgcc
dependency for the gcc
trove. Adding the extra --install-label
option was necessary so that libgcc
could be found. How could you know it was on rpl:devel? Go to rBuilder Online and search for that package and it should tell you.
If you want to see where the files for a trove are installed:
# conary q trove_name
--lsl
[code]# conary q gcc --lsl
...
lrwxrwxrwx 1 root root 3 2004-07-07 17:04:44 UTC /usr/bin/cc -> gcc
-rwxr-xr-x 1 root root 81452 2006-06-19 18:02:30 UTC /usr/bin/gcc
-rwxr-xr-x 1 root root 16134 2005-10-15 07:22:42 UTC /usr/bin/gccbug
...
Lastly, conary makes it relatively easy to run-away if you're not happy with a trove you've installed. Use conary rblist to see what packages have been committed to the conary stack.
# conary rblist | more r.3: installed: gcc(:devel :devellib :doc :lib :locale :runtime) conary.rpath.com@rpl:1/3.4.4-9.4-1 installed: libgcc(:devellib) conary.rpath.com@rpl:devel/4.1.2-11-1 r.2: installed: autoconf(:data :doc :runtime) conary.rpath.com@rpl:1/2.59-7-0.1 installed: automake(:data :doc :runtime) conary.rpath.com@rpl:1/1.9.6-3-0.1 installed: m4(:runtime) conary.rpath.com@rpl:1/1.4.3-4-0.1 r.1: updated: info-raa-web(:user) products.rpath.com@rpath:raa-2/1-1.1-2 -> 1-1.3-2 ...
Here is how you would remove the gcc
trove that was just installed:
# conary rb r.3 Applying update job: Erase gcc(:devel :devellib :doc :lib :locale :runtime)=3.4.4-9.4-1 Erase libgcc(:devellib)=4.1.2-11-1[~!gcc.core] # conary q gcc gcc was not found
Be careful which troves you remove!