# Проблемы с обновлением world

## ntsite

Доброе время суток...

После обычного обновления emerge --sync хотел обновить мир...

ввожу emerge -puDN world получаю вот такое в ответ

```
These are the packages that would be merged, in order:                          

                                                                                

Calculating dependencies... done!                                               

                                                                                

emerge: there are no ebuilds built with USE flags to satisfy "x11-libs/cairo[X]"

.                                                                               

!!! One of the following packages is required to complete your request:         

- x11-libs/cairo-1.8.6-r1 (Change USE: +X)                                      

(dependency required by "dev-dotnet/libgdiplus-2.0" [ebuild])                   

(dependency required by "dev-lang/mono-2.0.1-r1" [ebuild])                      

(dependency required by "world" [argument])                                     
```

Я прекрасно понимаю, что мне говорят используюй use флаг +X, но у меня в make.conf стоит -X

Машина серверная, окошки совсем мне не нужны. Я решил попробовать что получится, если использовать +X

и начало выдовать, что надо обновить множество пакетов

```
x11-libs

x11-apps
```

и т.д... плюс еще вот такое

```
USE flags should not start with a '+': +X
```

Вот тут я в растерянности, мне как бы иксы совсем не нужны и тем более библиотеки для этого. Кто что может порекомендовать?

Если без использования `+`, то те же самые бибилиотеки для иксов, но без ругони. А мне они не к чему  :Sad:  В чем тут я ошибаюсь?  :Sad: 

На этой же машине поднят rsync демон. Через нее я обновлояю вторую машину, а там все нормально, т.е. никаких иксов даже не просит... Вот к примеру что он хочет обновить...

```
neo ~ # emerge -puDN world                                                      

                                                                                

These are the packages that would be merged, in order:                          

                                                                                

Calculating dependencies... done!                                               

[ebuild     U ] sys-apps/man-pages-3.19 [3.18]                                  

[ebuild  NS   ] sys-devel/gcc-4.3.2-r3 [4.1.2] USE="fortran mudflap nls openmp (

-altivec) -bootstrap -build -doc (-fixed-point) -gcj -gtk (-hardened) -ip28 -ip3

2r10k -libffi (-multilib) -multislot (-n32) (-n64) -nocxx -nopie -objc -objc++ -

objc-gc -test -vanilla"                                                         

[ebuild     U ] net-ftp/proftpd-1.3.2-r2 [1.3.2] USE="-kerberos%"               

[ebuild     U ] net-misc/openssh-5.2_p1-r1 [5.1_p1-r2] USE="-pkcs11%"           
```

Машинки идентичны, что по конфигурации, что по ОС, т.е. обновляются в одно время и вместе... отличаются лишь некоторым набором пакетов, но опять же иксов нигде не использую...

----------

## g-user

Я только позавчера поставил gentoo и если вы не против влезу с похожим вопросом. 

Почему все обновляют систему по разному? В дистрибутивах которыми я пользовался до этого команда идентична для всех. 

У вас  *Quote:*   

> emerge -puDN world

  у них https://forums.gentoo.org/viewtopic-t-746975.html  *Quote:*   

> emerge -auvND world

 

а у них http://gentoo.blog.ru/6345603.html  *Quote:*   

> emerge -uDNvp world (или -uDNva)

 

а если залезть в http://ru.gentoo-wiki.com/wiki/HOWTO_%D0%9F%D0%BE%D0%BB%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B

 *Quote:*   

> emerge -avuDN world 

 и скрипт update-world 

а вот если еще заглянуть в хендбук http://www.gentoo.org/doc/ru/handbook/handbook-amd64.xml?full=1#book_part2

то там вообще

 *Quote:*   

> Листинг 3.12: Выполнение полного обновления
> 
> # emerge --update --deep --newuse world

 

Я конечно понимаю в linux одну вещь можно сделать десятками способов, но тут уж вы меня извините но я как в мультике - ничего не понимаю. 

Это же очень важная критичная системная функция, которая как я понимаю способная повредить систему. В моем предыдущем дистрибутиве - одна стандартная команда для обновления системы понятная младенцу - что же в этой функции такого сложного, зачем все так усложнено?

ps. Не понятно, это mono-2.0.1-r1 что ли такая требовательная и хочет x11-libs/cairo?

----------

## ntsite

Я не знаю кто требует X, но как бы и не хочу их ставить.

Про ключики

p - показывает какие пакеты (--pretend (-p))

a - показывает с какими use флагами собираются пакеты (--ask (-a)) - к примеру можно посмотреть с какими ключами собрана самба emerge -avp samba...

