Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  начальная настройка
  Установка FreeBSD
  DUMMYNET
  Сборка ядра
  IPFW
  обновление
  portsnap
  CP1251 на FreeBSD
  loader.conf
  defaults/rc.conf
  jail
  Ntpdate/Ntpd
  diskless
  Обновление мира ("world")
  PBR & PF
  bsnmpd
  newsyslog
  if_bridge
  make.conf
  PBR & IPFW
  Работа с HDD
  sshd & AD
  Удаленное разбиение HDD
  Заметки об IPFW
  FreeBSD на VDS
  CVSUP и софт через Proxy
  i386=>amd64
  ALTQ в IPFW
  Виртуальный свитч
  VPN сервер по средствам mpd5.
  NTP
  sysupdate
  mpd5 L2TP
  freebsd + webcamera
  IPFW policy (PBR)
  RAID1 via LAN
  зеркальный RAID1 на ОС FreeBSD
  4.x => 7.x
  portdowngrade
  Быстрое обновление портов
  ipfw nat
  Использование csup
  UTF-8 console
  dump/restore
  hast carp zfs ucarp cluster
  ng_nat
  Wi-FI роутер + DHCP + DNS
  backup/restore & ZFS
  Обновление ОС и портов через SVN.
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> настройка —> portsnap

Использование утилиты portsnap для обновления портов

Автор: lissyara.


    С версии FreeBSD 6.0 штатным средством обновления портов является portsnap - утилита использующая моментальные, заранее сделанные снимки портов. Непонятно, чем не устраивает cvsup. Но - надо идти в ногу со временем :) Про неё в-принципе написано в хандбуке, поэтому эта статья является просто высказыванием собственного мнения и впечатлений. Итак, для начала рихтуем конфиг - /etc/portsnap.conf, если нужно указать другой сервер для обновлений:
# /etc/portsnap.conf - конфигурационный файл portsnap

# Директория, где по дефолту сохраняются сжатые моментальные снимки
# дерева портов.
# WORKDIR=/var/db/portsnap

# Собственно где находятся порты (для команд "update" и "extract")
# PORTSDIR=/usr/ports


# Сервер, или пул серверов с которых брать обновления. Можно
# поменять, но обычно это не приносит значимого ускорения работы
# (а на мой взгляд имеет смысл только в случае если у вас разная
# цена трафика из разных стран - например наш дешевле...)
SERVERNAME=portsnap.FreeBSD.org

# Доверенный ключ. Изменять его следует только в том случае, если
# если вы получили такое указание в подписанном PGP письме
# от <security-officer@FreeBSD.org> с объяснением почему.
KEYPRINT=9b5feee6d69f170e3dd0a2c8e469ddbd64f13f978f2f3aede40c98633216c330

Ну и пробуем:
/usr/home/lissyara/>portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... using portsnap1.FreeBSD.org
Fetching public key... done.
Fetching snapshot tag... done.
Fetching snapshot metadata... done.
Fetching snapshot generated at воскресенье, 14 мая 2006 г. 04:39:01 (MSD):
ef5549df4952a2f59eb20419ac8008f6039b75268d7fbb  5% of   40 MB   42 kBps 15m35s
Extracting snapshot... done.
Verifying snapshot integrity... done.
Fetching snapshot tag... done.
Fetching snapshot metadata... done.
Updating from воскресенье, 14 мая 2006 г. 04:39:01 (MSD) to
воскресенье, 14 мая 2006 г. 21:02:49 (MSD).
Fetching 4 metadata patches... done.
Applying metadata patches... done.
Fetching 0 metadata files... done.
Fetching 79 patches.....10....20....30....40....50....60....70.... done.
Applying patches... done.
Fetching 3 new ports or files... done.
/usr/home/lissyara/>

Мдя. Мало что 40 мегов, так ещё и по времени на моём AMD K6-II 533 ушло минут 20 на телодвижения после скачивания... Долго. После чего устанавливаем дерево портов:
/usr/home/lissyara/>portsnap extract
/usr/ports/.cvsignore
/usr/ports/CHANGES
/usr/ports/COPYRIGHT
/usr/ports/KNOBS
/usr/ports/LEGAL
/usr/ports/MOVED
/usr/ports/Makefile
/usr/ports/Mk/bsd.apache.mk
.................
.................
/usr/ports/x11/yelp/
/usr/ports/x11/zenity/
Building new INDEX files... done.
/usr/home/lissyara/>

