You are not logged in.
Pages: 1
Hello!
I've got limited access on several machines (university labs, my college lab, the place where I used to work), and would like to install on such machines whatever I want to.
To do that I often compile apps by hand, setting "~/.local" as prefix thru configure/cmake options. This is pretty nasty tho, especially if I got lots of stuff to install. So I got an idea: installing pacman and ABS on such machines (in my ~/.local directory) and then compile whatever I need to, using pacman and arch's PKGBUILDs...
Anybody ever tried to do something like this?
Will it be easy to install pacman and abs on ubuntu/fedora/whatever in my home dir?
Will I need to patch it so that it won't check uid=0 nomore?
Anything else?
Last edited by peoro (2009-12-20 20:08:48)
Offline
...would have thought that more people were interested in installing whatever thru pacman on machines where they've got only limited access...
Anyhow, if anybody is interested, I think I could be getting to somethng...
Pacman compiled just fine on this ubuntu. Removing its check on UID was trivial, I got it by commenting a couple of lines in a source file, but running it on fakeroot should do the trick as well.
Now I can see two possible ways to install and use the software I need:
1. fastest but hackest way: installing arch's precompiled/official packages via pacman, and pretending the directory where they're installed is the root of a guest(/virtual) ArchLinux.
Pacman.conf's RootDir option allows to install packages in a custom directory instead of /. This way you can install whatever, from arch's repos to your custom dir (let's say ~/arch/) justing running `pacman -S xxx`
Using something like fakeroot-ng we can chroot, as user, on our guest-arch's root system (as said ~/arch/).
There are two problems tho:
1.1: arch software might not be compatible with host system's stuff (on the ubuntu I'm playing with, I got glibc 2.10.1, while arch provides 2.11.1; for this reason I couldn't run anything linked to arch's libs). I'm not sure whether this problem can be fixed: in my case I just replaced all the most basilar libraries from ubuntu (/lib/*2.10.1*) with arch's ones (arch/lib/*2.11.1*); it looks like kind of everything is running fine now, but well, it's likely there'll be something which won't work.
1.2: our guest-arch system hasn't got access to /proc, /dev, /sys and so on, and since we're not root we cannot `mount --bind` them. Anyway I think it'll be easy to virtually create them using something like fuser, or, if fuser isn't available, patching fakeroot-ng.
2. slowest but cleanest (and for-sure-working) way: building software on/for our host system using arch's makepkg and installing them in our home dir.
To do this we need to get the PKGBUILD of ALL the packages we need (they're hundreds!), patching them so that they set our home directory as package's prefix, and using them to build and install the package: if we don't patch the PKGBUILDs, some software won't be able to run. Besides anybody of us (who's interested...) will have to compile everything on his own.
If somebody is interested in this thing we could think about creating an SVN repository for patched PKGBUILDs (an alternative to ABS' tree), or to ask developers/mantainers/TUs to use a variable (similar to $RootDir), instead of /, as prefix for all arch's PKGBUILDs (well, I guess this latter thing will never happen, although it sounds so clean to me)...
...Fakeroot systems and package managers will soon join my dreams :F Good night!
Offline
If you are aiming for the second option, it sounds like pkgsrc from netbsd, or gentoo-prefix portage tree. ABS is not easy to deal with, because it can not resolve dependencies automatically. You might be benefited from Gentoo Prefix Techdocs and Importing ebuilds in Gentoo Prefix. It is certainly not an easy task. Wish you good luck.
Offline
Yes, thanks, that's exactly what I was looking for. A secondary package manager...
I think it shouldn't be too tough to adapt pacman and related tools (makepkg, ABS, ...) to such goal, but unless others are interested I'll go for portage-prefix way...
Offline
Pages: 1