всем привет!не в первый раз сталкиваюсь с такой проблемой, не знаю с чего именно начать, так что по порядку: система FreeBSD 7.2 (i386) + freebsd-update внутри релиза почти до текущего момента, никакие пакеты не стоят.
# cat /etc/make.conf
CPUTYPE?=k8.if {.CURDIR:M/usr/ports/editors/vim}
WITH_OPTIONS=yes
.endif# csup -L 2 ~/sup/ports-supfile
... курю ...
# cd /usr/ports
# make index
... курю ...
# cd /usr/ports/ports-mgmt/portupgrade
# make config-recursive
# make install clean
... курю ...все ок, индекс актуальный, портапгрейд стоит.
теперь делаю следующее:# portsclean -C
# portupgrade -ckNrRf editors/vim ports-mgmt/portupgrade x11/xorgчтоб вам не лазить в маны - 'c' make config, 'k' - keep going, 'N' - install, 'rR' - recursive up/down, 'f' - force reinstall
по идее это должно поставить мне vim и X-ы, пересобрав по пути portupgrade.
в конфиге вима выбираю X11+GTK2, конфигурю все зависимости, собственно начинается выкачивание и сборка.... проходит много времени ...
вижу, что не все порты поставились, т.к. make install где-то в libxdmcp (щас точно не помню, машинка дома осталась) вернул 1. хотя сама либа стоит. сразу оговорюсь, это может происходить с разными зависимостями, в зависимости от того, что именно я пытаюсь поставить.
выходит, что portupgrade поставил эту зависимость, но "забыл" об этом, а когда стал ее ставить второй раз, очевидно произошло следующее:
# cd /usr/ports/bad/dep
# make install
===> Installing for cproto-4.7g
===> Generating temporary packing list
===> Checking if devel/cproto already installed
===> cproto-4.7g is already installed
You may wish to ``make deinstall'' and install this port again
by ``make reinstall'' to upgrade it properly.
If you really wish to overwrite the old port of devel/cproto
without deleting it first, set the variable "FORCE_PKG_REGISTER"
in your environment or the "make install" command line.
*** Error code 1Stop in /usr/ports/devel/cproto.
именно это я и видел в логах, только пакет был libxdmcp или вроде того. сам portupgrade выводит в конце отчет, где говорит об "install error" в libxdmcp. к сожалению нет typescript'а, в следующий раз попробую с ним.
обновление/перезагрузка дерева портов не помогало ни тогда (~год назад), ни сейчас.
может кто-нибудь встречал такое ?
также буду рад узнать, кто чем пользуется для обновления и [пере]сборки портов и качания дистфайлов.
с make *-recursive и make install уже знаком :)
>также буду рад узнать, кто чем пользуется для обновления и [пере]сборки портов
>и качания дистфайлов.
>с make *-recursive и make install уже знаком :)portsnap, make и portupgrade, больше ничего не нужно
После обновления дерева портов или в директории с портами make fetchindex или просто portsdb -uU
Обновить все порты portupgrade -arR
>После обновления дерева портов или в директории с портами make fetchindex или
>просто portsdb -uUда он вроде и сам это делает - в самом начале идет 0..100..200....20000.. ('u' то есть), pkgdb тоже отрабатывает в начале и после каждого install'а (+1 -0). csup делаю с пустым /usr/ports, после ничего не трогаю, кроме make index. попробую руками, сенкс.
после portsclean -C && pkgdb -fu && portsdb -fu второй запуск portupgrade давал положительный результат (тогда у меня был стандартный INDEX из portsnap'а). трабл в первой итерации и ее скорости.
ощущение такое, что проблема в pkgdb, я так понимаю это он базу pkg_info индексирует?
>Обновить все порты portupgrade -arR
кстати говорят rR не надо тут :)
Он это не делает. rR надо.
>Он это не делает. rR надо.простите, не совсем плохо понял... щас вот сделал в консоли
(машинка другая)# portsdb -fu
[Updating the portsdb <format:bdb_btree> in /var/tmp ... - 19565 port entries found .........1000.........2000.........3000.........4000.........5000.......
..6000.........7000.........8000.........9000.........10000.........11000.....
....12000.........13000.........14000.........15000.........16000.........1700
0.........18000.........19000..... ..... done]то же самое вижу при первом запуске portupgrade, не то?
ps: и правда надо.. ж)
Не то это. Перечитай мой первый пост.
>Не то это. Перечитай мой первый пост.ммм.. перечитал. Ваша дзен сильнее моя дзен, но все равно спасибо, попробую как домой приеду %)
видимо то это это это:
o To perform upgrades effectively and correctly, remember to run
pkgdb(1) with -F on occasions to fix dependency discrepancies, and
run portsdb(1) with -Uu every time you CVSup the ports tree to keep
your ports INDEX database up-to-date in sync with the tree.ps: если не сильно отвлекаю, чем отличается "1000..2000..20000.." portsdb'ы -uU от make index руками и "1000..2000..20000.." portupgrade'а при прочих равных условиях -- это просто выглядит похоже, но не то?
Не знаю. Как я делаю - я уже написал.
>rR надоrR не надо, смотрите исходники portupgrade и не галлюциногенируйте.
А он у вас что в бинарном виде?
>А он у вас что в бинарном виде?Нет, он у меня в виде исходника. Простите, вы дурак?
Задай этот вопрос себе.
>Задай этот вопрос себе.Слив такой слив.
>Задай этот вопрос себе.Гыгы. Не волнуйтесь, кырастете - тоже будете много знать и не будете пороть фсякую фигню.
>обновление/перезагрузка дерева портов не помогало ни тогда (~год назад), ни сейчас.
>может кто-нибудь встречал такое ?Возможно, кривой порт. В чем проблема взять, да посмотреть как именно ваш bad/dep зависит от devel/cproto, и проверить, устанавливает ли cproto требуемые файлы?
снова не знаю с чего начать... make.conf тот же, из софта только portupgrade и pkg-orphan.1. готовимся
# csup -s ~/sup/ports-supfile
# rm -f /usr/ports/INDEX*
# rm -rf /var/db/ports/*
# portsdb -uU
# pkgdb -F
# pkgdb -fu
# portsclean -CD2. мой скрипт ~/bin/portupgrade-with-log
#!/bin/sh
date=`date "+%Y-%m-%d,%H:%M"`
logdir="/var/log/portupgrade/$date"
mkdir -p $logdir || exit 1
script $logdir/typescript /usr/local/sbin/portupgrade --config \
--results-file $logdir/log --log-file $logdir/%s-%s --new \
--quiet --verbose "$@"
status=$?
rmdir -p $logdir > /dev/null 2> /dev/null
exit $status3. конфигуримся и качаем
# portupgrade -CF x11/xorg editors/vim x11-wm/openbox
4. ставимся
# portupgrade-with-log -fO x11/xorg editors/vim x11-wm/openbox
==================================================
на сей раз заткнулся на devel/dbus:
gnome-libtool: link: cc -ffunction-sections -fdata-sections -O2 -fno-strict-aliasing \
-pipe -march=athlon-mp -Wall -Wchar-subscripts -Wmissing-declarations \
-Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align \
-Wdeclaration-after-statement -fno-common -Wno-unused -Wno-sign-compare \
-Wno-format -pthread -o dbus-launch dbus-launch.o dbus-launch-x11.o \
-L/usr/local/lib -lSM /usr/local/lib/libICE.so /usr/local/lib/libX11.so \
/usr/local/lib/libxcb.so /usr/local/lib/libXau.so /usr/local/lib/libXdmcp.so \
-lrpcsvc -pthread -Wl,-rpath -Wl,/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib
/usr/bin/ld: cannot find -lSM
(\-переносы это я сам тут расставил)видно, что gnome-libtool не смог разрешить -lSM (остальные вроде -lICE -lX11 у него получилось). что странно, libSM стоит и есть /usr/local/lib/libSM.{a,so}. почему все получилось во второй раз для меня загадка:
4. тут окей
# cd /usr/ports/devel/dbus && make clean build
gnome-libtool: link: cc -ffunction-sections -fdata-sections -O2 -fno-strict-aliasing \
-pipe -march=athlon-mp -Wall -Wchar-subscripts -Wmissing-declarations \
-Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align \
-Wdeclaration-after-statement -fno-common -Wno-unused -Wno-sign-compare \
-Wno-format -pthread -o dbus-launch dbus-launch.o dbus-launch-x11.o \
-L/usr/local/lib \
/usr/local/lib/libSM.so \ <<<<<<<<<======
/usr/local/lib/libICE.so \
/usr/local/lib/libX11.so /usr/local/lib/libxcb.so /usr/local/lib/libXau.so \
/usr/local/lib/libXdmcp.so -lrpcsvc -pthread -Wl,-rpath -Wl,/usr/local/lib \
-Wl,-rpath -Wl,/usr/local/lib
(отметил сам)
тут все ок.че за миракл ???
срез портов похоже не имеет значения, т.к. я его обновлял уже много раз.
portupgrade? ldconfig? /dev/random?> устанавливает ли cproto требуемые файлы?
у меня не отсутствующие зависимости, а странное поведение при portupgrade - то он одно и то же 2 раза ставит, то из-под него билд не выходит. лучше мне make install тогда юзать и не париться? :(
2aZ: ну и что там особого делает portsdb -uU, кроме make index и portsdb -u ?
2all:
полный результат пункта 3 лежит здесь: http://narod.ru/disk/14752019000/pu.tar.gz.html (1.6Mb) правда не знаю получится его скачать или нет - яндекс упорно долбит, что там вирус.
проблемные области выложил отдельно:
http://narod.ru/disk/14752237000/log.gz.html (2Kb)
http://narod.ru/disk/14752226000/typescript.gz.html (900Kb)
http://narod.ru/disk/14752207000/devel-dbus.html (200Kb)
пункт 4 (ок):
http://narod.ru/disk/14752216000/devel-dbus-ok.html (200Kb)если у кого-то были похожие траблы, плиз отпишитесь, я уж не знаю репорты мне писать или в отпуск пора...
может попробовать снова все снести и посмотреть как себя поведет make install?