Ещё час с гаком ушёл... Пробуем обновиться:
/usr/home/lissyara/>portsnap fetch update
Looking up portsnap.FreeBSD.org mirrors... using portsnap1.FreeBSD.org
Fetching snapshot tag... done.
Fetching snapshot metadata... done.
Updating from воскресенье, 14 мая 2006 г. 21:02:49 (MSD) to
воскресенье, 14 мая 2006 г. 22:00:22 (MSD).
Fetching 4 metadata patches... done.
Applying metadata patches... done.
Fetching 0 metadata files... done.
Fetching 4 patches... done.
Applying patches... done.
Fetching 0 new ports or files... done.
Removing old files and directories... done.
Extracting new files:
/usr/ports/LEGAL
/usr/ports/MOVED
/usr/ports/databases/p5-DBD-Pg/
/usr/ports/textproc/p5-HTML-EscapeEvil/
Building new INDEX files... done.
/usr/home/lissyara/>

Ну, тут он у cvsup`a выиграл :) минута ушла, или две :)

Итого - по времени на первое скачивание и установку стока же или даже больше чем установка cvsup из портов, потом быстрей получается. Мне - не понравилось... Хотя утилита чётко в UNIX-like стиле - делает одно, но неплохо. Тем не менее cvsup ведь всё равно ставить придётся - чтоб обновлять исходные коды системы, такчто решать вам.



размещено: 2006-05-15,
последнее обновление: 2006-05-15,
автор: lissyara

оценить статью:

Abigor, 2006-05-15 в 6:26:26

portsnap хорош тем, что идет по дефолту и его не надо ставить. им хорошо пользоваться когда у тебя голая система, только чтоб включилась, ей, скачал, установил свежие порты, и начал накатывать какой тебе надо софт, в том числе и cvsup

Юрий, 2006-07-07 в 11:21:32

Пытался делать всё согласно описанному выше.
После закачки 40 метров, не может открыть какой-то архив.
Всё прерывается и ничего не обновляется.
В чем загвоздка не пойму.

Продолжение ..., 2006-07-07 в 11:47:03

Fetching 4 metadata files... /usr/sbin/portsnap: cannot open lfdce7940f3108b72254d4c206ab3211390d297flbe3c5ba639de643346298.gz: No such file or directory
metadata is corrupt.

Вот такие пироги.

Sasha, 2006-08-20 в 0:56:39

portsnap fetch --debug ,бывает из-за прокси ,лучше обновить версию.

karoll, 2006-11-08 в 19:22:17

 /usr/sbin/portsnap: cannot open...
Говорит о том что побился архив.
Заходишь в /var/db/portsnap/files и трешь его ручками - в итоге скачиваешь еще 40Mb :)

Seclorum, 2006-12-12 в 1:48:35

Не знаю с какой версии FreeBSD, но теперь ( у меня FreеBSD 6.2) в базовую систему входит csup ( переписанный на Cи cvsup)

Bas, 2007-01-18 в 15:52:48

Я конечно еще чайник, но могу высказать свое мнение у меня например корпоративная сеть и выход есть токо по 80-у порту в инет при етом cvsup мну посылает и нехосет работать а portsnap сделал свою работу на 5

Slava524, 2007-01-30 в 14:50:14

Кстати, в 6.2 (раньше не замечал) сразу в комплекте идет утилитка csup - делает то же, что и cvsup, но последний-то еще установить надо (а он еще модулу за собой тянет). конфиги подходят от cvsup, опция -g ему вообще не требуется. красота!

lissyara, 2007-01-30 в 14:53:24

тока работает медленней чем cvsup. Хоть и на сях написан.

arachnid, 2007-03-29 в 14:44:08

ну если и медленнее (csup), то ненамного. по крайней мере без секундомера не обнаружить.
недостатки обоих sup-ов - неумение работать через прокси. но к сожалению и портснап страдает некорректной работой. а сливать каждый раз по 40 метров слегка напрягает :)
csup входит в базовую систему с 6.2, для предидущих есть в портах

фф, 2007-04-25 в 22:45:14

[quote]а сливать каждый раз по 40 метров слегка напрягает :)[/quote] чтото ты не так понял, это тока первы раз качаешь ~40М, а потом тока новые пакеты - мне например очень понравилось как портснэп работает, намного быстрее чем ксуп или квсуп.

nebo, 2007-05-12 в 0:17:56

to Slava524
cvsup-without-gui пашет без всяких опций:
cvsup /usr/ports/ports-supfile ;)

KaMa-CyTpA, 2007-05-19 в 11:04:55

У меня в сетке несколько сервантов на фре. Все 6.2
Можно ли сделать так, чтобы я на проксе (она тоже на фре) закачивал вот это филе, а остальные чтобы с прокси уже брали?
Экономия ведь получается неплохая если 5 серверов...

Nichls, 2007-06-28 в 12:42:19

Данная статья + хэндбук = все хорошо. Касательно меня - мне все равно, сколько будет качать, если это надо для дела. О таких мелочах заботиться - попусту тратить свое время. ИМХО описанный метод проще. От sup'ов отказался. Всем спасибо.

karakurty, 2007-07-09 в 18:14:04

to Kama-Sutra:
please look to cvsup-mirror

bioroido, 2007-07-10 в 13:17:48

to karakurty:
cvsup-mirror "окупаться" долго будет, ибо тянет в начале кучу потолще 40-ка мегабайт. но зато свое, локальное.

mcat, 2007-08-03 в 6:44:46

Я б к этой рихтовкеИтак, для начала рихтуем конфиг - /etc/portsnap.conf, и если кроме Аглицкого и локально-русского или украинскаго другие порты апдейтить не нужно - расскоментировать
REFUSE arabic chinese french german hebrew hungarian japanese
REFUSE korean polish portuguese vietnamese

ShorKan, 2007-10-02 в 23:22:41

Если пользуешь portsnap, cvsup' om пользоватся можно? конфликтов не будет тогда?

mike, 2007-10-24 в 18:27:02

в cvsup есть встроенная возможность работать через SOCKS-прокси. а через HTTP(S)-прокси можно заставить работать при помощи proxytunnel, сам себе так сделал - прекрасно работает. У меня стоит SQUID. По логам смотрю, сколько каждый раз при обновлении было скачано - очень удобно. Правда конфигурацию по-умолчанию придется подправить, необходимо в squid.conf разрешить метод CONNECT на tcp порт 5999.

kmb, 2007-11-22 в 13:43:37

mike, опиши на форуме подробнее как ты cvsup через прокси пускаешь.

Wormer, 2007-11-25 в 2:44:51

kmb
http://www.lissyara.su/?id=1012 в каментах, в самом низу описано как сделать. Проверял, все отлично работает. ;)

Covax, 2008-03-12 в 14:37:58

На 6.3 уже 50 метров первый раз тянет.

VVD, 2008-03-21 в 4:22:18

На любой фре portsnap качает одинаково.
Раньше было 40Mb, а теперь 50Mb, потому что портов стало больше - каждый день добавляются новые порты.

С машины на машину очень просто копировать базу портснапа, чтобы выкачивать только 1 раз из инета эти 50Mb.
Примерно так:
# cd /var/db
# rm -rf portsnap
# scp -r user@computer:/var/db/portsnap .
# portsnap extract
Работает - проверено на личном опыте.
На машинке computer перед этими телодвижениями запукскаю portsnap fetch.

freeman_tnu, 2008-03-29 в 19:27:56

Никто не в курсе, в UA-IX есть зеркала portsnap-a?

P@trick, 2008-03-30 в 15:25:49

Вопрос, а чем можно сделать локальный сервер портснапа ?
(типа cvsupd) ???

P@trick, 2008-03-30 в 22:33:36

>>Никто не в курсе, в UA-IX есть зеркала portsnap-a?
Если подскажете чем - заделаю у себя :)

VVD, 2008-03-31 в 17:57:57

AFAIK, это обычный http с определённой структурой каталогов.

HOSTER, 2008-06-14 в 17:52:02

Да гаразда круче cvsup`a. Спасибо за статтейку!

