Ошибка при обновлении дерева портов
На одном из находящихся в моём ведении серверов под управлением операционной системы FreeBSD 8.2-RELEASE при проведении планового обслуживания при попытке обновить дерево портов с помощью команды portsnap fetch update выскочила ошибка следующего вида… |
# portsnap fetch update Looking up portsnap.FreeBSD.org mirrors... 7 mirrors found. Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done. Fetching snapshot metadata... done. Updating from Mon Nov 18 08:01:16 MSK 2013 to Mon Nov 25 08:39:08 MSK 2013. Fetching 4 metadata patches. done. Applying metadata patches... done. Fetching 4 metadata files... gunzip: (stdin): unexpected end of file metadata is corrupt.
Дабы не лезть в дебри при попытке выяснить, из-за чего возникла данная ситуация, поступил несколько радикально:
# rm -R /var/db/portsnap/* # rm -R /usr/ports/*
После чего скачал заново последний снимок с деревом портов (“цена” вопроса – 69 мегабайт):
# portsnap fetch extract Looking up portsnap.FreeBSD.org mirrors... 7 mirrors found. Fetching public key from ec2-eu-west-1.portsnap.freebsd.org... done. Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done. Fetching snapshot metadata... done. Fetching snapshot generated at Wed Nov 27 04:04:31 MSK 2013: f8755de14ce81dfcdc7ea454da80f33207eac20434d927100% of 69 MB 1229 kBps 00m00s Extracting snapshot... done. Verifying snapshot integrity... done. Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done. Fetching snapshot metadata... done. Updating from Wed Nov 27 04:04:31 MSK 2013 to Wed Nov 27 11:53:58 MSK 2013. Fetching 4 metadata patches... done. Applying metadata patches... done. Fetching 0 metadata files... done. Fetching 21 patches.....10....20 done. Applying patches... done. Fetching 3 new ports or files... done. /usr/ports/CHANGES /usr/ports/COPYRIGHT /usr/ports/GIDs /usr/ports/KNOBS /usr/ports/Keywords/info.yaml /usr/ports/LEGAL /usr/ports/MOVED /usr/ports/Makefile /usr/ports/Mk/Scripts/ ... /usr/ports/x11/zenity/ Building new INDEX files... done. # portsnap update Ports tree is already up to date.
Как мы видим, все индексы автоматически перестроились…
Кстати, в папке /var/db/portsnap/files
все равно постепенно накапливается ненужный мусор, также при попытке удалить только из нее предыдущие снимки дерева портов – может возникнуть ошибка:
# rm -R /var/db/portsnap/files/*.gz -su: /bin/rm: Слишком длинный список аргументов
Как оказалось, в этой папке содержится очень много файлов (скопившиеся за долгое время жизни сервера):
# ls -Al /var/db/portsnap/files | wc -l 24681 # du -h /var/db/portsnap/ 106M /var/db/portsnap/files 108M /var/db/portsnap/
После выполнения описанной выше процедуры ошибка при обновлении дерева портов больше не возникала…
Огромный плюс в карму автору!!