при установленном virtual/jdk:1.6
, пакет с DEPEND=">=virtual/jdk-1.4"
вызовет установку virtual/jdk:1.7
, чтобы этого избежать приходится делать echo virtual/jdk:1.7 >> /etc/portage/package.mask
удобно!
cd /root
truncate -s 1024M portage.loop
mke2fs -b 1024 -I 128 -N 200000 -m 0 -E resize=2048000 -O "^ext_attr" -v portage.loop
tune2fs -o "^acl,^user_xattr" portage.loop
rm -rf /usr/portage
echo -e '/root/portage.loop\t/usr/portage\text2\t\tloop=/dev/loop0,defaults,noatime,nodiratime,noacl,barrier=0\t\t0 1' >/etc/fstab
mkdir /usr/portage
mount /usr/portage
echo 'PORTAGE_RSYNC_EXTRA_OPTS="--exclude=metadata/md5-cache/*"' >/etc/portage/make.conf
emerge-webrsync
emerge --sync
портэж теперь занимает вместо 900 МБ целых 400 МБ. полгига экономии на двадцатигиговой впске
по мере фрагментации файловой системы, придётся возвращать sparse-состояние файла, делать можно примерно так:
dd if=/dev/zero of=/usr/portage/zeroes bs=1M
rm /usr/portage/zeroes
cp --sparse=always portage.loop portage.loop2
umount /usr/portage
mv portage.loop2 portage.loop
mount /usr/portage
На самом деле это не даёт гарантированного оптимального результата и проще пересоздать файл
удолил /usr/portage/metadata/md5-cache @ добавил в make.conf PORTAGE_RSYNC_EXTRA_OPTS="--exclude=metadata/md5-cache/*"
@ сэкономил 150МБ места на впске