Policies/Mirror Structure
From Mandriva Community Wiki
This document tries to describe the structure of distributions on mirrors.
Contents |
[edit] Distribution tree
[edit] Global view
All files are normally under the MandrivaLinux/ directory. There are three main sections under it:
- devel/ contains more or less _unstable_ distributions
- official/ for current supported distributions
- old/ contains all no longer supported distributions
Under each of those directories, subdirectories are named <VERSION>/<ARCHITECTURE>, the SRPMS being stored along architectures. There is no "noarch" subdirectory.
Here's an example of how it looks like:
MandrivaLinux/ |-- devel [...] | |-- 10.2 | | |-- SRPMS | | |-- i586 | | |-- ppc | | `-- x86_64 | |-- 2005 -> 10.2 | |-- 2006.0 | | |-- SRPMS | | |-- i586 | | `-- x86_64 | |-- community -> 2005 | |-- cooker | | |-- SRPMS | | |-- alpha | | |-- i586 | | |-- ia64 | | |-- ppc | | |-- sparc | | |-- sparc64 | | `-- x86_64 |-- official | |-- 10.1 | | |-- SRPMS | | |-- i586 | | `-- x86_64 | |-- 10.2 | | |-- SRPMS | | |-- i586 | | `-- x86_64 | |-- 2005 -> 10.2 | |-- current -> 2005/ `-- old |-- 7.2 | |-- SRPMS | |-- alpha | |-- i586 | `-- sparc |-- 8.0 | |-- SRPMS | |-- alpha | |-- contrib | `-- i586 [...]
[edit] Other directories
[edit] Per distrib configuration
The distribution structure has changed since 2007.0. Here is described the new one only.
|-- doc | `-- install |-- dosutils | `-- lang |-- install | |-- extra | | `-- advertising | |-- images | | `-- alternatives | `-- stage2 |-- isolinux |-- lang |-- media | |-- contrib | | |-- release | | |-- updates | | |-- backports | | |-- testing | |-- debug_contrib | | |-- release | | |-- updates | | |-- backports | | |-- testing | |-- main | | |-- release | | |-- updates | | |-- backports | | |-- testing | |-- debug_main | | |-- release | | |-- updates | | |-- backports | | |-- testing | `-- media_info `-- misc
[edit] File locations
- doc/ contains various documentation about Mandriva and the installer
- dosutils/ contains useful tools to prepare a dos/windows computer for installation
- install/ all code and data related to the installation
- install/images/ the various bootable floppy and cdrom images to start installation
- isolinux/ the boot code and configuration files used to construct bootable parts of the installer
- media/ all rpms and install configuration files
- media/media_info/ distribution configuration files
- media subdirs. These extra media are supposed to suppress the need of a separated 'community' tree in /devel/
- release all the packages at the time of the release
- updates security and bug fix updates (not in cooker)
- backports cooker backports (not in cooker)
- testing
Media are described thoroughly in the Policies/SoftwareMedia page.
[edit] Configuration
[edit] media.cfg
[edit] Issues
[edit] Changing URLs
A stupid practice is to keep only the current stable version of the distribution under the mandriva directory, and to switch it to mandriva-old once a new version is released. The result is that your urpmi setup will become wrong after the release of a new version, and has to be changed if you don't want to upgrade, which is painful. This is one of the issues making Mandriva unsuited for servers IMHO.
The reason given so far was to allow mirrors to filter what they want to host, but i don't see why having another layout with constant URLs would prevent them from doing the same. Using version numbers as top-level directories, and current as a symlink toward current stable version is OK:
mandrake/ |-- 9.0 |-- 9.1 |-- 9.2 `-- current -> 9.2/
(See the solution section for a solution to this problem while still allowing mirrors to handle filtering what they want)
[edit] ISO location
ISO files do not appear on the tree above. They are currently just under the "official" or "devel" directory, but it would make sense to follow the actual tree structure and have them at the same level as "media", "doc", etc... Thus, the per-distribution tree structure would become :
|-- doc | `-- install |-- dosutils | `-- lang |-- install | |-- extra | | `-- advertising | |-- images | | `-- alternatives | `-- stage2 |-- iso |-- isolinux |-- lang |-- media | |-- contrib | |-- jpackage | |-- main | `-- media_info `-- misc