Non-root install of blastwave(opencsw) packages
I wanted to run Wireshark on Solaris10 where I don't have root privelege. Wireshark itself is on blastwave already.
Blastwave.org - An OpenSolaris Community Site
Good! But it has 35 dependencies. How can I extract those dynamic link libraries(*.so files) under my home directory efficiently?
Here, a sh script which I wrote a year ago helps. It doesn't even use pkg-get or pkgutil. But..., my script is for downloading packages only. "*.so.*" files in the packages needs to be extracted somewhere.
I googled and I found a python code fragment to extract files from package and create bunch of symbolic links. So..., I thought if my sh script and this python code are combined, The whole process of downloading dependent packages and extracting to one's virtual root(~/csw) can be fully automated.
utils.py - release/pyutils - Code Search
This time, I didn't use this python. Instead I used bash one-liners which roughly looks like this:
BTW, this search result got me interested. Why the heck does Mono have to deal with Solaris package? I thought Mono is .net framework for Linux. So, I checked project's home page and learned I was wrong!
Mono:Solaris - Mono
Blastwave.org - An OpenSolaris Community Site
description Wireshark (was Ethereal) is a free network protocol analyzer
vendor url http://www.wireshark.org/
Good! But it has 35 dependencies. How can I extract those dynamic link libraries(*.so files) under my home directory efficiently?
Here, a sh script which I wrote a year ago helps. It doesn't even use pkg-get or pkgutil. But..., my script is for downloading packages only. "*.so.*" files in the packages needs to be extracted somewhere.
I googled and I found a python code fragment to extract files from package and create bunch of symbolic links. So..., I thought if my sh script and this python code are combined, The whole process of downloading dependent packages and extracting to one's virtual root(~/csw) can be fully automated.
utils.py - release/pyutils - Code Search
for line in pkgmap:
# Matching example:
#1 s none lib/libglib-2.0.so=libglib-2.0.so.0.200.3
try:
(link, target) = re.compile('. . .*? (.*)=(.*)').search(line).groups()
link = link.replace("/opt/csw/", "") # This is for blastwave packages, since they don't use relative paths
os.symlink(target, link)
This time, I didn't use this python. Instead I used bash one-liners which roughly looks like this:
for i in *.pkg.gz do gzcat $i | pkgtrans /dev/stdin . all done mkdir lib mv CSW*/root/opt/csw/X11/lib/lib* CSW*/root/opt/csw/lib/lib* lib cd lib for i in * do ln -s $i $(echo $i | gnused 's/\.[0-9]\+\.[0-9]\+$//') done
BTW, this search result got me interested. Why the heck does Mono have to deal with Solaris package? I thought Mono is .net framework for Linux. So, I checked project's home page and learned I was wrong!
Mono:Solaris - Mono
Mono supports Solaris on SPARC, x86 and x86-64 architectures.
Packages for Mono on Solaris/SPARC are available from our Download page.
Mono is also available as part of Nexenta (http://www.nexenta.com), the Debian-based OpenSolaris (http://www.opensolaris.org) distribution.