# emerge -puDv world => busybox [solved]

## Davidov

Почему-то после очередного 

```
emerge -puDv world

```

дженту захотел установить 

```
[ebuild  N    ] sys-apps/busybox-1.00-r4  -debug -floppyboot -make-symlinks -netboot -savedconfig -static 0 kB 

```

И если бы он не вывалился с ошибкой 

```
i686-pc-linux-gnu-gcc -I/var/tmp/portage/busybox-1.00-r4/work/busybox-1.00/include -I/var/tmp/portage/busybox-1.00-r4/work/busybox-1.00/include -I/var/tmp/portage/busybox-1.00-r4/work/busybox-1.00/e2fsprogs -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wstrict-prototypes -Wshadow -O2 -fomit-frame-pointer -D_GNU_SOURCE -DNDEBUG    -I/var/tmp/portage/busybox-1.00-r4/work/busybox-1.00/e2fsprogs/  -c -o /var/tmp/portage/busybox-1.00-r4/work/busybox-1.00/applets/applets.o /var/tmp/portage/busybox-1.00-r4/work/busybox-1.00/applets/applets.c

/bin/sh: line 1: i686-pc-linux-gnu-gcc: command not found

make: i686-pc-linux-gnu-gcc: Команда не найдена

make: *** [/var/tmp/portage/busybox-1.00-r4/work/busybox-1.00/applets/applets.o] Ошибка 127

!!! ERROR: sys-apps/busybox-1.00-r4 failed.

!!! Function src_compile, Line 143, Exitcode 2

!!! build failed

!!! If you need support, post the topmost build error, NOT this status message.

```

, то я, наверное, не стал бы спрашивать:

Почему -uDpv привел к установки busybox, если раньше его не было.

Как вообще можно узнать, чем вызвана установка того или иного пакета?

P.S.

До этого (по emerge -puDv world) были установленны:

```
     Tue Jun  7 22:11:19 2005 >>> sys-devel/gcc-config-1.3.11-r1

     Tue Jun  7 22:13:25 2005 >>> dev-libs/atk-1.9.1

     Tue Jun  7 22:14:48 2005 >>> x11-misc/shared-mime-info-0.16

     Tue Jun  7 23:06:49 2005 >>> x11-libs/gtk+-2.6.7

     Tue Jun  7 23:08:05 2005 >>> gnome-base/libglade-2.5.0

     Tue Jun  7 23:11:33 2005 >>> gnome-base/orbit-2.12.2

     Tue Jun  7 23:13:57 2005 >>> gnome-base/gconf-2.10.0

     Tue Jun  7 23:16:06 2005 >>> gnome-base/libgnomecanvas-2.10.0

     Tue Jun  7 23:16:20 2005 >>> app-text/docbook-xml-simple-dtd-1.0

     Tue Jun  7 23:17:01 2005 >>> app-text/docbook-sgml-utils-0.6.14

     Tue Jun  7 23:21:01 2005 >>> dev-util/guile-1.6.7

     Tue Jun  7 23:27:25 2005 >>> gnome-base/gnome-vfs-2.10.0-r2

     Tue Jun  7 23:29:03 2005 >>> gnome-base/libgnome-2.10.0

     Tue Jun  7 23:30:17 2005 >>> gnome-base/gnome-keyring-0.4.2

     Tue Jun  7 23:36:00 2005 >>> gnome-base/libgnomeui-2.10.0

     Tue Jun  7 23:37:47 2005 >>> x11-themes/gnome-icon-theme-2.10.0

     Tue Jun  7 23:40:44 2005 >>> x11-themes/gtk-engines-2.6.3

     Tue Jun  7 23:44:15 2005 >>> x11-themes/gnome-themes-2.10.0

     Tue Jun  7 23:46:56 2005 >>> gnome-base/gnome-desktop-2.10.0

     Tue Jun  7 23:48:12 2005 >>> media-libs/sdl-mixer-1.2.6

     Tue Jun  7 23:49:16 2005 >>> net-print/libgnomecups-0.2.0

     Tue Jun  7 23:51:59 2005 >>> gnome-base/libgnomeprint-2.10.0

     Tue Jun  7 23:54:23 2005 >>> gnome-base/libgnomeprintui-2.10.0.1

     Tue Jun  7 23:55:25 2005 >>> net-print/foomatic-db-20041220

```

----------

## viy

Прошел через все это.

1) сделай еще раз emerge sync, тогда поставиться без ошибок;

2) это пакет, который объединяет большой набор утилиток: http://www.busybox.net/screenshot.html

Судя по всему, его сделали частью system.

----------

## Davidov

 *viy wrote:*   

> Прошел через все это.
> 
> 1) сделай еще раз emerge sync, тогда поставиться без ошибок;
> 
> 2) это пакет, который объединяет большой набор утилиток: http://www.busybox.net/screenshot.html
> ...

 

Спасибо, с busybox'ом, в принципе даже работал, в курсе.

Сейчас попробую emerge --sync.

О результатах сообщу.

----------

## Davidov

 *viy wrote:*   

> Прошел через все это.
> 
> 1) сделай еще раз emerge sync, тогда поставиться без ошибок;
> 
> 2) это пакет, который объединяет большой набор утилиток: http://www.busybox.net/screenshot.html
> ...

 

Не помогло. Все равно выходит с той же ошибкой.

Я вообще не очень понимаю, почему он ставится. Пакет-то довольно специфический, используется, как правило, во встраиваемых системах.

----------

## kaktyc

 *Davidov wrote:*   

> Я вообще не очень понимаю, почему он ставится. Пакет-то довольно специфический, используется, как правило, во встраиваемых системах.

 

