# [SOLVED] Niekompletny update world

## arek.k

Mam pytanie, jak aktualizować system?

Niby pytanie wydaje się głupie, ale mem nadzieję, że do końca takim nie jest.

Więc do rzeczy. Lista zainstalowanych pakietów, dla których jest nowsza wersja: 

```
# eix -I | grep [\[U\]]

[U] app-editors/nano

[U] app-text/docbook-sgml-dtd

[U] dev-python/docutils

[U] sys-apps/ed

[U] virtual/perl-Scalar-List-Utils
```

Więc próba 1: 

```
# emerge -p world

[ebuild     U ] app-editors/nano-2.0.6 [2.0.4]
```

Trochę tego mało, ale może rozważam zbyt małe zagłębienie zleżności, więc próba 2 (zwykle tak się robi): 

```
# emerge -Dp world

[ebuild     U ] sys-apps/ed-0.5 [0.4]

[ebuild     U ] app-editors/nano-2.0.6 [2.0.4]
```

Może ja już zapomniałem jak się uaktualnia system, dlatego pytam. Jak zaktualizowac cały system, bez śledzenia, co tak naprawdę wymaga aktualizacji?Last edited by arek.k on Sat Jul 07, 2007 9:35 am; edited 1 time in total

----------

## w.tabin

 *arek.k wrote:*   

> 
> 
> ```
> # emerge -Dp world
> 
> ...

  Nie prościej 

```
 #emerge -uDN world
```

 Pozdrawiam

----------

## arek.k

Wydawało mi się, że -D wymusza -u (--update) ale teraz nie mogę znaleźć opisu, który by to potwierdzał.

Opcja -N sprawdza tylko, czy zmieniły się flagi USE, dlatego nie podawałem tej opcji.

Włączenie opcji -u nie zmienia sytuacji: 

```
# emerge -puD world

[ebuild     U ] sys-apps/ed-0.5 [0.4]

[ebuild     U ] app-editors/nano-2.0.6 [2.0.4]
```

----------

## BeteNoire

Eix czasem coś źle podaje, ufaj temu co wyświetla emerge.

```
emerge -uDN world
```

A jeśli to Cię nie przekonuje to spróbuj:

```

emerge -auvD$1 --oneshot `qlist -IC | tr '\n' ' '`
```

(wyszukane gdzieś na forum)

----------

## w.tabin

 *arek.k wrote:*   

> Wydawało mi się, że -D wymusza -u (--update) ale teraz nie mogę znaleźć opisu, który by to potwierdzał.
> 
> Opcja -N sprawdza tylko, czy zmieniły się flagi USE, dlatego nie podawałem tej opcji.
> 
> Włączenie opcji -u nie zmienia sytuacji: 
> ...

 

Wycinek z handbook

```
Uaktualnianie systemu

Aby utrzymać swój system w dobrej kondycji (nie wspominając już o instalacji najnowszych poprawek związanych z bezpieczeństwem), należy dość często go uaktualniać. W związku z tym, że w tym procesie Portage porównuje zainstalowane oprogramowanie z ebuildami z drzewa Portage, należy najpierw pobrać jego aktualną wersję. Kiedy już je zaktualizujemy przychodzi czas na właściwe uaktualnienie systemu. Dokonujemy tego poleceniem emerge --update world. W poniższym przykładzie skorzystamy także z opcji --ask, która spowoduje wyświetlenie listy pakietów do aktualizacji, a następnie pytania czy na pewno chcemy je zaktualizować.

Listing 13: Uaktualnianie systemu

# emerge --update --ask world

Portage znajdzie wszystkie bezpośrednio zainstalowane przez użytkownika aplikacje (znajdują się ona na liście w pliku /var/lib/portage/world), ale pominie uaktualnienia ich zależności. Aby uaktualnić całe oprogramowanie wraz z zależnościami, należy dodać jeszcze argument --deep:

Listing 14: Uaktualnienie całego systemu

# emerge --update --deep world

W związku z tym, że poprawki związane z bezpieczeństwem zdarzają się nie tylko w programach zainstalowanych bezpośrednio, ale również w ich zależnościach zalecamy częste uruchamianie tego polecenia.

Jeżeli ostatnio zmieniane były flagi USE, polecamy również dodanie do całej tej linii poleceń argumentu --newuse. Portage sprawdzi wtedy czy zmiany we flagach USE niosą ze sobą potrzebę przekompilowania i przeinstalowania którychś z zainstalowanych programów:

Listing 15: Przeprowadzenie pełnego uaktualnienia

# emerge --update --deep --newuse world

```

Pozdrawiam

----------

## arek.k

 *BeteNoire wrote:*   

> Eix czasem coś źle podaje, ufaj temu co wyświetla emerge.
> 
> ```
> emerge -uDN world
> ```
> ...

 

Oczywiście to sprawdziłem. Dowód: 

```
# emerge -p app-editors/nano app-text/docbook-sgml-dtd dev-python/docutils sys-apps/ed virtual/perl-Scalar-List-Utils

[ebuild  N    ] perl-core/Scalar-List-Utils-1.19

[ebuild     U ] app-editors/nano-2.0.6 [2.0.4]

[ebuild  NS   ] app-text/docbook-sgml-dtd-4.4

[ebuild     U ] dev-python/docutils-0.4-r2 [0.4-r1]

[ebuild     U ] sys-apps/ed-0.5 [0.4]

[ebuild     U ] virtual/perl-Scalar-List-Utils-1.19 [1.18]
```

@w.tabin

No właśnie o tym mówię: 

```
Portage znajdzie wszystkie bezpośrednio zainstalowane przez użytkownika aplikacje (znajdują się ona na liście w pliku /var/lib/portage/world), ale pominie uaktualnienia ich zależności. Aby uaktualnić całe oprogramowanie wraz z zależnościami, należy dodać jeszcze argument --deep:

Listing 14: Uaktualnienie całego systemu

# emerge --update --deep world

W związku z tym, że poprawki związane z bezpieczeństwem zdarzają się nie tylko w programach zainstalowanych bezpośrednio, ale również w ich zależnościach zalecamy częste uruchamianie tego polecenia.
```

W związku z tym, jak wyjaśnić brak próby aktualizacji wymienionych w poprzednich wątkach pakietów?

Nie ma ich w /var/lib/portage/world, więc skoro są zainstalowane, powinny być zależnościami innych pakietów.

Niezależnie jednak czy są zainstalowane bezpośrednio, czy jako zależności, powinny byc uaktualniane przy wykonaniu emerge -uD world, a nie są Stąd właśnie moje pytanie - próbuje ustalić, czy to ja jestem głupi, czy portage pomija zależności (przy update).

----------

## sebas86

 *arek.k wrote:*   

> Niezależnie jednak czy są zainstalowane bezpośrednio, czy jako zależności, powinny byc uaktualniane przy wykonaniu emerge -uD world, a nie są Stąd właśnie moje pytanie - próbuje ustalić, czy to ja jestem głupi, czy portage pomija zależności (przy update).

 

Hmm, deep raczej nie wymusza update. Co do zależności, może instalowałeś kiedyś te pakiety z opcją oneshot.

----------

## arek.k

 *sebas86 wrote:*   

> Co do zależności, może instalowałeś kiedyś te pakiety z opcją oneshot.

 

100% pewności jeszcze nie mam, ale chyba (po części) masz rację. Raczej nie podejrzewam, żebym "ręcznie" instalował np. docbook-sgml-dtd. Wygląda jednak na to, że  pakiety sprawiające problemy nie są zależnościami pakietów z world (ani zależnościami zależności). Pewnie nie zrobiłem należytego porządku przy deinstalacji jakichś pakietów.

Jedyny problem to virtual/perl-Scalar-List-Utils. Jest zależnością np. app-office/openoffice.

Co jeszcze dziwniejsze perl-core/Scalar-List-Utils nie jest zainstalowany (bardzo ciekawe, być może to jakieś uszkodzenie, które popełniłem).

Usuń poniższy, to nikt się nie dowie  :Wink: Last edited by arek.k on Fri Jul 06, 2007 9:36 pm; edited 1 time in total

----------

## sebas86

 *arek.k wrote:*   

>  *sebas86 wrote:*   Przepraszam, ale nie widzę abyś w którymkolwiek listingu używał opcji update. 
> 
> https://forums.gentoo.org/viewtopic.php?p=4132752#4132752

 

Już wiem, przepraszam, przeoczyłem przy pierwszym czytaniu.  :Wink:  A już myślałem, że udało mi się wywalić post zanim ktokolwiek zauważy.  :Very Happy: 

----------

## dziadu

A tak z czystej ciekawości: wykonałeś oczywiście

```
update-eix
```

prawda?

----------

## arek.k

 *dziadu wrote:*   

> A tak z czystej ciekawości: wykonałeś oczywiście
> 
> ```
> update-eix
> ```
> ...

 

Tak. Zresztą (jak widać powyżej) nie marudzę, że coś mi nie działa tylko na podstawie wyniku eix-a. Mówię cały czas o wynikach działania emerge (a eix-em podpieram się tylko, bo bawiąc się nim zauważyłem tą nieścisłość).

Sprawa prawie się wyjaśniła - @sebas86 naprowadził mnie na rozwiązanie. Jedyny problem stanowi virtual/perl-Scalar-List-Utils.

Trochę nie rozumiem jeszcze dlaczego emerge nie chce go upgrade-ować przy emerge -uD world (ten pakiet jest potrzebny - jest zależnością kilku pakietów).

----------

## Arfrever

 *arek.k wrote:*   

> Jedyny problem stanowi virtual/perl-Scalar-List-Utils.
> 
> Trochę nie rozumiem jeszcze dlaczego emerge nie chce go upgrade-ować przy emerge -uD world (ten pakiet jest potrzebny - jest zależnością kilku pakietów).

 

Spróbuj dodać opcję "--with-bdeps=y".

Perduodu linkėjimus

Arfrever

----------

## arek.k

No rzeczywiście ta opcja "pomaga".

```
$ man emerge

--with-bdeps < y | n >

              Podczas obliczeń zależności wciągnij zależności czasu budowania, które nie są ściśle wymagane. Domyślnie  jest

              to   ’n’  dla  czynności  instalacyjnych  i  ’y’  dla  akcji  --depclean.  To  ustawienie  może  być  dodane  do

              EMERGE_DEFAULT_OPTS (patrz make.conf(5)) i później nadpisane w linii poleceń.
```

Nie do końca jest jeszcze dla mnie jasne pojęcie "nie są ściśle wymagane" - co ono ma oznaczać w praktyce.

Oczywiście problem rozwiązany (tzn. wyjaśniła sie sprawa wszystkich pakietów, których brakuje na liście emerge -Dup world).

----------

## Arfrever

 *arek.k wrote:*   

> 
> 
> ```
> $ man emerge
> 
> ...

 

Ważniejszy jest fragment "zależności czasu budowania". Oznacza on zależności, które są potrzebne do zainstalowania danego pakietu, ale niekoniecznie są później potrzebne do działania tego pakietu.

Perduodu linkėjimus

Arfrever

----------

## arek.k

Teraz wszystko jasne. Dzięki za odpowiedź.

----------