Rimlyanin, 2008-07-10 в 13:22:07

fax# portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... 4 mirrors found.
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
Fetching snapshot metadata... done.
Fetching snapshot generated at Thu Jul 10 04:14:39 EEST 2008:
840893447b57af1c77868d8f34c2c47fd9d24495553217 99% of   52 MB   82 kBps 00m00s


и так мы можем стоять на 99% очень долго

W@lker, 2008-10-23 в 15:21:04

Главное правильно выбрать зеркало
SERVERNAME=ru.portsnap.FreeBSD.org
в конфиге

А до этого наблюдал 20 Kbps
после изменения аж 300-400 Kbps

FRAGmat, 2009-04-30 в 7:43:10

Я новичок в этом деле.
Решил попробовать цвску, закопался и удалил цвску.
portsnap, имхо, для новичков лучше.

turbo, 2009-05-28 в 8:58:23

американский портснап portsnap.freebsd.org медленный я перебирал варианты и гуглил - в результате мой список зеркал

ru.portsnap.freebsd.org
eu.portsnap.freebsd.org

Nickless, 2009-06-17 в 14:31:50

и не забываем после portsnap fetch && portsnap extract делать еще

cd /usr/ports
make index


а еще лучше --
make fetchindex

чтобы не самому индекс строить, это долго, а скачать готовый

Nikolay, 2009-10-22 в 9:10:53

Что бы было всем известно ... и на этом сервере в одном месте все время висело, а то забываю ...
> From: [EMAIL PROTECTED]
> [EMAIL PROTECTED] On Behalf Of
> Elwell, Richard

