пересборкой мира/ядра обновился с 8.1-p1 до 8.2, надо бы обновить пакеты.
ну, понятное дело, portupgrade -ar и начались непонятки.
машина на которой случился сей казус -- за прокси, который настроен и работает не первый год. никто туда особо не лазит.
/usr/src и /usr/ports примонтированы по nfs, FETCH_ENV в /etc/make.conf прописаны верно. в ./cshrc тоже ,т.е. в env мы видим актуальные значения HTTP_PROXY и FTP_PROXY. ладно.
после обновления сразу же был пересобран сам фигурант дела.
cd /usr/ports/pprt-mgmt/portapgrade
make deinstall && make package install clean
тут всё хорошо: portupgrade 2.4.8возьмем в качестве примера:
vulpes# portinstall -vPp textproc/xmlto
<--skiped-->
++ Will try the following sites in the order named:
ftp://ftp.FreeBSD.org//pub/FreeBSD/ports/i386/packages-8.2-r.../
---> Invoking a command: /usr/bin/fetch -o '/var/tmp/portupgradeyJt4dq95/xmlto-0.0.23.tbz'
'ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-8.2-re...'
fetch: transfer timed outэто первое "опаньки!", потому как портапгрейд проигнорировал настройки fetch и не съел строку из /etc/make.conf FETCH_CMD=/usr/bin/fetch -vRr -T 6
однако, после нескольких безуспешных попыток скачать пэкадж по фтп происходит второе "опаньки!", портапгрейд говорит:
<--skiped-->
requesting ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/xmlto-0.0....
proxy requires authorization
looking up 192.168.0.2
connecting to 192.168.0.2:3128
requesting ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/xmlto-0.0....
remote size / mtime: 105201 / 1253539673
xmlto-0.0.23.tar.bz2 100% of 102 kB 149 kBpsнесколько подивившись такой избирательности портапгрейда в отношении пэкаджей и сорцов, ради интереса пробуем из консоли качнуть по фтп этот самый пэкадж
vulpes# fetch -Rvr -T 6 ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-8.2-re...
proxy requires authorization
looking up 192.168.0.2
connecting to 192.168.0.2:3128
requesting ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-8.2-re...
local size / mtime: 40796 / 1292082915
remote size / mtime: 40796 / 1292082915
xmlto-0.0.23.tbz 100% of 39 kB 17 MBpsсиё явление еще больше изумило меня и ввергло в когнитивный диссонанс, т.е. fetch вообще-то понимает как ему ходить по фтп, но будучи вызванным portupgrade полностью забывает о своем так нужном умении ходить через прокси.
подытожим.
при сборке, т.е, использовании make, fetch прекрасно ходит за нужным через прокси, а вот при попытке воспользоваться portupgrade тот же фетч начисто об этом забывает.
ну и традиционный вопрос: куда копать?оно конечно и из сорцов можно всё собрать, но уж больно странно ведет себя портапгрейд
>[оверквотинг удален]
> сиё явление еще больше изумило меня и ввергло в когнитивный диссонанс, т.е.
> fetch вообще-то понимает как ему ходить по фтп, но будучи вызванным
> portupgrade полностью забывает о своем так нужном умении ходить через прокси.
> подытожим.
> при сборке, т.е, использовании make, fetch прекрасно ходит за нужным через прокси,
> а вот при попытке воспользоваться portupgrade тот же фетч начисто об
> этом забывает.
> ну и традиционный вопрос: куда копать?
> оно конечно и из сорцов можно всё собрать, но уж больно странно
> ведет себя портапгрейдЕсли бы читали маны, то никаких "опаньки" бы не было.
man portupgrade
-P
--use-packages Use packages instead of ports whenever available.
portupgrade searches the local directories listed
in PKG_PATH for each package to install or upgrade
the current installation with, and if none is
found, pkg_fetch(1) is invoked to fetch one from a
remote site. If it doesn't work either, the port
is used.
man pkg_fetch
ENVIRONMENT
PKG_FETCH Alternative command for downloading files. Default is
``/usr/bin/fetch -ao '%2$s' '%1$s''', where every actual
command line is composed as:sprintf(PKG_FETCH, URI, path)
For example, try ``wget -O '%2$s' '%1$s''' or ``curl '%s'
-o '%s'''.
>>[оверквотинг удален]
> Если бы читали маны, то никаких "опаньки" бы не было.давненько я этим делом не занимался, подзабыл уже
спасибо, пойду курить маны, как в былые времена )
>[оверквотинг удален]
> command line is
> composed as:
>
>
> sprintf(PKG_FETCH, URI, path)
>
> For example, try
> ``wget -O '%2$s' '%1$s''' or ``curl '%s'
>
> -o '%s'''.всё что вы написали верно, но не правильно (с)
собака порылась в /usr/local/etc/pkgtools.conf та и сё.
>[оверквотинг удален]
>>
>>
>> sprintf(PKG_FETCH, URI, path)
>>
>> For example, try
>> ``wget -O '%2$s' '%1$s''' or ``curl '%s'
>>
>> -o '%s'''.
> всё что вы написали верно, но не правильно (с)
> собака порылась в /usr/local/etc/pkgtools.conf та и сё.Ну дык ясен пень, что в pkgtools.conf надо смотреть.