v - как всегда (--verbose (-v))

на самом деле хватает

```
emerge --update --deep --newuse world
```

отсюда сокращаем и получаем

```
emerge -uDN world
```

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

А если так, то вроде даже совсем нормально....

```
gate ntsite # emerge -pu system                                                 

                                                                                

These are the packages that would be merged, in order:                          

                                                                                

Calculating dependencies... done!                                               

[ebuild     U ] net-misc/openssh-5.2_p1-r1 [5.1_p1-r2] USE="-pkcs11%"           

[ebuild  NS   ] sys-devel/gcc-4.3.2-r3 [4.1.2] USE="fortran mudflap nls openmp (

-altivec) -bootstrap -build -doc (-fixed-point) -gcj -gtk (-hardened) -ip28 -ip3

2r10k -libffi (-multilib) -multislot (-n32) (-n64) -nocxx -nopie -objc -objc++ -

objc-gc -test -vanilla"                                                         
```

P.S. И тянет я так понимаю бибилиотечки dev-lang/mono

----------

## Laitr Keiows

 *g-user wrote:*   

> Это же очень важная критичная системная функция, которая как я понимаю способная повредить систему. В моем предыдущем дистрибутиве - одна стандартная команда для обновления системы понятная младенцу - что же в этой функции такого сложного, зачем все так усложнено?

 

1) От порядка флагов в этом случае ничего не зависит, потому emerge -uDavN world полностью равно emerge -uDNav world

2) Разным людям нужно разное, потому и флаги отличаются. Что в этом удивительного?..

Или ты предлагаешь отобрать у людей свободу выбирать чего же они хотят?..

Отсюда вывод. Читай man emerge до просветления.

----------

## ntsite

В общем решил сделать проще...

```
emerge -C dev-lang/mono
```

Ибо я его не юзаю и нужен был этот пакетик на 1 раз...

Вопрос не решен, но и так же не имеет смысла для продолжения.

----------

## g-user

 *Quote:*   

> Я не знаю кто требует X, но как бы и не хочу их ставить. 

 

нашел у себя в шпаргалке. 

emerge --pretend %app%          # проверка зависимостей пакета 

что совственно вы и делали.

 *Quote:*   

> Since many applications depend on each other, any attempt to install a certain software package might result in the installation of several dependencies as well. Don't worry, Portage handles dependencies well. If you want to find out what Portage would install when you ask it to install a certain package, add the --pretend switch. For instance:
> 
> Code Listing 3.5: Pretend to install gnumeric
> 
> # emerge --pretend gnumeric

 

я так понимаю он должен показывать пакет вызывающий подобные зависимости. По идее после выявления вызывающего проблемы пакета можно решить эти зависимости, каким либо образом отказавшись обновлять его, например замаскировав его 

 *Quote:*   

> x11-libs/cairo-1.8.6-r1

 

это не тот который cairo-dock? http://gimmy.files.wordpress.com/2008/02/dock1.png А что он делает на сервере?

Laitr Keiows, ntsite Спасибо.

----------

## ntsite

Ну я как бы тут особо и не старался разобраться, потому что mono как таковой пакет мне не нужен. Его прост оне я юзал... Ставил его я и раньше у него не было таких зависимостей... и почему они взялись, я тоже не знаю...

И если пакет замаскирован, то там помоему процесс установки обрывается как раз с иформацией о том, что он замаскирован.

----------

## g-user

попутно наблюдая за процессом обновления системы (мир понимаетели сотворяю   :Razz:  ) возник еще вопрос.

Возможно ли использовать чисто бинарные обновления, и насколько это реализуемо с практической точки зрения? Вопрос чисто практический - есть две машины - быстрая и относильно слабая. На быстрой крутится виртуалка с gentoo, на слабую машинку есть желание gentoo поставить. Как вы совершенно логично понимаете желания наблюдать за процессом компиляции на слабой машинке как то не особо много, тем более как я понимаю проще поправить make.conf что бы все бинарные пакеты собирались с оптимизацией под слабую машинку, это компиляция будет куда быстрее а установка пакетов будет более эффективной - займет меньше времени. 

Конечно можно настроить распределенную компиляцию, но я не думаю что это даст существенный прирост к скорости компиляции, да и к тожу же будет кушать процессорное время слабой машинки, которое довольно таки ценное. Иными словами возможноли массово собирать пакеты на машине A для устанавки их исключительно на машину Б

ps. вопрос закрыт.   :Cool: 

----------

