39 | | * copy tree into a working directory |
40 | | * remove repodata.outside |
41 | | * remove Computational link and copy content from computational to Computational |
42 | | * createrepo has --split option |
43 | | * repo - primary.xml has <location xml:base="media://1287685157.683254#2" href="Packages/gnome-python2-gtkhtml2-2.25.3-23.fc14.1.i686.rpm"/> |
44 | | * where #2 is disc 2 and 128...254 is the media id for the disc. |
| 39 | Rsync the tree then remove things not needed on the dvd |
| 40 | {{{ |
| 41 | [thomas@host puias]$ rm mirrorlist |
| 42 | [thomas@host puias]$ rm Computational |
| 43 | [thomas@host puias]$ rm repodata.outside |
| 44 | [thomas@host puias]$ rm PUIAS/repodata.outside |
| 45 | [thomas@host puias]$ rm -r PUIAS/repoview |
| 46 | }}} |
| 47 | |
| 48 | See redundant. |
| 49 | |
| 50 | {{{ |
| 51 | [thomas@host puias]$ rm images/puias-6.1-x86_64-DVD*iso |
| 52 | }}} |
| 53 | |
| 54 | Make directories for the discs and move Addons to the 3rd disc. |
| 55 | {{{ |
| 56 | [thomas@host puias]$ mkdir 1 2 3 |
| 57 | [thomas@host puias]$ mv Addons 3 |
| 58 | [thomas@host puias]$ mv EFI EULA GPL images isolinux mirrorlist Packages PUIAS repodata RPM-GPG-KEY-puias 1 |
| 59 | [thomas@host puias]$ mkdir 2/Packages |
| 60 | [thomas@host puias]$ cd 1/Packages |
| 61 | }}} |
| 62 | |
| 63 | Move large packages over to second disc, trying to make disc 1 small enough for a DVD. |
| 64 | Move things that usually aren't required for a server build |
| 65 | |
| 66 | {{{ |
| 67 | [thomas@host Packages]$ mv *-devel-* ../../2/Packages/ |
| 68 | [thomas@host Packages]$ mv eclipse-* ../../2/Packages/ |
| 69 | [thomas@host Packages]$ mv texlive-* ../../2/Packages/ |
| 70 | [thomas@host Packages]$ mv openoffice.org-* ../../2/Packages/ |
| 71 | }}} |
| 72 | |
| 73 | Go back up to the root. |
| 74 | {{{ |
| 75 | [thomas@host Packages]$ cd ../../ |
| 76 | }}} |
| 77 | |
| 78 | Remove the repodata in the root and then move the one from PUIAS to the root |
| 79 | |
| 80 | {{{ |
| 81 | [thomas@host puias]$ rm 1/repodata |
| 82 | [thomas@host puias]$ mv 1/PUIAS/repodata 1 |
| 83 | [thomas@host puias]$ ln -s ../repodata 1/PUIAS/repodata |
| 84 | }}} |
| 85 | |
| 86 | Start a createrepo with a split and media (cd path) |
| 87 | {{{ |
| 88 | [thomas@host puias]$ createrepo -v -g repodata/comps-puias6.xml --split 1 2 -u 'media://1306249229.307081' |
| 89 | }}} |
| 90 | |
| 91 | Create a .discinfo and .treeinfo the numbers need to match here |
| 92 | .discinfo |
| 93 | {{{ |
| 94 | --- BEGIN --- |
| 95 | 1306249229.307081 |
| 96 | PUIAS Linux 6.1 |
| 97 | x86_64 |
| 98 | 1 |
| 99 | |
| 100 | |
| 101 | |
| 102 | --- END --- |
| 103 | }}} |
| 104 | |
| 105 | .treeinfo |
| 106 | {{{ |
| 107 | --- BEGIN --- |
| 108 | [general] |
| 109 | family = PUIAS Linux |
| 110 | timestamp = 1321026136.00 |
| 111 | variant = PUIAS |
| 112 | totaldiscs = 1 |
| 113 | version = 6.1 |
| 114 | discnum = 1 |
| 115 | packagedir = |
| 116 | arch = x86_64 |
| 117 | |
| 118 | [images-x86_64] |
| 119 | kernel = images/pxeboot/vmlinuz |
| 120 | initrd = images/pxeboot/initrd.img |
| 121 | boot.iso = images/boot.iso |
| 122 | |
| 123 | [images-xen] |
| 124 | kernel = images/pxeboot/vmlinuz |
| 125 | initrd = images/pxeboot/initrd.img |
| 126 | |
| 127 | [stage2] |
| 128 | mainimage = images/install.img |
| 129 | --- END --- |
| 130 | }}} |
| 131 | |
| 132 | If you have time, make some checksums for a few things: |
| 133 | from yum.misc import checksum |
| 134 | checksum('sha256','images/pxeboot/vmlinuz') |
| 135 | then put that in the checksums section of .treeinfo |
| 136 | {{{ |
| 137 | --- BEGIN --- |
| 138 | [checksums] |
| 139 | images/pxeboot/initrd.img = sha256:7dd1303afa583c00cba591d4c397f31df08f05c15f4947eb2143cbb7a0b32811 |
| 140 | images/pxeboot/vmlinuz = sha256:a36343b3be796a3c8e05c59422d672c2a888004e1e05f994946d4ef61dd36a3a |
| 141 | images/efiboot.img = sha256:e8d8943f23f8c4f07b680f88d2b71f04b01e71a048c9ac268e9415a381f5b431 |
| 142 | images/install.img = sha256:5fffc8cbaf2db03f59e3f8755f5ada67955f9de079c98abb08585fa0e4ccc8fb |
| 143 | images/README = sha256:b7ff2704f677c5fc1e41b548eb4d50b1802ff61f0bf3df43bbe4818084ab82bf |
| 144 | images/efidisk.img = sha256:55fb2e751ee12e7a6d7cc4aa1017c53077ec7cab1390fe4ffe9af3a4c5ad4b0f |
| 145 | repodata/repomd.xml = sha256:b4c730256ed3e41aaa70cdb0bd5b44d1f90b6325c4f37428e75f49000d332430 |
| 146 | --- END --- |
| 147 | }}} |
| 148 | |
| 149 | Now remove all anaconda repo files. |
| 150 | {{{ |
| 151 | [root@host puias]# cd images |
| 152 | [root@host images]# mkdir /mnt/install |
| 153 | [root@host images]# mount -o loop install.img /mnt/install |
| 154 | }}} |
| 155 | |
| 156 | (requires squashfs stuff installed) |
| 157 | |
| 158 | {{{ |
| 159 | [root@host images]# cd /tmp; cp -a /mnt/install install |
| 160 | [root@host /tmp]# cd install |
| 161 | [root@host install]# rm etc/anaconda.repos.d/* |
| 162 | [root@host install]# mksquashfs * ../install.img:w |
| 163 | [root@host install]# cp /tmp/install.img ~/puias/1/images/ |
| 164 | |
| 165 | }}} |
| 166 | Now make an iso out of those directories... |
| 167 | |
| 168 | {{{ |
| 169 | [root@host puias]# cd 1 |
| 170 | [root@host 1]# mkisofs -o /tmp/6.1-DVD-x86_64.iso -r -b isolinux/isolinux.bin -c isolinux/boot.msg -cache-inodes -no-emul-boot -boot-load-size 4 -boot-info-table -R -m TRANS.TBL . |
| 171 | [root@host 1]# cd ../2 |
| 172 | [root@host 2]# mkisofs -o /tmp/6.1--DVD-2-x86_64.iso -r -cache-inodes -R -m TRANS.TBL . |
| 173 | }}} |
| 174 | |
| 175 | |
| 176 | === Note: === |
| 177 | There is a bug in createrepo that causes it to rewrite all the files incorrectly in primary.xml |
| 178 | There is a string replace that is unended, replaces all occurences of _reldir with '', which replaces 1 and 2 with nothing |
| 179 | |
| 180 | relpath = self.localpath.replace(self._reldir, '') |
| 181 | change the line to this: |
| 182 | relpath = self.localpath.replace(self._reldir, '',1) |
| 183 | in |
| 184 | /usr/lib/python2.6/site-packages/yum/packages.py |