Peter,<div><br></div><div>Thanks for the quick reply.</div><div><br></div><div>Hmm, the issue is it's an incredibly locked down environment, unfortunately. Even getting the sysadmins to install specified packages from say OpenCSW would be a bureacratic nightmare. We're still stuck on GCC 3.x, vi (not vim), Python 2.3 etc. Hence why we're looking at using something like OpenCSW or Blastwave, or compiling ourselves.</div>

<div><br></div><div>So pkgutil ultimately runs pkgadd/pkgrm, which we can't run as non-root.</div><div><br></div><div>Would it be possible to perhaps install Solaris on our own machine, setup OpenCSW and install the packages, then transplant those installed packages onto the box? As in, we'd copy the /opt/csw directory to our own prefix, and edit our PATH/LD_LIBRARY_PATH to run from there?</div>

<div><br></div><div>It's an ugly hack, and I guess we lose things like easy upgrades, centralised package management, and easy removes, but it's probably a whole lot better than compiling ourselves from scratch.</div>

<div><br></div><div>Failing that, are the compile flag, patches, and procedures for building the packages perhaps documented anywhere? We might be able to replicate it on our boxes in our own prefix.</div><div><br></div>
<div>
Cheers,</div><div>Victor</div><div><br><div class="gmail_quote">On Fri, Jul 22, 2011 at 19:16, Peter Bonivart <span dir="ltr"><<a href="mailto:bonivart@opencsw.org">bonivart@opencsw.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On Fri, Jul 22, 2011 at 8:40 AM, Victor Hooi <<a href="mailto:victorhooi@yahoo.com">victorhooi@yahoo.com</a>> wrote:<br>
> Hi,<br>
> I'm hoping to use pkgutil and OpenCSW is a rather locked-down environment,<br>
> where we do not have root access to the boxes.<br>
<br>
</div>I'm sorry to say but I think you will have little success with this.<br>
:( Is there really no other option like having the sysadmin do<br>
installs for you, have your own zone or something? Or get specific<br>
sudo access?<br>
<div class="im"><br>
> Basically, I need to run pkgutil as a normal user, and have it install all<br>
> packages/libraries into it's own prefix (we do have a common directory which<br>
> we have ownership of).<br>
> Are there any notes or tricks we could use to achieve this? I couldn't seem<br>
> to find anything on the wiki, and the nearest thing I could find was an old<br>
> blog post from 2009, which involves simply extracting Solaris SVR4 packages,<br>
> not quite what I wanted:<br>
> <a href="http://blogs.oracle.com/LetTheSunShineIn/entry/non_root_install_of_blastwave" target="_blank">http://blogs.oracle.com/LetTheSunShineIn/entry/non_root_install_of_blastwave</a><br>
> 1. Getting pkg-util<br>
> The first step is to get pkgutil. I have version 2.4 downloaded from here:<br>
> <a href="http://buildfarm.opencsw.org/experimental/bonivart/pkgutil-2.4,REV=2011.06.29-SunOS5.9-all-CSW.pkg" target="_blank">http://buildfarm.opencsw.org/experimental/bonivart/pkgutil-2.4,REV=2011.06.29-SunOS5.9-all-CSW.pkg</a><br>


> Since I don't have root access, I simply ran pkgtrans to get the actual<br>
> files. I can run the pkgutil perl script itself, however I'm not sure what<br>
> to do with the other required files in the archive (e.g. admin, etc,<br>
> wget-i386/sparc etc.).<br>
> How should I install properly pkg-util to run as non-root under a specific<br>
> prefix (e.g. /my_prefix/)?<br>
<br>
</div>Take a look here how the files are laid out:<br>
<a href="http://www.opencsw.org/search/pkgutil/" target="_blank">http://www.opencsw.org/search/pkgutil/</a>. But it's only the admin file<br>
that is important. By default if you're running pkgutil as non-root it<br>
will create a ~/.pkgutil directory for the catalog, admin file and so<br>
on. If you already have wget somewhere you don't need the included<br>
one, it's just a last resort. Most options can be set on the command<br>
line (every option with the --param option) but if you want a config<br>
file you can put it anywhere and call it with --config.<br>
<div class="im"><br>
> 2. Running pkg-util<br>
><br>
> I saw it mentioned here, for version 2.0 of pkgutil that it has non-root<br>
> abilities, but I'm not sure how to trigger this:<br>
> <a href="http://pkgutil.wikidot.com/release-history#toc4" target="_blank">http://pkgutil.wikidot.com/release-history#toc4</a><br>
> What's the best way of running pkg-util as non-root, and having it install<br>
> into our own prefix?<br>
<br>
</div>The problem is not pkgutil itself, it's that the Solaris pkg tools<br>
(pkgadd/pkgrm and so on) are root-only when they modify stuff. So the<br>
only things pkgutil can do as non-root are catalog related (like<br>
pkgutil -a) and pure info commands like the ones calling pkginfo.<br>
<br>
The other problem is that the packages themselves usually are not relocatable.<br>
<div class="im"><br>
> 3. Local OpenCSW Mirror<br>
> The other issue is that we don't have direct access from these machines to<br>
> the internet (due to firewalling).<br>
> What steps would I take to setup our own local OpenCSW mirror within our<br>
> network (we probably can guess root access to this machine, assuming it<br>
> doesn't have to be Solaris, and setup a webserver of our choice), and how<br>
> should we go about pointing our pkg-util utility at this instance?<br>
<br>
</div>First you need to rsync from an official mirror, it's described on<br>
<a href="http://www.opencsw.org/mirrors" target="_blank">www.opencsw.org/mirrors</a>, then you just set your mirror options in<br>
pkgutil.conf to point to your web server. You can also use the file://<br>
protocol if it's an NFS share.<br>
<br>
mirror=<a href="http://yourwebserver/csw" target="_blank">http://yourwebserver/csw</a><br>
mirror=file:///cswshare<br>
<br>
/peter<br>
_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@lists.opencsw.org">users@lists.opencsw.org</a><br>
<a href="https://lists.opencsw.org/mailman/listinfo/users" target="_blank">https://lists.opencsw.org/mailman/listinfo/users</a><br>
</blockquote></div><br></div>