From: William S. <wst...@po...> - 2002-01-16 17:51:28
|
Good day, Michael, On Thu, 8 Nov 2001, Michael Richardson wrote: > I want to write a shell script to load a set of directories with > a given installation of RedHat. > > I.e. I want to do: > > root=/c2/user-mode-linux/rpm-root/root > mkdir -p $root/var/lib/rpm > > d=/c3/distros/redhat/7.2/disc1/RedHat/RPMS > > nri() { > rpm --root=$root -i `for i; do echo $d/$i; done` > } > > rpm --root=$root --initdb > > ( while read rpm > do > nri $rpm > done ) <<EOF > ... > > EOF > > My problem is that I can't see to figure out which RPM is the root of > all RPMs. Which one gets installed first? Pointers to documentation would > be just fine... They all declare what they depend on, so there's no true "root" package. You're right, though, there is some ordering involved. The process gets fun when two packages depend on each other. Here's the ordered list of packages for rh-7.2-full: /usr/src/rh-7.2-source/glibc-common-2.2.4-19.3.i386.rpm /usr/src/rh-7.2-source/setup-2.5.7-1.noarch.rpm /usr/src/rh-7.2-source/filesystem-2.1.6-2.noarch.rpm /usr/src/rh-7.2-source/basesystem-7.0-2.noarch.rpm /usr/src/rh-7.2-source/glibc-2.2.4-19.3.i686.rpm /usr/src/rh-7.2-source/mktemp-1.5-11.i386.rpm /usr/src/rh-7.2-source/termcap-11.0.1-10.noarch.rpm /usr/src/rh-7.2-source/libtermcap-2.0.8-28.i386.rpm /usr/src/rh-7.2-source/bash-2.05-8.i386.rpm /usr/src/rh-7.2-source/bdflush-1.5-17.i386.rpm /usr/src/rh-7.2-source/shadow-utils-20000902-4.i386.rpm /usr/src/rh-7.2-source/ncurses-5.2-12.i386.rpm /usr/src/rh-7.2-source/info-4.0b-3.i386.rpm /usr/src/rh-7.2-source/fileutils-4.1-4.i386.rpm /usr/src/rh-7.2-source/sed-3.02-10.i386.rpm /usr/src/rh-7.2-source/textutils-2.0.14-2.i386.rpm /usr/src/rh-7.2-source/dev-3.2-5.i386.rpm /usr/src/rh-7.2-source/gawk-3.1.0-3.i386.rpm /usr/src/rh-7.2-source/diffutils-2.7.2-2.i386.rpm /usr/src/rh-7.2-source/mount-2.11g-5.i386.rpm /usr/src/rh-7.2-source/cracklib-2.7-12.i386.rpm /usr/src/rh-7.2-source/words-2-17.noarch.rpm /usr/src/rh-7.2-source/cracklib-dicts-2.7-12.i386.rpm /usr/src/rh-7.2-source/glib-1.2.10-5.i386.rpm /usr/src/rh-7.2-source/pwdb-0.61.1-3.i386.rpm /usr/src/rh-7.2-source/mingetty-0.9.4-18.i386.rpm /usr/src/rh-7.2-source/e2fsprogs-1.23-2.i386.rpm /usr/src/rh-7.2-source/procps-2.0.7-11.i386.rpm /usr/src/rh-7.2-source/chkconfig-1.2.24-1.i386.rpm /usr/src/rh-7.2-source/popt-1.6.3-1.03.i386.rpm /usr/src/rh-7.2-source/logrotate-3.5.9-1.i386.rpm /usr/src/rh-7.2-source/sysklogd-1.4.1-4.i386.rpm /usr/src/rh-7.2-source/psmisc-20.1-2.i386.rpm /usr/src/rh-7.2-source/which-2.12-3.i386.rpm /usr/src/rh-7.2-source/grep-2.4.2-7.i386.rpm /usr/src/rh-7.2-source/modutils-2.4.6-4.i386.rpm /usr/src/rh-7.2-source/db3-3.2.9-4.i386.rpm /usr/src/rh-7.2-source/zlib-1.1.3-24.i386.rpm /usr/src/rh-7.2-source/gzip-1.3-15.i386.rpm /usr/src/rh-7.2-source/tar-1.13.19-6.i386.rpm /usr/src/rh-7.2-source/losetup-2.11g-5.i386.rpm /usr/src/rh-7.2-source/findutils-4.1.7-1.i386.rpm /usr/src/rh-7.2-source/mkinitrd-3.2.6-1.i386.rpm /usr/src/rh-7.2-source/pam-0.75-19.i386.rpm#/usr/src/rh-7.2-source/util-linux-2.11f-17.i386.rpm#/usr/src/rh-7.2-source/initscripts-6.40-1.i386.rpm#/usr/src/rh-7.2-source/iproute-2.2.4-14.i386.rpm#/usr/src/rh-7.2-source/iputils-20001110-6.i386.rpm#/usr/src/rh-7.2-source/SysVinit-2.78-19.i386.rpm#/usr/src/rh-7.2-source/sh-utils-2.0.11-5.i386.rpm##/usr/src/rh-7.2-source/net-tools-1.60-3.i386.rpm##/usr/src/rh-7.2-source/kernel-2.4.9-13.i686.rpm /usr/src/rh-7.2-source/quota-3.01pre9-3.i386.rpm /usr/src/rh-7.2-source/tcp_wrappers-7.6-19.i386.rpm /usr/src/rh-7.2-source/openssl-0.9.6b-8.i386.rpm /usr/src/rh-7.2-source/bind-utils-9.1.3-4.i386.rpm /usr/src/rh-7.2-source/iptables-1.2.4-2.i386.rpm /usr/src/rh-7.2-source/vixie-cron-3.0.1-63.i386.rpm /usr/src/rh-7.2-source/binutils-2.11.90.0.8-9.i386.rpm /usr/src/rh-7.2-source/passwd-0.64.1-7.i386.rpm /usr/src/rh-7.2-source/indexhtml-7.2-1.noarch.rpm /usr/src/rh-7.2-source/gdbm-1.8.0-10.i386.rpm /usr/src/rh-7.2-source/db1-1.85-7.i386.rpm /usr/src/rh-7.2-source/compat-glibc-6.2-2.1.3.2.i386.rpm /usr/src/rh-7.2-source/perl-5.6.0-17.i386.rpm /usr/src/rh-7.2-source/lynx-2.8.4-17.i386.rpm /usr/src/rh-7.2-source/gpm-1.19.3-20.i386.rpm /usr/src/rh-7.2-source/mc-4.5.51-36.i386.rpm /usr/src/rh-7.2-source/tcpdump-3.6.2-9.i386.rpm /usr/src/rh-7.2-source/strace-4.3-2.i386.rpm /usr/src/rh-7.2-source/traceroute-1.4a12-1.i386.rpm /usr/src/rh-7.2-source/less-358-21.i386.rpm /usr/src/rh-7.2-source/libstdc++-2.96-98.i386.rpm /usr/src/rh-7.2-source/groff-1.17.2-3.i386.rpm /usr/src/rh-7.2-source/man-1.5i2-6.i386.rpm /usr/src/rh-7.2-source/console-tools-19990829-36.i386.rpm /usr/src/rh-7.2-source/bzip2-libs-1.0.1-4.i386.rpm /usr/src/rh-7.2-source/rpm-4.0.3-1.03.i386.rpm /usr/src/rh-7.2-source/vim-common-5.8-7.i386.rpm /usr/src/rh-7.2-source/vim-minimal-5.8-7.i386.rpm /usr/src/rh-7.2-source/vim-enhanced-5.8-7.i386.rpm /usr/src/rh-7.2-source/telnet-0.17-20.i386.rpm /usr/src/rh-7.2-source/readline-4.2-2.i386.rpm /usr/src/rh-7.2-source/ftp-0.17-12.i386.rpm /usr/src/rh-7.2-source/openssh-2.9p2-12.i386.rpm /usr/src/rh-7.2-source/openssh-clients-2.9p2-12.i386.rpm /usr/src/rh-7.2-source/ircii-4.4Z-7.i386.rpm /usr/src/rh-7.2-source/cpp-2.96-98.i386.rpm /usr/src/rh-7.2-source/kernel-headers-2.4.9-13.i386.rpm /usr/src/rh-7.2-source/glibc-devel-2.2.4-19.3.i386.rpm /usr/src/rh-7.2-source/gcc-2.96-98.i386.rpm /usr/src/rh-7.2-source/fvwm2-icons-2.2.5-4.i386.rpm /usr/src/rh-7.2-source/freetype-2.0.3-7.i386.rpm /usr/src/rh-7.2-source/XFree86-libs-4.1.0-3.i386.rpm /usr/src/rh-7.2-source/fvwm2-2.2.5-4.i386.rpm /usr/src/rh-7.2-source/libpng-1.0.12-2.i386.rpm /usr/src/rh-7.2-source/libjpeg-6b-16.i386.rpm /usr/src/rh-7.2-source/libtiff-3.5.5-13.i386.rpm /usr/src/rh-7.2-source/netpbm-9.14-2.i386.rpm /usr/src/rh-7.2-source/netpbm-progs-9.14-2.i386.rpm /usr/src/rh-7.2-source/gtk+-1.2.10-11.i386.rpm /usr/src/rh-7.2-source/libungif-4.1.0-9.i386.rpm /usr/src/rh-7.2-source/imlib-1.9.10-2.i386.rpm /usr/src/rh-7.2-source/fnlib-0.5-9.i386.rpm /usr/src/rh-7.2-source/audiofile-0.2.1-2.i386.rpm /usr/src/rh-7.2-source/esound-0.2.22-5.i386.rpm /usr/src/rh-7.2-source/enlightenment-0.16.4-11.i386.rpm /usr/src/rh-7.2-source/XFree86-xfs-4.1.0-3.i386.rpm /usr/src/rh-7.2-source/chkfontpath-1.9.5-2.i386.rpm /usr/src/rh-7.2-source/XFree86-75dpi-fonts-4.1.0-3.i386.rpm /usr/src/rh-7.2-source/XFree86-100dpi-fonts-4.1.0-3.i386.rpm /usr/src/rh-7.2-source/utempter-0.5.2-6.i386.rpm /usr/src/rh-7.2-source/Xaw3d-1.5-10.i386.rpm /usr/src/rh-7.2-source/XFree86-4.1.0-3.i386.rpm#/usr/src/rh-7.2-source/Mesa-3.4.2-7.i386.rpm /usr/src/rh-7.2-source/XFree86-Xnest-4.1.0-3.i386.rpm /usr/src/rh-7.2-source/xsysinfo-1.7-4.i386.rpm /usr/src/rh-7.2-source/xosview-1.7.3-5.i386.rpm /usr/src/rh-7.2-source/XFree86-tools-4.1.0-3.i386.rpm /usr/src/rh-7.2-source/gdk-pixbuf-0.11.0-8.i386.rpm /usr/src/rh-7.2-source/gmp-3.1.1-4.i386.rpm /usr/src/rh-7.2-source/python-1.5.2-35.i386.rpm /usr/src/rh-7.2-source/pygtk-0.6.8-3.i386.rpm /usr/src/rh-7.2-source/ORBit-0.5.8-4.i386.rpm /usr/src/rh-7.2-source/gnome-libs-1.2.13-16.i386.rpm /usr/src/rh-7.2-source/pygnome-1.4.1-3.i386.rpm /usr/src/rh-7.2-source/libxml-1.8.14-2.i386.rpm /usr/src/rh-7.2-source/libglade-0.16-4.i386.rpm /usr/src/rh-7.2-source/pygtk-libglade-0.6.8-3.i386.rpm /usr/src/rh-7.2-source/pygnome-libglade-1.4.1-3.i386.rpm /usr/src/rh-7.2-source/librep-0.13.6-5.i386.rpm /usr/src/rh-7.2-source/rep-gtk-0.15-6.i386.rpm /usr/src/rh-7.2-source/gdk-pixbuf-gnome-0.11.0-8.i386.rpm /usr/src/rh-7.2-source/rep-gtk-gnome-0.15-6.i386.rpm /usr/src/rh-7.2-source/aumix-2.7-5.i386.rpm /usr/src/rh-7.2-source/xloadimage-4.1-21.i386.rpm /usr/src/rh-7.2-source/fortune-mod-1.0-16.i386.rpm /usr/src/rh-7.2-source/redhat-logos-1.1.3-1.noarch.rpm /usr/src/rh-7.2-source/xscreensaver-3.33-4.i386.rpm /usr/src/rh-7.2-source/oaf-0.6.5-10.i386.rpm /usr/src/rh-7.2-source/GConf-1.0.4-3.i386.rpm /usr/src/rh-7.2-source/gnome-vfs-1.0.1-17.i386.rpm /usr/src/rh-7.2-source/control-center-1.4.0.1-18.i386.rpm /usr/src/rh-7.2-source/sawfish-0.38-11.i386.rpm /usr/src/rh-7.2-source/urw-fonts-2.0-12.noarch.rpm /usr/src/rh-7.2-source/VFlib2-2.25.1-20.i386.rpm /usr/src/rh-7.2-source/ttfonts-ja-1.0-7.noarch.rpm /usr/src/rh-7.2-source/Omni-0.5.0-4.i386.rpm /usr/src/rh-7.2-source/ghostscript-6.51-16.i386.rpm#/usr/src/rh-7.2-source/ghostscript-fonts-5.50-3.noarch.rpm /usr/src/rh-7.2-source/libgnomeprint15-0.29-6.i386.rpm#/usr/src/rh-7.2-source/gnome-print-0.29-6.i386.rpm /usr/src/rh-7.2-source/gnome-core-1.4.0.4-38.i386.rpm /usr/src/rh-7.2-source/scrollkeeper-0.2-6.i386.rpm /usr/src/rh-7.2-source/switchdesk-3.9.7-1.i386.rpm /usr/src/rh-7.2-source/xinitrc-3.20-1.noarch.rpm /usr/src/rh-7.2-source/usermode-1.46-1.i386.rpm /usr/src/rh-7.2-source/xsri-2.0.3-1.i386.rpm /usr/src/rh-7.2-source/gdm-2.2.3.1-20.i386.rpm /usr/src/rh-7.2-source/xinetd-2.3.3-1.i386.rpm /usr/src/rh-7.2-source/mailcap-2.1.6-1.noarch.rpm /usr/src/rh-7.2-source/file-3.35-2.i386.rpm /usr/src/rh-7.2-source/expat-1.95.1-7.i386.rpm /usr/src/rh-7.2-source/mm-1.1.3-1.i386.rpm /usr/src/rh-7.2-source/apache-1.3.22-2.i386.rpm /usr/src/rh-7.2-source/bind-9.1.3-4.i386.rpm /usr/src/rh-7.2-source/caching-nameserver-7.2-1.noarch.rpm /usr/src/rh-7.2-source/krb5-libs-1.2.2-13.i386.rpm /usr/src/rh-7.2-source/imap-2000c-15.i386.rpm /usr/src/rh-7.2-source/procmail-3.21-1.i386.rpm /usr/src/rh-7.2-source/cyrus-sasl-1.5.24-23.i386.rpm /usr/src/rh-7.2-source/cyrus-sasl-md5-1.5.24-23.i386.rpm /usr/src/rh-7.2-source/openldap-2.0.11-13.i386.rpm /usr/src/rh-7.2-source/sendmail-8.11.6-3.i386.rpm /usr/src/rh-7.2-source/cleanfeed-0.95.7b-12.noarch.rpm /usr/src/rh-7.2-source/inn-2.3.2-5.i386.rpm /usr/src/rh-7.2-source/gd-1.8.4-4.i386.rpm /usr/src/rh-7.2-source/linuxconf-1.25r7-3.i386.rpm /usr/src/rh-7.2-source/pidentd-3.0.14-1.i386.rpm /usr/src/rh-7.2-source/portmap-4.0-38.i386.rpm /usr/src/rh-7.2-source/rsync-2.4.6-5.i386.rpm /usr/src/rh-7.2-source/squid-2.4.STABLE1-6.i386.rpm /usr/src/rh-7.2-source/samba-common-2.2.1a-4.i386.rpm /usr/src/rh-7.2-source/tcsh-6.10-6.i386.rpm /usr/src/rh-7.2-source/samba-2.2.1a-4.i386.rpm /usr/src/rh-7.2-source/telnet-server-0.17-20.i386.rpm /usr/src/rh-7.2-source/openssh-server-2.9p2-12.i386.rpm /usr/src/rh-7.2-source/ucd-snmp-4.2.1-7.i386.rpm /usr/src/rh-7.2-source/wu-ftpd-2.6.1-20.i386.rpm /usr/src/rh-7.2-source/cpio-2.4.2-23.i386.rpm /usr/src/rh-7.2-source/anonftp-4.0-9.i386.rpm Jeff wrote a hardcoded script to build a Redhat root filesystem early on. I've unofficially taken that project over; the scripts involved are at http://www.stearns.org/mkrootfs/ . I'll be posting about them in a little bit. The scripts start with a small list of required rpms (apache-, tcpdump-, etc.) and try to build a root filesystem with those. When the build fails because of a missing dependency, they add the needed rpm just before the package that needs it. If two or more packages need each other, they're listed above separated by #'s. That's a signal that they need to be installed in the same rpm command. Once all dependencies have been satisifed, the final build into the root_fs file starts at the top and installs them all. If you want to see how it's done, take a look at updateme (the top level script) and mkrootfs (that builds one root filesystem) at http://www.stearns.org/mkrootfs/). Cheers, - Bill --------------------------------------------------------------------------- "Silly hacker, root is for administrators." -- Unknown (Courtesy of Fabrice MARIE <fa...@ce...>) -------------------------------------------------------------------------- William Stearns (wst...@po...). Mason, Buildkernel, named2hosts, and ipfwadm2ipchains are at: http://www.pobox.com/~wstearns LinuxMonth; articles for Linux Enthusiasts! http://www.linuxmonth.com -------------------------------------------------------------------------- |