Using Debian packages on other GNU/Linux distros or using Debian unstable on a stable or testing system
I'm re-posting here from comp.lang.ada for the benefit of people
considering doing Debian packages or using the Debian packages on
another GNU/Linux system. The initial question was:
> Is there a way to install the Debian Ada packages on an Ubuntu system?
> Any experience or hints?
I'd suggest creating a chroot and installing Debian in it, then do all
your programming work in the chroot. The procedure is a little
involved if you do it for the first time, but then it is very stable.
I have been using this for years; mu main system runs Debian a 64-bit
testing and my chroots run unstable in 32-bit and 64-bit mode
respectively.
First, install the package debootstrap then read the man page
debootstrap(8). The manual page has a complete example of how to
create a sid (unstable) chroot. You can adjust this to a testing or
stable chroot, at your option.
Second, bind-mount your home directory and mount the /proc, /sys and /
dev/pts pseudo-filesystems in the chroot. You do this by adding lines
to /etc/fstab in your main system and then saying "mount -a" in your
main system as root; here is an excerpt from my own top-level /etc/
fstab:
# unstable
proc /chroot/unstable/proc proc defaults 0 0
none /chroot/unstable/dev/pts devpts defaults 0 0
/var/tmp /chroot/unstable/tmp tmpfs bind 0 0
/home /chroot/unstable/home xfs bind 0 0
Third, copy /etc/passwd, /etc/shadow, /etc/group, /etc/passwd-, /etc/
shadow- and /etc/group- to /chroot/debian/etc to replicate the user
accounts from the main system to the chroot.
Fourth, install the package schroot in your top-level system.
Configure schroot to grant access to the chroot to select non-root
user. Here is an excerpt from my own /etc/shcroot/schroot.conf:
[unstable]
description=Debian sid (amd64)
directory=/chroot/unstable
priority=3
groups=src
aliases=sid,default
Note that my user account belongs to the group "src" in /etc/group;
all members of this group have access to the chroot.
Fifth and last, as your normal user account, do:
$ schroot
(to start a shell in the Debian chroot), or
$ schroot -- aptitude
to start a command (in this case, aptitude) in the chroot.
I routinely run emacs in my main system and launch compilations with M-
x compile and a command such as:
$ schroot -- dpkg-buildpackage -uc -us
or
$ schroot -- gnatmake -P<package>
If you want to run GUI programs (such as gnat-gps) from the chroot,
simply export DISPLAY=:0 so they can see the X server running in your
main system.
HTH
--
Ludovic Brenta.
Reply to: