# ERROR: Illegal installation into /usr/local [SOLVED]

## SupapleX

Недавно без проблем развернул Gentoo. Но через неделю, после попытки обновиться, наткнулся на следующий баг. Некоторые пакеты перестали устанавливаться. Преимещуственно те, что связаны с Python'ом.

А именно: setuptools cython pyopenssl zope-fixers lxml numpy zope-interface. Большинство из них ругается следующим образом: "Illegal installation into /usr/local".

Вот кусок лога при инталляции  setuptools:

```

Copying distribute.egg-info to /var/tmp/portage/dev-python/setuptools-0.6.24/temp/images/3.2/usr/local/lib64/python3.2/site-packa

running install_scripts

Installing easy_install script to /var/tmp/portage/dev-python/setuptools-0.6.24/temp/images/3.2/usr/local/bin

 * ERROR: dev-python/setuptools-0.6.24 failed (install phase):

 *   Illegal installation into /usr/local

 * 

 * Call stack:

 *     ebuild.sh, line   85:  Called src_install

 *   environment, line 5084:  Called distutils_src_install

 *   environment, line 1327:  Called die

 * The specific snippet of code:

 *           die "Illegal installation into /usr/local";

 * 

```

Валится на следующих строках скрипта инсталятора:

```

    if [[ -e "${ED}usr/local" ]]; then

        die "Illegal installation into /usr/local";

    fi;

```

Сами Python'ы переустанавливаются без проблем. python-updater обновляет часть пакетов, но валится на тех, что я выше упомянул.

Версии Python'ов, которые у меня видит eselect:    

  [1]   python2.7

  [2]   python3.1

  [3]   python3.2 *

Обновление портеджей ни к чему не приводит.

У меня есть подозрение, что проблема кроется в хаке, который я всегда делал и который никогда ранее у меня проблем не вызывал. А именно, на чистой системе я вызывал следующую команду:

```

    ln -s /usr /usr/local

```

Но после такого рукотворства я успел скомпилить сотни пакетов, включая libreoffice и kde и нигде ни на какие баги не напарывался.

Есть ли какие идеи?

 :Smile:  Фу, кажется, пронесло. Создал настоящую директорию /usr/local и всё заработало.

----------

## TigerJr

 *SupapleX wrote:*   

> Недавно без проблем развернул Gentoo. 
> 
> trololo
> 
>  Фу, кажется, пронесло. Создал настоящую директорию /usr/local и всё заработало.

 

Норм решил ну и ERROR))

----------

## dragon1020

Т.к. эта тема находится гуглом одной из первых, опубликую свое решение проблемы.

На мой взгляд /usr/local - жуткий анахронизм, так что симлинк на /usr - это правильно. Все системные утилиты, вроде find, видят и обходят зацикленности, так что проблем не возникает (по крайней мере я не сталкивался). Поэтому решаем проблему просто убирая проверку /usr/local из portage. А именно закоментарив данный кусок /usr/portage/eclass/distutils.eclass:

```

#   if [[ -e "${ED}usr/local" ]]; then

#       die "Illegal installation into /usr/local"

#   fi

```

Вуаля. Все собирается и живет без проблем и симлинк на месте.

----------

## Pinkbyte

 *dragon1020 wrote:*   

> Т.к. эта тема находится гуглом одной из первых, опубликую свое решение проблемы.
> 
> На мой взгляд /usr/local - жуткий анахронизм, так что симлинк на /usr - это правильно. Все системные утилиты, вроде find, видят и обходят зацикленности, так что проблем не возникает (по крайней мере я не сталкивался). Поэтому решаем проблему просто убирая проверку /usr/local из portage. А именно закоментарив данный кусок /usr/portage/eclass/distutils.eclass:
> 
> ```
> ...

 

Это не решение, а костыль(workaround, если хотите   :Very Happy:  ) - сообщите о проблеме на bugs.gentoo.org

По-моему symlink не должен вызывать таких проблем, если в /usr/local действительно ничего не устанавливается...

----------