> I get the following error when I run portsnap fetch:

> Fetching 14248 new ports or files... /usr/sbin/portsnap: cannot open
> d5742d6e9ca3b11450f23606ae6a16b391a12f4c7b2d4fc638513ce34f7c2c
> 25.gz: No
> such file or directory
>
> snapshot is corrupt.
> A quick search led to a similar problem in the past:

Richard,

By any chance is your portsnap using a proxy server, possibly squid?

If so this may get around the problem prior to running your portsnap.

# sysctl net.inet.ip.portrange.randomized=0

You may want to check the value first, and reset it after the portsnap.

Maybe something like this in your portsnap script.

dr129s, 2010-02-17 в 8:59:48

portsnap При обновлении портов через proxy выдает ошибку:
#Fetching 1248 new ports or files... /usr/sbin/portsnap: cannot open
#d5742d6e9ca3b11450f23606ae6a16b391a12f4c7b2d4fc638513ce34f7c2c25.gz: No such file or directory
....
Нужно в .csrhc добавить
setenv HTTP_PROXY=http://IP-PROXY:Port_Proxy
setenv HTTP_PROXY_AUTH=basic::username:password

подробно написано почему именно так в http://forum.sysadmins.su/lofiversion/index.php/t20449.html

dr129s, 2010-02-17 в 9:13:24

для bash:
export HTTP_PROXY=http://IP-PROXY:Port_Proxy
export HTTP_PROXY_AUTH=basic::username:password
для csh:
setenv HTTP_PROXY http://IP-PROXY:Port_Proxy
setenv HTTP_PROXY_AUTH basic::username:password

SolarBack, 2010-03-19 в 16:22:19

Комменты очень выручили. Cvsup не хотел работать через prtunnel с авторизацией на проксе, а portsnap все отлично проглотил.
Самое главное, нужно в .csrhc добавить (если используете csh)
setenv HTTP_PROXY http://IP-PROXY:Port_Proxy
setenv HTTP_PROXY_AUTH basic::username:password

bonhead, 2010-05-24 в 3:56:00

Ребята я готов сделать портснап мирор в UA-IX подскажите каким образом

gonzo111, 2010-09-08 в 11:02:47

обновляю скриптом
update.sh
#!/bin/sh
portsnap fetch update
more /usr/ports/UPDATING
echo "Press any key to continue...Server update" && portmaster -ad

demon, 2011-08-05 в 10:37:41

В Cron чтобы запустить portsnap -I cron update
а потом время от времени portsnap update

quiber, 2012-02-07 в 18:08:37

на данный момент portsnap занимает 60мб и extract длится более полутора часа (угнетает).
сервер 8.2
проц 2.6 интел пень
ддр 512

VVD, 2012-02-07 в 19:08:08

quiber, в первую очередь я бы посмотрел на диски - если в компе какой-нибудь IDE 20-40Gb 5400rpm, то ничего удивительного. Поставь современный SATA от 500Gb на пластину и увидишь разницу в разы. Проц на это мало влияет, а память совсем не влияет.
Ещё интересно какая нагрузка на машинку во время extract?
Если сильно принципиально, то могу потестить на P4-3GHz/2Gb/WDC WD15EADS-00P8B0 1.5Tb 5400rpm.

Alex Keda, 2012-02-07 в 19:31:43

mount -o async /
или
tunefs -n enable /

я обычно первое делаю, если надо с корневым разделом много на запись работать

arachnid, 2012-02-07 в 19:39:01

по любому extract делается только один раз

Александр, 2012-12-27 в 5:35:34

Спасибо за эту статью и сам ресурс. Не только начинающие найдут для себя новое.

unkn0wn, 2013-02-09 в 18:17:52

Не понятно, как у многих отписавшихся распаковка занимает часы. По факту portsnap скачивает архив, распаковывает (в первый раз это действительно будет долго - на целероне 2.8 минут двадцать), еще за 20 минут делается апдейт (ide-винт). Но даже в этих раскладах оно будет быстрее, чем csup-ить дерево, которое у меня в лучшем случае обходится за час.

Alex Keda, 2013-02-09 в 19:02:32

просто ФС в синхронном режиме работает. вот и всё.

vadim64, 2013-04-18 в 13:44:23

да просто статья когда писалась то
это щас всем похеру на проц, хард и канал, а рама - вообще стоит дешевле пива


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 24 чел.
За последние 30 мин было: 64 человек
За сегодня было
73 показов,
27 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.111 секунд
Из них PHP: 50%; SQL: 50%; Число SQL-запросов: 86 шт.
Исходный размер: 118452; Сжатая: 22835