Проблема с SUDO

FreeBSD
всем привет! freebsd 6.2 прошло обновление портов и после этого слетел sudo начиная ставить выдает ошибку:

===> Configuring for sudo-1.8.6.p3_1
configure: Configuring Sudo version 1.8.6p3
checking for gcc… cc
checking whether the C compiler works… no
configure: error: in `/usr/ports/security/sudo/work/sudo-1.8.6p3':
configure: error: C compiler cannot create executables
See `config.log' for more details
===> Script «configure» failed unexpectedly.
Please report the problem to wxs@FreeBSD.org [maintainer] and attach the
"/usr/ports/security/sudo/work/sudo-1.8.6p3/config.log" including the output
of the failure of your make command. Also, it might be a good idea to provide
an overview of all packages installed on your system (e.g. a /usr/sbin/pkg_info
-Ea).
*** Error code 1

Stop in /usr/ports/security/sudo.
*** Error code 1

gcc обновлял. не понятная папка work.
у кого нибудь было что то подобное?

19 комментариев

avatar
cd /usr/ports/security/sudo
make clean
configure
make
что дает?
avatar
выдает тоже самое.
avatar
проверяйте версии gcc build gmake make
avatar
gcc-4.4.7,1
gmake-3.81_3

я так полагаю что надо все порты обновить с их зависимостями?
avatar
по хорошему порты обновляются с зависимостями — через утилиту portupgrade:
cd /usr/ports/sysutils/portupgrade && make && make install && make clean
portupgrade -arR


Полезные опции в portupgrade:
-W не чистить порт после обновления;
-w не чистить порт перед обновлением;
-F для того что скачать все исходники сразу, если проблемы с интернетом: portupgrade -aFrR
опции -f устанавливает дальше все зависимости, если даже где-то ошибка, то пытается продолжить дальше...;
-l /var/log/pport.log — записывает последнюю ошибку;
-L %s::%s создает файл в текущем каталоге, в котором записывает весь вывод установленных портов.

ЗЫ: при установке portupgrade притащит за собой ruby
ЗЫ2: шутка с пересборкой make world на 95% фатальная для системы и как правило заканчивается крахом, хотя многие хандбуки ее советуют
avatar
да согласен пересборка это не лучший вариант. да и удаленно это делать очень опасно.
avatar
See `config.log' for more details
— Это для кого написано? Вы туда заглядывали?
Если заглядывали, то где хотябы последние 10 строчек этого лога? Телепатией заниматься, как-то совсем не охота.
avatar
## — ##
## confdefs.h. ##
## — ##

/* confdefs.h */
#define PACKAGE_NAME «sudo»
#define PACKAGE_TARNAME «sudo»
#define PACKAGE_VERSION «1.8.6p3»
#define PACKAGE_STRING «sudo 1.8.6p3»
#define PACKAGE_BUGREPORT «www.sudo.ws/bugs/»
#define PACKAGE_URL ""

configure: exit 77
avatar
Мдя… Найдите в config.log строчку «C compiler cannot create executables» и покажите пять строк вверх от неё и столько же в низ.
А вообще такая проблема выскакивает обычно из-за несовпадения версий libc и gcc лечится обновлением сырцов и пересборкой мира.
avatar
configure:3440: checking whether the C compiler works
configure:3462: cc -O2 -fno-strict-aliasing -pipe -lgcc -lssp_nonshared conftest.c >&5
/usr/bin/ld: cannot find -lssp_nonshared
configure:3466: $? = 1
configure:3504: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME «sudo»
| #define PACKAGE_TARNAME «sudo»
| #define PACKAGE_VERSION «1.8.6p3»
| #define PACKAGE_STRING «sudo 1.8.6p3»
| #define PACKAGE_BUGREPORT «www.sudo.ws/bugs/»
| #define PACKAGE_URL ""
| /* end confdefs.h. */
|
| int
| main ()
| {
|
|;
| return 0;
| }
configure:3509: error: in `/usr/ports/security/sudo/work/sudo-1.8.6p3':
configure:3512: error: C compiler cannot create executables
See `config.log' for more details

## — ##
## Cache variables. ##
## — ##

ac_cv_env_CC_set=set
ac_cv_env_CC_value=cc
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value='-O2 -fno-strict-aliasing -pipe'
ac_cv_env_CPPFLAGS_set=set
ac_cv_env_CPPFLAGS_value=''
ac_cv_env_CPP_set=set
ac_cv_env_CPP_value=cpp
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value=' -lgcc -lssp_nonshared'
ac_cv_env_LIBS_set=''
ac_cv_env_LIBS_value=''
ac_cv_env_YACC_set=''
ac_cv_env_YACC_value=''
ac_cv_env_YFLAGS_set=''
ac_cv_env_YFLAGS_value=''
ac_cv_env_build_alias_set=set
ac_cv_env_build_alias_value=i386-portbld-freebsd6.4
ac_cv_env_host_alias_set=''
ac_cv_env_host_alias_value=''
ac_cv_env_target_alias_set=''
ac_cv_env_target_alias_value=''
ac_cv_prog_ac_ct_CC=cc
lt_cv_sys_max_cmd_len=262144

libc и gcc я обновил. в установленных портах.
avatar
configure:3462: cc -O2 -fno-strict-aliasing -pipe -lgcc -lssp_nonshared conftest.c >&5
/usr/bin/ld: cannot find -lssp_nonshared
Вот Ваша проблема, а именно gcc не занет такого флага
-lssp_nonshared
В рассылках был патч для исправления этой проблемы на старых системах. Еще как вариант использовать ключь
-fstack-protector
.
avatar
В догонку, неплохо было бы посмотреть в /usr/lib наличие файла libssp_nonshared.a
avatar
я так понял надо заменить в config.log ключ -lssp_nonshared на -fstack-protector? файл проверю.
avatar
Спасибо тебе добрый человек))) все пошло, ему не хватало библиотек. ты можеш подсказать книгу что про эти библиотеки почитать)))
avatar
Да нет никакой волшебной книги… :) А на Великом и Могучем, так вообще ничерта нет…
И это здорово бесит, поскольку даже наши разработчики тужаться написать английский мануал с грамматическими ошибками, но вот на родном языке писать мануалы им западло… Хотя конечно есть и исключения.
Вобщем, гугл, опыт, маны, коментарии в сырцах и списки расылки. Ну и учебник по Си и Си++ :)))
avatar
да это конечно плохо что манов нету. а то я бы с этими библиотеками долго мучился бы)))) а вот в Си я не очень силен. но теперь буду и это еще читать и разбираться. да фря всем хороша, но вот книги все однотипные мало книг с инфой да еще и которая поделу.
avatar
Могу порекомендовать вот эту книгу:
Linux Kernel Development

Автор: Роберт Лав 

Переводчик А. Судаков

Языки: Русский

Издательство: Вильямс 

ISBN 5-8459-1085-1, 0-672-32720-1; 2008 г.

она конечно больше к линуксу имеет отношение, но общие принципы единые и для линукса и для фри в ней неплохо описаны.
avatar
Спасибо большое.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.