# [SOLVED] [PORTAGE] Update pakietów, a ich wersja

## caruso

Czy możliwe jest proste zaaktualizowanie pakietów których wersja skoczyła przynajmniej o jeden numerek?

Np 

```
app-arch/unrar-3.7.3 [3.6.8] [tak]

kde-base/kdebase-3.5.6-r1 [3.5.6] [nie]
```

[btw] Pytam o taką możliwość, a nie konsekwencje z tego tytułu płynące  :Razz: 

----------

## Poe

owszem, jest mozliwy downrage.

----------

## caruso

Chyba źle sformułowałem pytanie. Np mam wersję glibc-2.5 a wyszła wersja glibc-2.5-r1, która w sumie niewiele mi daje. I chcę żeby nieaktualizował tego pakietu podczas np 

```
emerge world
```

----------

## Poe

to dodajesz do /etc/portage/package.mask wpis

```

=sys-dev/glibc-2.5-r1

```

i po problemie. jest o tym w dokumentach Gentoo. ina forum tez o tym nie raz było

----------

## caruso

Z całym szacunkiem Poe, do jasnej ciasnej - nie rób ze mnie idioty - wiem co to jest downrage,  wiem, że to jest metoda dla jednego pakietu czy nawet kilkunastu. Glibc był tylko przykładem. Co gdy będzie takich programów ok 100 poza tym, działając tym sposobem nie ma elastycznej kontroli.

----------

## nbvcxz

miałem już napisać to co Poe, ale jeżeli nie tak to zobacz na:

http://gentoo-wiki.com/TIP_The_/etc/portage/bashrc_file

i reszta w twoich rękach   :Smile: 

----------

## caruso

nbvcxz: nie bardzo widze co ma to wspólnego z moim zagadnieniem. OK trzecia próba  :Very Happy:  :

Potrzebuje czegoś co porówna aktualnie zainstalowane wersje programów do tych które chce zaaktualizować. I tak np. powiedzmy że zainstalowany jest glibc w wersji 2.5 a chce aktualizować do 2.5-r1. Nie chcę aby emergował "takie lekkie zmiany". Ale gdy chce aktualizować powiedzmy do 2.5.1 to chce mu pozwolić. Czyli ogólnie nazwa_paczki-wersja nie aktualizował do nazwa_paczki-wersja-r1. Inny przykład np kdebase-3.5.6-r1 nie aktualizował do 3.5.6-r2.

Może ktoś ma pomysł na skrypcik  :Very Happy:  lub posiada takowy?

----------

## Belliash

to chyba nie dziala z najnowszym portage... choc moge sie mylic  :Wink: 

----------

## Raku

 *caruso wrote:*   

> Może ktoś ma pomysł na skrypcik  lub posiada takowy?

 

możesz sobie sam napisać wrappera na emerge lub zmienić dystrybucję, jak ci nie podoba się filozofia aktualizacji gentoo.

----------

## Poe

faktycznie, przepraszam, zle zrozumiałem.

----------

## Yatmai

 *Raku wrote:*   

> lub zmienić dystrybucję, jak ci nie podoba się filozofia aktualizacji gentoo.

 

Raku, "zmień distro jak sie nie podoba" to nie rozwiązanie. Nie możesz z góry założyć, że developerzy są święci, nieomylni i zawsze kroczą właściwą ścieżką.

W tym przypadku zgadzam się z caruso, kompilowanie kdelibs, bo wersja z 3.5.6-r1 przeskoczyła na r2 jest nieco bez sensu zważywszy na czas kompilacji i częstotliwość pojawiania się nowych r*. Więc może warto by coś takiego napisać, albo ktoś podsunie pomysł ludziom odpowiedzialnym za emerge  :Smile: 

----------

## Raku

 *Yatmai wrote:*   

> kompilowanie kdelibs, bo wersja z 3.5.6-r1 przeskoczyła na r2 jest nieco bez sensu zważywszy na czas kompilacji

 

a jeśli changelog mówi, że r2 załatał dziurę wielką jak z Polski na biegun północny?

tak się zdarza, więc developerzy nie dopuszczą do tego, by można było pominąć takie pomniejsze aktualizacje. Jak by to świadczyło o dystrybucji?

 *Quote:*   

>  i częstotliwość pojawiania się nowych r*. Więc może warto by coś takiego napisać, albo ktoś podsunie pomysł ludziom odpowiedzialnym za emerge 

 

a jak kiedyś narzekałem na długość czasu kompilacji w gentoo, to mnie zjechaliście, że to nie przeszkadza, że jest fajnie itede, itepe, i ajk mi się nie podoba, to żebym zwijał swoje grabki na forum Archa. Nagle się okazuje, że nie jest tak kolorowo?

Wybaczcie, ale z pełną premedytacją napisze kolejny znaczek:  :Mr. Green: 

Albo używacie dystrybucji opartej na źródłach ze wszystkimi jej zaletami i, jak się okazuje, upierdliwymi wadami, albo zmieniacie dystrybucję na opartą o pakiety binarne - wtedy takie przeskoki z r1 na r2 nie są problemem:

```
raku@demon:~ $ yaourt -Qi kdelibs |grep Version

Version        : 3.5.6-7
```

instalacja wszystkich siedmiu wersji zajęła (po odliczeniu czasu ściągania pakietu) łącznie niecałą minutę.

----------

## tboloo

 *Poe wrote:*   

> to dodajesz do /etc/portage/package.mask wpis
> 
> ```
> 
> =sys-dev/glibc-2.5-r1
> ...

 

@Poe A gdzie ort ?   :Very Happy: 

----------

## Poe

 *tboloo wrote:*   

>  *Poe wrote:*   to dodajesz do /etc/portage/package.mask wpis
> 
> ```
> 
> =sys-dev/glibc-2.5-r1
> ...

 

jest różnica pomiędzy brakiem spacji, czy drobnym przestawieniem liter (jak np. "nei" zamiast "nie") a napisaniem "rurznica" czy "żotkiefka"..... EOT

----------

## tboloo

 *Poe wrote:*   

> 
> 
> jest różnica pomiędzy brakiem spacji, czy drobnym przestawieniem liter (jak np. "nei" zamiast "nie") a napisaniem "rurznica" czy "żotkiefka"..... EOT

 

Wiem, czepiam się   :Rolling Eyes: 

----------

## caruso

 *Raku wrote:*   

>  *caruso wrote:*   Może ktoś ma pomysł na skrypcik  lub posiada takowy? 
> 
> możesz sobie sam napisać wrappera na emerge lub zmienić dystrybucję, jak ci nie podoba się filozofia aktualizacji gentoo.

 

Po primo, pisałem żeby nie pisać jakie to niesie konsekwencje   :Twisted Evil: 

Po sekundo z gentoo mi dobrze, a po prostu szkoda zasobów kompa na każdorazowy update całego systemu.

Następnie, jak taki wrapper napisać?

----------

## Raku

 *caruso wrote:*   

> Po primo, pisałem żeby nie pisać jakie to niesie konsekwencje   

 

ja napisałem o konsekwencjach tylko po to, żeby wyjaśnić, dlaczego czegoś takiego nie ma i raczej nie będzie.

 *Quote:*   

> Po sekundo z gentoo mi dobrze, a po prostu szkoda zasobów kompa na każdorazowy update całego systemu.

 

czyli jednak nie jest tak dobrze, jak piszesz   :Rolling Eyes: 

Możesz zrezygnować z częstych aktualizacji i wykonywać je np. raz na miesiąc.

 *Quote:*   

> Następnie, jak taki wrapper napisać?

 

rozpisujesz sobie schemat działania  - czyli jak ma wg ciebie działać "nowy" emerge -uD,

tworzysz skrócony algorytm działania

man wybrany_język_skryptowy

implementujesz w języku skryptowym stworzony wcześniej algorytm.

Musiałoby to działać mniej więcej tak:

1) emerge -puD zapisujesz w pliku

2) dla każdego wiersza sprawdzasz, czy aktualizacja dotyczy tylko wersji r*, którą chcesz odrzucić - jeśli tak, usuwasz info o pakiecie

3) dla pozostałej listy pakietów uruchamiasz emerge --oneshot

----------

## caruso

 *Raku wrote:*   

>  *caruso wrote:*   Po primo, pisałem żeby nie pisać jakie to niesie konsekwencje    
> 
> ja napisałem o konsekwencjach tylko po to, żeby wyjaśnić, dlaczego czegoś takiego nie ma i raczej nie będzie.
> 
>  *Quote:*   Po sekundo z gentoo mi dobrze, a po prostu szkoda zasobów kompa na każdorazowy update całego systemu. 
> ...

 

OK. Powiedzmy. Czyli sobie musze sam to skołować.

----------

