Проект

Общее

Профиль

Portage-archive » История » Редакция 11

Редакция 10 (Андрей Волков, 2024-06-18 00:53) → Редакция 11/12 (Андрей Волков, 2025-07-22 16:41)

h1. Архив portage 

 http://download.ekb-info.ru/gentoo/portage-archive/ 

 


 h2. squashfs actions: 

 *action-file-year* 

 <pre> 
 uncompressed@name(*.gz) 
 fragment(ebuild)@name(*.ebuild) 
 fragment(patch)@(name(*.patch)||name(*.diff)) 
 fragment(manifest)@name(Manifest) 
 fragment(metadata)@name(metadata.xml) 
 fragment(changelog)@name(ChangeLog) 
 fragment(ecalss)@subpathname(*/eclass) 
 fragment(files)@subpathname(*/*/*/files) 
 fragment(cache)@(subpathname(*/metadata/md5-cache)||subpathname(*/metadata/cache)) 
 </pre> 

 h2. Пересжимаем tar.xz на tmpfs в squashfs 

 <pre> 
 rsync -aviP --info=progress2 files@files:/home/files/pub/gentoo/snapshots/portage-2024* ./ 

 for NAME in *.xz; portage-*.tar.xz; do xzcat $NAME | sqfstar -comp xz -b 1M -mkfs-time $(stat -c %Y $NAME) \ 
   tar -xJf $NAME; \ 
   mv -v portage ${NAME/.tar.xz/}; \ 
   mksquashfs    ${NAME/.tar.xz/}    ${NAME/.tar.xz/.sqfs} -force-uid portage -force-gid paludisbuild ${NAME/.tar.xz/ 
 .xz.sqfs}; done 

 -no-duplicates -b 1M; \ 
   rm -v portage-20*.tar.xz 

 for YEAR in {2021..2024}; do for MONTH in {01..12}; do -rf ${NAME/.tar.xz/}; \ 
   mkdir -pv mnt/$YEAR/portage-$YEAR${MONTH}15; -p storage/${NAME/.tar.xz/}; \ 
   sudo mount -r portage-$YEAR${MONTH}15.xz.sqfs mnt/$YEAR/portage-$YEAR${MONTH}15; mkdir -pv root/$YEAR/portage-$YEAR${MONTH}15; sudo mount --bind mnt/$YEAR/portage-$YEAR${MONTH}15/portage root/$YEAR/portage-$YEAR${MONTH}15; -o loop,ro ${NAME/.tar.xz/.sqfs} storage/${NAME/.tar.xz/}; \ 
 done; done 

 cd snapshots/ 
 ls -l root/ 
 for NAME in */; do ls -dt "$NAME"/*| head -n1| xargs -IR touch -r R "$NAME"; done 
 for NAME in {2021..2024};do mksquashfs $NAME portage-$NAME.xz.sqfs    storage    portage-2012.sqfs -force-uid portage -force-gid paludisbuild -comp xz -progress -b 1M -mkfs-time $(stat -c %Y $NAME) -action-file ../action-file-year; done -comp xz; 

 rsync -aviP --info=progress2 portage-20* files@files:pub/gentoo/portage-sqfs/ sudo umount storage/* 
 rm portage-20* -rf storage 

 </pre> 


 h2. Пересжимаем tar.bz2 на tmpfs в squashfs 

 <pre> 
 cd .. mkdir unpack 
 rm -v portage-20*.tar.xz 
 sudo umount {mnt,root}/20*/* 
 rmdir {mnt,root}/20*/* {mnt,root}/20* {mnt,root} 
 </pre> mount -t tmpfs -o size=4g unpack unpack 

 h1. Создание образа из git коллекции: FILES=$(ls portage-*.tar.bz2) 

 <pre><code class="shell"> 
 sudo -i 
 cd /usr/portage 
 git status 
 git stash 
 git log 
 git checkout -b 2025-06-15 43885bef36ba5abaa6222e8df5db598b15da371c 
 git-restore-mtime --skip-missing 
 rsync -a --info=progress2 --exclude '/.*' ./ /home/xiff/NOb/nutria/snapshots/portage/ 
 git checkout master 
 git branch -d 2025-06-15 
 git stash pop 
 cd /home/xiff/NOb/nutria/snapshots/portage 
 unpack 

 for NAME in $(find . -depth -type d); ${FILES}; do ls -dt "$NAME"/*| head -n1| xargs -I, touch -r , "$NAME"; done 
 \ 
   tar -cJpf portage-20250615.tar.xz -xjf ${NAME}; \ 
   DNAME=${NAME/.tar.bz2/} 
   mv -v portage ${DNAME}; \ 
   mksquashfs    ${DNAME}    ${DNAME}.sqfs -force-uid portage -force-gid paludisbuild -no-duplicates -b 1M; \ 
   rm -rf ${DNAME}; \ 
   mkdir -p storage/${DNAME}; \ 
   sudo mount -o loop,ro ${DNAME}.sqfs storage/${DNAME}; \ 
 rsync -aviP --info=progress2 portage-20250615.tar.xz files@files:/home/files/pub/gentoo/snapshots/ done; 

 mksquashfs storage portage-2013.sqfs -force-uid portage -force-gid paludisbuild -b 1M -comp xz; 

 sudo umount storage/* 
 </code></pre> rm -rf storage 

 mv -v portage-*.sqfs ../ 

 cd .. 

 sudo umount unpack 

 rmdir unpack 

 </pre> 


 h1. Доработано и перенесено в xidbin:portage-pack.sh 

 

 h1. Перезапаковка на simba 

 <pre><code class="shell"> <pre> 
 cd /var/db/paludis/pre 

 YEAR=2021; for MON in {01..12}; do mkdir {/var/db/paludis/sqfs.templates/,}C_${YEAR}_${MON}_R1; wget -P C_${YEAR}_${MON}_R1 http://files.ekb-info.ru/gentoo/snapshots/portage-${YEAR}${MON}15.tar.xz; cd C_${YEAR}_${MON}_R1/; tar -xf portage-${YEAR}${MON}15.tar.xz; cd ..; ln -fns C_${YEAR}_${MON}_R1/portage sync; /etc/init.d/repositories.testing sync; cp -a ../sqfs.testing/gentoo.sqfs ../sqfs.templates/C_${YEAR}_${MON}_R1/; touch -r C_${YEAR}_${MON}_R1/portage-${YEAR}${MON}15.tar.xz ../sqfs.templates/C_${YEAR}_${MON}_R1/gentoo.sqfs; rm -rf C_${YEAR}_${MON}_R1; done 
 </code></pre> 

 </pre>