Tuesday, August 25, 2009

Using the binary kit with your ZFS storage

With this release some binaries like top, rsync and less, were requested. Update: Transmission torrent cli and web admin added since binary kit 124. I attempted to do so in the form of a binary kit. This provides the controls to build your own binary package. The kit was built using the pkgadd and then tar-ing and gzip-ing the bin, sbin, and lib directories. This method will not work for every package but it's an attempt to fill a gap for certain binaries.

So, how do you use the kit? First upload a binary kit from here to your zpool storage (/zpool name is /abyss in this case). Then unpack the kit using (updated: Since bin-124.tgz):
cd /abyss
mkdir local
cd local
gzip -dc bin-124.tgz | tar -xvf -
Then make the /mnt/eon0/.exec entries
(cd /usr ; ln -s ../abyss/local .)
(cd /usr/lib ; ln -s ../../abyss/local/lib/smedia .)
Proper forking between 32/64-bit binaries is not working (example: top, powertop) because it relies on hard linking /usr/lib/isaexec and that requires being on the same filesystem (Hmmm). For now I recommend symlinking the respective 32 or 64-bit binary, /pool/local/bin/i86/top or /pool/local/bin/amd64/top to /pool/local/bin/top as needed.

8 comments:

Andre Lue said...

Bob S,

Thanks for pointing out that
cd local
was omitted from the steps.

Erwin said...
This comment has been removed by the author.
Erwin said...

Hi,
First off a big thank you for your efforts in providing EON!

I'm trying to get going with EON. (purpose is creating a NAS box, and get some experience with OSOL & ZFS)

I'm using a POV ION mobo, and installed EON to a 4 GB usb stick.
At the mo I have connected 1 (one) 1 TB hd, and created a zpool named universe. I've also created zfs universe/local.

I've copied over the binary-kit, but get an error when I try to create the links.

# code
eon:43:/usr#ln -s ../universe/local .
ln: cannot create ./local: File exists
# end code

Where am I missing?

Thanks for helping out!
Erwin

Erwin said...

Ah, got it :-)
Your ln's to your pool called abyss were present...
So I first deleted those before creating the links.

Thanks!

Erwin said...

Hi André,

I (think) I installed the binary kit allright.
Some questions though:
I'm not very familiar with OSOL, how can I verify the binary kit is properly installed?
I assume it adds quite some functionality otherwise unavailable in EON.
I would like to get GNU screen installed on my EON sytem (http://www.sun.com/bigadmin/features/articles/gnu_screen.jsp

I noticed these lines in /mnt/eon0/.exec:
----------------------------------
# binary kit symlink entries
(cd /usr ; ln -s ../../${POOL}/local .)
(cd /usr/lib ; ln -s ../../${POOL}/local/lib/dns .)
(cd /usr/lib ; ln -s ../../${POOL}/local/lib/ldap .)
(cd /usr/lib ; ln -s ../../${POOL}/local/lib/smedia .)
----------------------------------
Do they create the links automagically or do they need to be edited manually according to my POOL name?

Thanks a lot & keep up the good work!

Erwin

Erwin said...

So how do I set up a build environment to compile etc?
-----------------------------------
eon:13:/universe/local/screen-4.0.3#./configure
this is screen version 4.0.3
checking for prefix by checking for screen... no
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
eon:14:/universe/local/screen-4.0.3#
----------------------------------

Thanks for helping out!

Erwin

Andre Lue said...

Hi Erwin,

Yes, as long the zpool name is defined it will create the symlinks automatically at boot time.

gnu screen is included binary kit 130.

To compile, all you need is the xsconf.xxx file (download section) and a working Sun Studio 12 or GCC compiler. The xsconf file will define the compiler environment for the respective program being built.

Unknown said...

Where can I find bin-124.tgz ?

Thanks,
Maurizio