http://www.gentoo.org/news/en/gwn/20050606-newsletter.xml

 *Quote:*   

> Busybox glitch contained
> 
> As some of you may have noticed, the "rescue shell" was changed from sash to busybox a few days ago. This was motivated by the extra features and the extensibility of busybox, but on some systems it has lead to compile failures. Since busybox is now part of "system", it was emerged on every update, so all users were potentially affected. 
> 
>  After some debugging the problem was identified as a bug in the stable toolchain related to the nptl and nptlonly USE flags which had been overlooked during the original testing. It is triggered by busybox being built as a static binary - if it isn't, it can't be used for recovery. This has been fixed now as far as we can tell. Sorry for the inconvenience!

 

А остальное собирается? Меня смущает строчка

```
/bin/sh: line 1: i686-pc-linux-gnu-gcc: command not found 

make: i686-pc-linux-gnu-gcc: Команда не найдена 
```

----------

## Davidov

 *kaktyc wrote:*   

> А остальное собирается? Меня смущает строчка
> 
> ```
> /bin/sh: line 1: i686-pc-linux-gnu-gcc: command not found 
> 
> ...

 

Спасибо за информацию.

Меня тоже смущает  :Smile: 

У меня все собирается, но есть только

 *Quote:*   

> i686-pc-linux-gnu-addr2line
> 
> i686-pc-linux-gnu-ld
> 
> i686-pc-linux-gnu-readelf
> ...

 

А можешь сделать

```
equery belongs i686-pc-linux-gnu-gcc
```

И все-таки, разве rescure shell как-то касается пользователей, которые не используют genkernel?

----------

## kaktyc

Вообще-то i686-pc-linux-gnu-gcc это есть gcc:

```
$ equery belongs i686-pc-linux-gnu-gcc

[ Searching for file(s) i686-pc-linux-gnu-gcc in *... ]

sys-devel/gcc-3.3.5.20050130-r1 (/usr/i686-pc-linux-gnu/gcc-bin/3.3.5-20050130/i686-pc-linux-gnu-gcc)

sys-devel/gcc-3.4.4 (/usr/i686-pc-linux-gnu/gcc-bin/3.4.4/i686-pc-linux-gnu-gcc)
```

А что выдает ?

```
gcc-config -l
```

----------

## ManJak

Может еще раз попробовать 

emerge --sync?

Просто, у меня собрался без траблов на всех машинках.

----------

## Davidov

 *kaktyc wrote:*   

> Вообще-то i686-pc-linux-gnu-gcc это есть gcc:
> 
> ```
> $ equery belongs i686-pc-linux-gnu-gcc
> 
> ...

 

```
davidov@music ~ $ gcc-config -l

[1] i386-pc-linux-gnu-3.3.5-20050130 *

[2] i386-pc-linux-gnu-3.3.5-20050130-hardened

[3] i386-pc-linux-gnu-3.3.5-20050130-hardenednopie

[4] i386-pc-linux-gnu-3.3.5-20050130-hardenednossp

```

Спасибо, всё понял.  Я просто сменил месяц назад CHOST в /etc/make.conf. Сейчас пересоберу gcc.

P.S. emerge --sync я уже делал несколько раз, спасибо. Дело, судя по всему, не в этом.

----------

## Davidov

Всем спасибо, теперь подробный отчет.

Недавно я сменил CHOST (который в самом начале случайно поставил на i386).

Большинство программ компилировались, но вот ebuild busybox, видимо, использовал значение из CHOST.

Соответственно я пересобрал gcc и обнаружил, что python (а следовательно и emerge и env-update) не загружаются, т.к. не могут найти libstdc++.so.5. Посмотрел, что в /etc/ld.so.conf находится старый путь к библиотекам (386, а не 686).

В /etc/env.d/ обнаружил

```
05gcc-i686-pc-linux-gnu:

PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.3.5-20050130"

ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.3.5-20050130"

05gcc:

PATH="/usr/i386-pc-linux-gnu/gcc-bin/3.3.5-20050130"

ROOTPATH="/usr/i386-pc-linux-gnu/gcc-bin/3.3.5-20050130"

MANPATH="/usr/share/gcc-data/i386-pc-linux-gnu/3.3.5-20050130/man"

INFOPATH="/usr/share/gcc-data/i386-pc-linux-gnu/3.3.5-20050130/info"

LDPATH="/usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.5-20050130"

GCC_SPECS=""
```

.

Убрал 05gcc, а в 05gcc-i686-pc-linux-gnu добавил LD строчку (наверное это не совсем правильно, у кого новый baselayout поделитесь, как оно должно быть?).

После env-update всё, вроде бы, заработало.

----------

## kaktyc

У меня baselayout-1.11.12-r4

```
kaktyc@geexbox ~ $ cat /etc/env.d/05gcc

PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.4.4"

ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.4.4"

MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.4.4/man"

INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.4.4/info"

LDPATH="/usr/lib/gcc/i686-pc-linux-gnu/3.4.4:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130"

GCC_SPECS=""

kaktyc@geexbox ~ $ cat /etc/env.d/05gcc-i686-pc-linux-gnu

PATH="/usr/i386-pc-linux-gnu/gcc-bin/3.3"

ROOTPATH="/usr/i386-pc-linux-gnu/gcc-bin/3.3"
```

Вроде все так.

----------

## Davidov

 *kaktyc wrote:*   

> Вроде все так.

 

Ну тогда всё отлично. Пришлось воспользоваться fix_libtool_files.sh, теперь всё, вроде, нормально. Спасибо.

----------

