| 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 |