[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: