# emerge -puvD --newuse world хочет даунгрейда mysql

## Balancer

Установлен mysql 4.1.12

При попытке обновить все изменившиеся пакеты по команде

```

emerge -puvD --newuse world

```

получаю, на ряду с прочим:

```

[ebuild     UD] dev-db/mysql-4.0.24-r2 [4.1.12] +berkdb -debug +doc -minimal +perl +readline (-selinux) +ssl -static +tcpd 16,489 kB

```

Самое забавное, что этот пакет обновляется последним, после него только fuse, ручное "обновление" только fuse или только mysql так и оставляют 4.1.12

Ситуация повторяется уже на четырёх машинах, с довольно разным набором софта, два сервера, две рабочих станции.

Ручная блокировка через package.mask в вариантах:

dev-db/mysql-4.0.24-r2

<=dev-db/mysql-4.0.24-r2

и т.п. не работает.

Куда копать?  :Smile: 

----------

## serg_sk

```
echo "=dev-db/mysql-4.1.12 ~x86" >> /etc/portage/package.keywords
```

P.S. Просто установка с помощью ACCEPT_KEYWORDS ушла в прошлое  :Wink: 

----------

## Balancer

 *serg_sk wrote:*   

> 
> 
> ```
> echo "=dev-db/mysql-4.1.12 ~x86" >> /etc/portage/package.keywords
> ```
> ...

 

Дык, там и стоит давно

```

dev-db/mysql ~amd64

```

ACCEPT_KEYWORDS никогда и не использовал, всё через /etc/portage/  :Smile: 

Твой вариант, с прямым указанием версии всё равно не помогает.

Кстати, ~amd64 тут тоже не при чём, т.к. на трёх других вышеупомянутых машинах - ~x86  :Smile: 

----------

## dish

Попробуй

```

emerge -UDpv mysql

```

Если еще опцию upgradeonly не убрали из Portage...

----------

## Balancer

Да нет, во-первых, хочется именно нормального формата обновления.

Во-вторых, если делать

```

emerge -puvD --newuse mysql

```

то всё ок! Или если mysql перечислисть с любыми другими пакетами. Он считает, что последней версии стоит. Да и до 4.1.12 с 4.1.8 я раньше именно так обновился.

Но стоит только записать world - как тут же хочет ему даунгрейд делать :-/

----------

## viy

Такое часто бывает, когда разработчики ebuild'а сначала сделают его unmasked+~arch, т.е. доступным для установки, если ты сидишь на тильде. А через денек вдруг решат, что нет, поторопились --- и маскируют пакет обратно.

Вот и получаются такие пляски. Тоже самое возможно, если сидишь на стабильных пакетах и какой-то сделают сначала стабильным, а потом опять в тильду загонят.

----------

## Balancer

 *viy wrote:*   

> Такое часто бывает, когда разработчики ebuild'а сначала сделают его unmasked+~arch, т.е. доступным для установки, если ты сидишь на тильде. А через денек вдруг решат, что нет, поторопились --- и маскируют пакет обратно.

 

Но, ведь, emerge -p mysql предлагает ставить 4.1.12! :-/

М.б. попробовать его переустановить?

----------

## viy

Значит какой-то пакет хочет именно такую версию (из 4.0.* ветки).

Мне как-то ba посоветовал делать так: добавь в /etc/portage/package.mask строчку типа 

```
>=dev-db/mysql-4.0.24
```

Тогда: либо какая-то прога ругнется, что нужный ей mysql замаскирован (и ты сможешь дальше с ней плясать); либо система захочет понизить версию mysql'а еще ниже. Ну и ты тоже правишь /etc/portage/package.mask, понижая врсии, пока не выяснишь пакет, которому именно 4.0 mysql нужен.

Думаю, что искомый пакет у тебя ставиться в "стабильной" версии и добавление его в package.keywords проблему решит. Да, маску не забудь убрать  :Wink: 

----------

## hlroad

 *viy wrote:*   

> Значит какой-то пакет хочет именно такую версию (из 4.0.* ветки).

 

Такого хочет mod_php 5.0.4 - но если уж туда полез, то вроде как должен понимать с чем связался.

----------

## Balancer

[quote="viy"]Значит какой-то пакет хочет именно такую версию (из 4.0.* ветки).

Только что закончил обновление на одной из машин _всех_ пакетов (указывая их вручную), кроме mysql.

Вот _полный_ отчёт (найдите 10 различий - кстати, с libgnomecups такая же проблема):

