9.4. Running Rawhide
9.4.1. How Do I Do That?
First, a warning is in order. As the original Rawhide announcement noted:
Raw Hide Can Be a Bit Tough to Chew on So Run at Your Own Risk (and Enjoyment) These releases have not been quality tested by Red Hat's Quality Assurance team. They may not boot. If they boot, they may not install. If they install, they may not do anything other then waste CPU cycles. If anything breaks, you most assuredly own the many fragments which will be littered across your floor. It may not be possible to upgrade from Fedora Core to Raw Hide, from Raw Hide to Fedora Core, or from Raw Hide to Raw Hide! If a stable upgrade path is important to you, please do not use Raw Hide. DO NOT USE THESE RELEASES FOR ANY WORK WHERE YOU CARE ABOUT YOUR APPLICATION RUNNING, THE ACCURACY OF YOUR DATA, THE INTEGRITY OF YOUR NETWORK, OR ANY OTHER PURPOSE FOR WHICH A RESPONSIBLE HUMAN WOULD USE A COMPUTER. (But then again what would be the fun of hacking Linux if there wasn't some risk involved. ;-)....)
In other words, you should run Rawhide only on a secondary computer dedicated to testing because it's far from stable.
Most Rawhide systems are updated daily. The nature of the development process ensures that features will break one day and then start working again a few days later. Menu options will shift around, and from time to time, your system will not boot normally. You may be frustrated, but you'll never be bored when running Rawhide!
There are two ways to install Rawhide: by upgrading from a released version of Fedora Core, or by installing Rawhide directly.
220.127.116.11. Updating Fedora Core to Rawhide
Edit the file /etc/yum.repos.d/fedora-development.repo to enable the development repository by editing the first enabled line under [development] (highlighted in bold here) to read enabled=1:
# These packages are untested and still under development. This # repository is used for updates to test releases, and for # development of new releases. # # This repository can see significant daily turnover and major # functionality changes which cause unexpected problems with other # development packages. Please use these packages if you want to work # with the Fedora developers by testing these new development packages. # # firstname.lastname@example.org is available as a discussion forum for # testing and troubleshooting for development packages in conjunction # with new test releases. # # email@example.com is available as a discussion forum for # testing and troubleshooting for development packages in conjunction # with developing new releases. # # More information is available at http://fedoraproject.org/wiki/Testing # # Reproducible and reportable issues should be filed at # http://bugzilla.redhat.com/. # # Product: Fedora Core # Version: devel [development] name=Fedora Core - Development #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/ mirrorlist=http://fedora.redhat.com/Download/mirrors/fedora-core-rawhide enabled=1 gpgcheck=0 [development-debuginfo] name=Fedora Core - Development - Debug #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/debug/ mirrorlist=http://fedora.redhat.com/Download/mirrors/fedora-core-rawhide-debug enabled=0 gpgcheck=0 [development-source] name=Fedora Core - Development - Source #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/SRPMS/ mirrorlist=http://fedora.redhat.com/Download/mirrors/fedora-core-rawhide-source enabled=0 gpgcheck=0
Next, disable all of the other repositories by setting enabled=0 in their respective /etc/yum.repos.d/*.repo files. When you're done, enter these commands to confirm that only the development repositories are enabled:
# cd /etc/yum.repos.d # grep enabled *.repo | grep 1 fedora-development.repo:enabled=1
If you see other repository files listed, edit those files to disable the additional repositories.
# yum update Setting up Update Process Setting up repositories development 100% |=========================| 1.1 kB 00:00 Reading repository metadata in from local files Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for newt-perl to pack into transaction set. newt-perl-1.08-9.2.2.i386 100% |=========================| 9.2 kB 00:00 ---> Package newt-perl.i386 0:1.08-9.2.2 set to be updated ---> Downloading header for words to pack into transaction set. words-3.0-8.1.1.noarch.rp 100% |=========================| 4.0 kB 00:00 ...(Lines snipped)...
18.104.22.168. Installing Rawhide directly
Using a browser, select a nearby Fedora mirror server from the list at http://fedora.redhat.com/Download/mirrors.html and verify that it contains the os/development directory for your architecture (not all mirrors carry Rawhide) and that the development tree is reasonably up-to-date (i.e., that some of the files in the os/Fedora/RPMS directory are timestamped within the last 48 hours).
From the images directory on the mirror, download the boot.iso file and burn it to a CD or DVD, or download the diskboot.img file and copy it to a USB flash drive (see Lab 10.3, "Preparing Alternate Installation Media").
Boot the target system from this disc or USB flash drive and perform a normal HTTP or FTP installation from the mirror that you selected (see Chapter 1).
# yum update
22.214.171.124. Creating a local Rawhide mirror
The rsync tool provides a convenient method of mirroring the development repository. To use it, select an rsync URI from the mirror list at http://fedora.redhat.com/Download/mirrors.html. Finding the correct directory within the rsync server may take a bit of experimentation because various mirror sites use different directory layouts. Use the rsync command to explore content on the mirror server:
$ rsync -v rsync://ftp.muug.mb.ca/ Welcome to MUUG Online Network Access, courtesy of the Manitoba Unix User Group. For any questions, problems, or concerns about this site, please send e-mail to: <firstname.lastname@example.org>. Look under the /pub directory and subdirectories for files to download. We are now also maintaining a mirror of selected sites (or a subset thereof), in the /mirror directory. Look at the README file there for details on what is being mirrored. ftp MUUG Online FTP area (more Gigs than you want to download!) pub MUUG Online pub area (more Gigs than you want to download!) mirror Mirror of various sites (more Gigs than you want to download!) redhat ftp.redhat.com mirror (more Gigs than you want to download!) redhat-contrib ftp.redhat.com mirror, contrib directory redhat-updates updates.redhat.com mirror fedora fedora.redhat.com mirror, top-level directory fedora-linux-core fedora.redhat.com mirror, core directory fedora-linux-core-updates fedora.redhat.com mirror, updates directory fedora-linux-core-development fedora.redhat.com mirror, development directory fedora-linux-core-test fedora.redhat.com mirror, (beta) test directory fedora-linux-extras fedora.redhat.com mirror, extras directory
In this case, the introductory message indicates that fedora-linux-core-development contains the development tree. Use rsync again to view the contents of that directory:
$ rsync -v rsync://ftp.muug.mb.ca/fedora-linux-core-development/ Welcome to MUUG Online Network Access, courtesy of the Manitoba Unix User Group. ...(Lines snipped)... drwxrwsr-x 4096 2006/07/13 18:43:37 . -rw-r--r-- 3101 2003/11/04 12:23:24 README drwxr-xr-x 4096 2006/07/13 15:21:37 i386 drwxrwsr-x 4096 2006/07/13 15:21:33 source sent 117 bytes received 544 bytes 440.67 bytes/sec total size is 3101 speedup is 4.69
The i386 directory is the one we're interested in (it looks like you'd have to use a different mirror for other architectures):
$ rsync -v rsync://ftp.muug.mb.ca/fedora-linux-core-development/i386/ Welcome to MUUG Online Network Access, courtesy of the Manitoba Unix User Group. ...(Lines snipped)... drwxr-xr-x 4096 2006/07/13 15:21:37 . drwxr-xr-x 81920 2006/07/13 15:37:52 debug drwxrwsr-x 4096 2006/07/12 08:09:49 iso drwxrwsr-x 4096 2006/07/13 15:49:37 os sent 123 bytes received 530 bytes 145.11 bytes/sec total size is 0 speedup is 0.00
The presence of the debug, iso, and os subdirectories indicates that this is the directory we're looking for.
Armed with that information, create a script, /usr/local/bin/rawhide-rsync, on a stable (non-Rawhide) system with 10 GB or more free storage space:
#!/bin/bash # # rawhide-rsync :: script to mirror the Fedora rawhide repo locally # MAILTO= alert # Person/alias to receive reports DIR= /var/www/html/rawhide # Mirror directory URI=rsync:// mirrorhost/directory / # Rsync URI if tty -s # If being run interactively, show progress then XCMD='tee /dev/tty' else XCMD='cat' fi ( cd $DIR || exit 2 # Abort if the cd fails (important!) rsync --recursive --delete -v $URI . 2>&1 echo )|$XCMD|mail $MAILTO -s "Rawhide Rsync Report"
Ensure that httpd and rsync are installed on the target system, and create a directory to hold the development mirror (replace user with the name of the non-root user account that you will be using to run the rawhide-repo script):
# mkdir -p /var/www/html/rawhide/ # chown user /var/www/html/rawhide # chmod a+rx /var/www/html/rawhide
Finally, run the script:
$ rawhide-rsync Welcome to MUUG Online Network Access, courtesy of the Manitoba Unix User Group. For any questions, problems, or concerns about this site, please send e-mail to: <email@example.com>. Look under the /pub directory and subdirectories for files to download. We are now also maintaining a mirror of selected sites (or a subset thereof), in the /mirror directory. Look at the README file there for details on what is being mirrored. receiving file list ... done debug/ElectricFence-debuginfo-2.2.2-20.2.2.i386.rpm debug/ElectricFence-debuginfo-2.2.2-20.2.i386.rpm debug/GConf2-debuginfo-2.14.0-2.1.i386.rpm ...(Lines snipped)... os/repodata/repoview/zsh-html-0-4.2.5-1.2.2.html os/repodata/repoview/zulu-support.group.html sent 15296418 bytes received 706808440 bytes 166633.17 bytes/sec total size is 8112656832 speedup is 11.23
The server and the local rsync program will compare notes and modify the files and directories on the local system to match the server. The first time the script is run, it will transfer the entire repository, and the speedup value will be 1.0. In subsequent runs, the speedup value will indicate the amount of time saved over transferring the entire repository (the preceding example indicates that the transfer took 1/11.23 of the time that a full transfer would take).
$ crontab -e
Modify the crontab file to start the rawhide-rsync script at a convenient time:
# Update the local rawhide repo 0 5 * * * /usr/local/bin/rawhide-rsync
The rawhide-rsync reports will be mailed to you on a daily basis.
To verify that the local mirror is accessible through HTTP, connect with a browser. For example, if the host containing the mirror were bluesky, you'd point your browser to http://bluesky/rawhide, on which you would see the Fedora, iso, and image directories.
126.96.36.199. Using a local Rawhide mirror
To install from a local Rawhide mirror, simply specify that mirror during the installation process.
[development] name=Fedora Core - Development #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/ # This line is commented by the addition of # at the start # of the line, which disables the use of repositories on the standard # mirrorlist #mirrorlist=http://fedora.redhat.com/Download/mirrors/fedora-core-rawhide # This line directs yum to the local mirror baseurl=http:// bluesky/fedora/os/ enabled=1 gpgcheck=0
188.8.131.52. Rawhide-related mailing lists
9.4.2. How Does It Work?
Rawhide is a standard yum repository. Package maintainers submit package source to the Fedora build system, which builds the packages periodically and emails a report to the fedora-devel-list and fedora-test-list. The report looks like this:
Date: Fri, 14 Jul 2006 09:28:29 -0400 From: firstname.lastname@example.org Subject: rawhide report: 20060714 changes To: email@example.com, firstname.lastname@example.org Message-ID: <200607141328.k6EDSTJ5031177@hs20-bc2-6.build.redhat.com> New package xorg-x11-drv-amd Xorg X11 AMD Geode video driver Updated Packages: ImageMagick-184.108.40.206-1.1 ----------------------- * Wed Jul 12 2006 Jesse Keating <email@example.com> - 220.127.116.11-1.1 - rebuild anaconda-18.104.22.168-1 -------------------- * Thu Jul 13 2006 David Cantrell <firstname.lastname@example.org> - 22.214.171.124-1 - Fix unknown error on shadow file (#196705, clumens) - Removed inet_calcGateway (clumens) - Don't guess gateway address in text network UI (#197578, clumens) - Change iutil.copyFile calls to shutil.copyfile (clumens) - Removed DRI enable/disable code from xsetup (clumens) - Removed copyFile, getArch, memInstalled, and rmrf from iutil (clumens) - Don't pass command as first argument to subprocess calls (clumens) - Added network debugging mode for readNetConfig( ) in loader - Removed "BOOTP" string from loader network config UI - Added new dialog for network device config in stage2 (katzj) - Write gateway address to correct struct in manualNetConfig - Removed IP_STRLEN macro since that's moved to libdhcp - Link and compile libisys with libdhcp - Added back 'confignetdevice' and 'pumpnetdevice' in iutil - Removed isys_calcNetmask and isys_calcNS (clumens) - Added xkeyboard-config to fix VT switching (katzj) ...(Lines snipped)... Broken deps for i386 ---------------------------------------------------------- anaconda-runtime - 126.96.36.199-1.i386 requires syslinux gnucash - 2.0.0-2.1.i386 requires libgsf-gnome-1.so.114 mkbootdisk - 1.5.3-2.1.i386 requires syslinux perl-suidperl - 4:5.8.8-6.1.i386 requires perl = 4:5.8.8-6 systemtap - 0.5.8-2.1.i386 requires libdw.so.1(ELFUTILS_0.120) Broken deps for ia64 ---------------------------------------------------------- gnucash - 2.0.0-2.1.ia64 requires libgsf-gnome-1.so.114( )(64bit) perl-suidperl - 4:5.8.8-6.1.ia64 requires perl = 4:5.8.8-6 systemtap - 0.5.8-2.1.ia64 requires libdw.so.1(ELFUTILS_0.120)(64bit) ...(Lines snipped)...
The report lists new and removed packages, the latest changelog entries from updated packages, and a list of broken dependencies for each architecture. Developers, package maintainers, and testers review this report daily, discussing the results on the mailing lists.
The build system places the resulting RPMs on a master server, where they are periodically retrieved by the mirror servers and made accessible to the world. Individual systems use the standard yum client and transfer protocols (HTTP or FTP) to access files on the mirror servers.
The rsync tool works by comparing files and directories on the client and server systems and transferring only the files that have changed. This comparison can use combinations of file-modification timestamp, file size, and checksum, depending on the command-line options selected.
9.4.3. What About...
188.8.131.52. ...testing upcoming Fedora Core versions without performing a network installation or update?
The Fedora Core project produces at least three test releases before each Fedora Core release. These test releases are effectively clean snapshots of Rawhide released in ISO form; they can be installed from optical disc using the same method as Fedora Core releases (see Chapter 1 and Lab 10.3, "Preparing Alternate Installation Media").
You will find announcements of test releases on the Fedora web site and the fedora-announce-list. The test releases may be downloaded from test directories in the Fedora mirror servers; the releases are numbered in increments of 0.01 starting with a version number that is 0.1 less than the upcoming Fedora Core version numberso Fedora Core 7 test 1 will be found in the directory test/6.90, and FC7t2 will be in test/6.91.
184.108.40.206. ...using other repositories with the Rawhide development repository?
That's not usually recommended. Repositories such as Livna (and even Fedora Extras) do not update their packages to work with new Fedora Core releases until just before the official release of a new Fedora Core version.
9.4.4. Where Can I Learn More?