When they're installed, they'll go in the default prefix setting, namely /usr/local/bin. Put /usr/local/bin in as the first entry in your path.

When they're installed, they'll go in the default prefix setting, namely /usr/local/bin. Put /usr/local/bin in as the first entry in your path.

+

+

+

= Hacking up the system to make it work =

Go into /usr/include, and

Go into /usr/include, and

Line 82:

Line 85:

<tt>ln -s /usr/local/src/linux-2.6.18/include/linux .</tt>

<tt>ln -s /usr/local/src/linux-2.6.18/include/linux .</tt>

−

== Notes ==

+

In /usr/bin, rename python to old_python, and link /usr/local/bin/python here.

+

The build system will complain if you attempt to run it as root, even if it's the bullshit root in a container (it can't tell the difference). Create /home, and then create a user (say "moko") to run the build system. Also, edit /etc/shells and add /usr/local/bin/bash to the list. Finally, edit /etc/passwd and change moko's shell to /usr/local/bin/bash.

The build system will complain if you attempt to run it as root, even if it's the bullshit root in a container (it can't tell the difference). Create /home, and then create a user (say "moko") to run the build system. Also, edit /etc/shells and add /usr/local/bin/bash to the list. Finally, edit /etc/passwd and change moko's shell to /usr/local/bin/bash.

Line 88:

Line 92:

In both root's and that user's .bashrc, pop in these lines:

In both root's and that user's .bashrc, pop in these lines:

−

export PATH=/usr/local/bin/:$PATH

+

export PATH=/usr/local/bin/:$PATH

−

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

+

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

So that your new tool versions & shared libs will get picked up properly.

So that your new tool versions & shared libs will get picked up properly.

Also, add /usr/local/lib to /etc/ld.so.conf (in the zone, obviously), and do an ldconfig after installing gettext.

Also, add /usr/local/lib to /etc/ld.so.conf (in the zone, obviously), and do an ldconfig after installing gettext.

Revision as of 15:52, 24 October 2008

Contents

Building on Solaris

(Well, OpenSolaris)

Most of this is a war of inches, with the enemy using 10,000 paper cuts to bleed your soul dry.

Most likely, he'll win.

The opposition's key weapon is the excessive use of unnecessary features. Not even resulting in bloat, but just growing the dependency graph of installed software on the build system to make the entire thing incredibly sensitive to almost any difference between their build systems and yours.

Hence, why we're going to use a full Linux userland stack to do this. Atop of this, we'll have to upgrade components extensively to make this all work. You're going to hate all this.

But hey, at least you don't actually have to run Linux.

Note and Disclaimer

I'm still working on getting this all to work. Don't actually follow these instructions until I've claimed success. Until then, it's best an amusement to watch from the sidelines.

Onto the Point

After a few dead starts, the best way to build on Solaris is to use a BrandZ Linux zone, and install enough stuff into the CentOS-3 image to make it all work.

This is on a randomly, and partially, upgraded version of OpenSolaris Indiana (2008.5).

As early as you can, build gettext and install it. Then setup LD_LIBRARY_PATH, /etc/ld.so.conf, etc. before moving forward with the rest. Otherwise some of the configures will complain about preloadable_libintl.so.

When they're installed, they'll go in the default prefix setting, namely /usr/local/bin. Put /usr/local/bin in as the first entry in your path.

Hacking up the system to make it work

Go into /usr/include, and

ln -s /usr/local/src/linux-2.6.18/include/linux .

In /usr/bin, rename python to old_python, and link /usr/local/bin/python here.

The build system will complain if you attempt to run it as root, even if it's the bullshit root in a container (it can't tell the difference). Create /home, and then create a user (say "moko") to run the build system. Also, edit /etc/shells and add /usr/local/bin/bash to the list. Finally, edit /etc/passwd and change moko's shell to /usr/local/bin/bash.

Views

Personal tools

Building on Solaris

(Well, OpenSolaris)

Most of this is a war of inches, with the enemy using 10,000 paper cuts to bleed your soul dry.

Most likely, he'll win.

The opposition's key weapon is the excessive use of unnecessary features. Not even resulting in bloat, but just growing the dependency graph of installed software on the build system to make the entire thing incredibly sensitive to almost any difference between their build systems and yours.

Hence, why we're going to use a full Linux userland stack to do this. Atop of this, we'll have to upgrade components extensively to make this all work. You're going to hate all this.

But hey, at least you don't actually have to run Linux.

Note and Disclaimer

I'm still working on getting this all to work. Don't actually follow these instructions until I've claimed success. Until then, it's best an amusement to watch from the sidelines.

Onto the Point

After a few dead starts, the best way to build on Solaris is to use a BrandZ Linux zone, and install enough stuff into the CentOS-3 image to make it all work.

This is on a randomly, and partially, upgraded version of OpenSolaris Indiana (2008.5).

As early as you can, build gettext and install it. Then setup LD_LIBRARY_PATH, /etc/ld.so.conf, etc. before moving forward with the rest. Otherwise some of the configures will complain about preloadable_libintl.so.

When they're installed, they'll go in the default prefix setting, namely /usr/local/bin. Put /usr/local/bin in as the first entry in your path.

Hacking up the system to make it work

Go into /usr/include, and

ln -s /usr/local/src/linux-2.6.18/include/linux .

In /usr/bin, rename python to old_python, and link /usr/local/bin/python here.

The build system will complain if you attempt to run it as root, even if it's the bullshit root in a container (it can't tell the difference). Create /home, and then create a user (say "moko") to run the build system. Also, edit /etc/shells and add /usr/local/bin/bash to the list. Finally, edit /etc/passwd and change moko's shell to /usr/local/bin/bash.