```

# emerge -puvD --newuse world

These are the packages that I would merge, in order:

Calculating world dependencies ...done!

[ebuild     UD] net-print/libgnomecups-0.1.14 [0.2.0] -debug 0 kB

[ebuild     UD] dev-db/mysql-4.0.24-r2 [4.1.12] +berkdb -debug +doc -minimal +perl +readline (-selinux) +ssl -static +tcpd 16,489 kB

Total size of downloads: 16,489 kB

# emerge -puvD --newuse libgnomecups mysql

These are the packages that I would merge, in order:

Calculating dependencies ...done!

Total size of downloads: 0 kB

```

Кроме этих двух ни одного необновлённого пакета, как видно, больше нет.

 *Quote:*   

> Мне как-то ba посоветовал делать так: добавь в /etc/portage/package.mask строчку типа 
> 
> ```
> >=dev-db/mysql-4.0.24
> ```
> ...

 

Ставил. Ничего не меняется вообще. Вот только что прописал. Всё то же самое

```

# emerge -puvD --newuse world

These are the packages that I would merge, in order:

Calculating world dependencies ...done!

[ebuild     UD] net-print/libgnomecups-0.1.14 [0.2.0] -debug 0 kB

[ebuild     UD] dev-db/mysql-4.0.24-r2 [4.1.12] +berkdb -debug +doc -minimal +perl +readline (-selinux) +ssl -static +tcpd 16,489 kB

Total size of downloads: 16,489 kB

```

Попробую mysql переустановить сейчас :-/

Нет, libgnomecups - он быстрее пересобёрётся  :Smile: 

----------

## Balancer

 *hlroad wrote:*   

>  *viy wrote:*   Значит какой-то пакет хочет именно такую версию (из 4.0.* ветки). 
> 
> Такого хочет mod_php 5.0.4 - но если уж туда полез, то вроде как должен понимать с чем связался.

 

Естественно, понимаю  :Very Happy:  Кроме того, как раз _до этих проблем_ mysql 4.1.12 поставился вместе с mod_php-5.x на одной машине и эта же проблема вылезает с "дефолтовым" mod_php-4.x на другой машине.

Вот, до кучи:

```

# emerge -pv libgnomecups mysql

These are the packages that I would merge, in order:

Calculating dependencies ...done!

[ebuild   R   ] net-print/libgnomecups-0.2.0  -debug 0 kB

[ebuild   R   ] dev-db/mysql-4.1.12  +berkdb -cluster -debug +doc -extraengine -geometry -minimal +perl +readline (-selinux) +ssl -static +tcpd +utf8 0 kB

Total size of downloads: 0 kB

```

Т.е. видно, что сама по себе система при прямом указании вполне себе хочет ставить 4.1.12

----------

## Balancer

Весело:

```

# emerge libgnomecups

Calculating dependencies ...done!

>>> emerge (1 of 1) net-print/libgnomecups-0.2.0 to /

...

...

--- !targe sym /usr/lib64/libgnomecups-1.0.so

>>> Updating Scrollkeeper

 * Updating desktop mime database ...

 * Updating shared mime info database ...

***

* Updating MIME database in /usr/share/mime...

***

>>> original instance of package unmerged safely.

 * Installing GNOME 2 GConf schemas

>>> Updating Scrollkeeper

 * Updating desktop mime database ...

 * Updating shared mime info database ...

***

* Updating MIME database in /usr/share/mime...

***

>>> Regenerating /etc/ld.so.cache...

 * Caching service dependencies...

>>> net-print/libgnomecups-0.2.0 merged.

>>> clean: No packages selected for removal.

>>> Auto-cleaning packages ...

>>> No outdated packages were found on your system.

...

# emerge -puvD --newuse world

These are the packages that I would merge, in order:

Calculating world dependencies ...done!

[ebuild     UD] net-print/libgnomecups-0.1.14 [0.2.0] -debug 0 kB

[ebuild     UD] dev-db/mysql-4.0.24-r2 [4.1.12] +berkdb -debug +doc -minimal +perl +readline (-selinux) +ssl -static +tcpd 16,489 kB

Total size of downloads: 16,489 kB

```

Повторюсь, что такая ситуаия у меня _на всех_ машинах с соответствующими пакетами  :Smile: 

----------

## Balancer

Разобрался. По mysql:

php5-sapi-r2.eclass копируем из /usr/portage/eclasses в /usr/local/portage/eclasses/ и меняем

```

mysql? ( =dev-db/mysql-4.0* )

```

на

```

mysql? ( >=dev-db/mysql-4.0* )

```

По libgnomecups - нужно прописать ~arch флаг на net-print/gnome-cups-manager

----------

## Balancer

Бр... Ничего не понимаю :-/ Вышеописанный трюк с mysql перестал работать. Опять оно хочет даунгрейда.

----------

## hlroad

 *Balancer wrote:*   

> Бр... Ничего не понимаю :-/ Вышеописанный трюк с mysql перестал работать. Опять оно хочет даунгрейда.

 

Кто-нибудь кеш догадался прочистить ?

----------

