# use mirrors

## Bor81

Имеется следующая проблема

в некоторых ebuild'aх имеем такую строчку

 *Quote:*   

> 
> 
> RESTRICT="nomirror"
> 
> 

 

которая запрещает обращения за файлами(сорцами) к к фтп мирорам

Вопрос: как обойти этот запрет ?

(уж очень не хочется каждый раз править руками ebuild'ы)

Поясню зачем это нужно

У меня имеется в /etc/make.conf такое

 *Quote:*   

> 
> 
> GENTOO_MIRRORS="ftp://192.168.0.100/Gentoo http://192.168.0.55/get_src_uri.cgi"
> 
> 

 

сделана это потому, что не все файлы(сорцы) есть на gentoo'шных миррорах

У меня есть утилита которая проходит по укр. фтпишкам, индексирует и сохраняет данные в базу

а get_src_uri.cgi ищет есть ли в базе файл и перенаправляет на нужный мирор

----------

## Urs

Наверно, обойти можно только "в лоб".

Пройтись по дереву и вырезать nomirror.

```

find /usr/portage -type f -name *.ebuild -exec perl -pi -e 's/nomirror//' {} \;

```

У меня это заняло около 4 мин.

Либо выкусывать непосредственно в конкретном ebuild'е

```

perl -pi -e 's/nomirror//'  <путь к ebuild>

```

Сделать alias.

----------

## Bor81

 *Urs wrote:*   

> 
> 
> Сделать alias.
> 
> 

 

ага типа

 *Quote:*   

> 
> 
> alias esync="emerge sync && find /usr/portage -type f -name \*.ebuild -exec perl -pi -e 's/nomirror//' {} \;"
> 
> 

 

 :Laughing: 

но это и есть те извраты, которые я немного недолюбливаю

хотелось бы "правильного" решения   :Wink: 

----------

## Bor81

 *Quote:*   

> 
> 
> root@work portage # time find /usr/portage -type f -name \*.ebuild -exec perl -pi -e 's/nomirror//' {} \;
> 
> real    2m6.919s
> ...

 

да уж и тормоз мне этот не нравится

и файли перетягивать при каждом sync'e будет   :Sad: 

ну а 

 *Quote:*   

> 
> 
> emerge -pvuD world
> 
> 

 

так это просто вообще ждал вечность   :Confused: 

----------

## Urs

Ну, блин, ладно, вот специально ради тебя полез в portage

 :Smile: 

Значит, открываешь /usr/lib/python2.2/site-packages/portage.py

Находишь там

```

        if ("nomirror" in settings["RESTRICT"].split()):

                mymirrors=[]

        else:

```

Ну и меняешь, например на

```

        if ("nomirror" in settings["RESTRICT"].split()):

                mymirrors=settings["Bor81_IS_COOL"].split()

        else:

```

После этого можно в /etc/make.conf добавить

```

Bor81_IS_COOL="ftp://192.168.0.100/Gentoo"

```

Все.

(Я думал еще компилить придется, но нет, само.)

----------

## Bor81

 *Urs wrote:*   

> 
> 
> Значит, открываешь /usr/lib/python2.2/site-packages/portage.py
> 
> 

 

Ну просто смешная ситуация получилась  :Smile: 

 *Quote:*   

> 
> 
> root@work distfiles # ll /usr/lib/python2.2/site-packages/portage.py
> 
> ls: /usr/lib/python2.2/site-packages/portage.py: No such file or directory
> ...

 

причем 

 *Quote:*   

> 
> 
> root@work distfiles # locate portage.py
> 
> /usr/lib/python2.2/site-packages/portage.py
> ...

 

то есть я перед этим проапдейтил

[ebuild     U ] sys-apps/portage-2.0.49-r18 [2.0.49-r15] -build

 :Laughing: 

нашел его здесь

/usr/lib/portage/pym/portage.py

и сделал проще

```

#   if ("nomirror" in settings["RESTRICT"].split()):

#       # We don't add any mirrors.

#       pass

#   else:

    if (1):

        for x in settings["GENTOO_MIRRORS"].split():

```

 :Cool: 

PS: какой все таки галимый этот питон (ИМХО)  :Smile: 

отступы только табами а у меня expandtab  :Smile: 

----------

