# Przejście z KDE-4.3.5 na KDE-4.4.4 [SOLVED]

## Xywa

Witam,

To było jak w bajce. Dawno, dawno temu... 

...nie robiłem update systemu bo byłem na długich wczasach. Wracam, włączam kompa, robie emerge -uDN world i...

...okazuję się że pliki ze starego kde 4.3.5 blokują się z plikami z kde 4.4.4

Chciałem poczytać na ten temat, ale polskie manuale z Gentoo.org są albo dla kde 3.5

http://www.gentoo.org/proj/pl/desktop/kde/kde-config.xml

albo mają informacje: Uwaga: Ten dokument zawiera błędy lub nie jest już aktualizowany.

http://www.gentoo.org/proj/pl/desktop/kde/kde4.xml

Jak więc ugryźć problem?Last edited by Xywa on Thu Aug 12, 2010 7:23 am; edited 1 time in total

----------

## canis_lupus

wywalić kde i zainstalować od nowa

----------

## dziadu

Xywa, gdyby to zadał jakiś żółtodziób na forum, ale Ty? Problem o który pytasz jest tak świeży, że znajduje się na pierwszej stronie tematów na forum: https://forums.gentoo.org/viewtopic-p-6340190-highlight-.html#6340190

Weź się chłopie ogarnij.

----------

## Xywa

 *dziadu wrote:*   

> Xywa, gdyby to zadał jakiś żółtodziób na forum, ale Ty? Problem o który pytasz jest tak świeży, że znajduje się na pierwszej stronie tematów na forum: https://forums.gentoo.org/viewtopic-p-6340190-highlight-.html#6340190
> 
> Weź się chłopie ogarnij.

 

Od 5 lat wiele się w Gentoo pozmieniało (szczególnie jeżeli chodzi o KDE). Zajrzyj na polskie mauale do Gentoo.org, to zobaczysz porady z 2007(!) i 2008 roku dotyczące rozdzielonych ebildów... (nieźle jak na oficjalną stronę) więc to co było regułą kiedyś jest teraz w archiwum. Siłą Gentoo była swego czasu doskonała dokumentacja, obecnie (po polsku) nie jest ona nawet aktualna. Są na szczęście angielskie manuale są jako tako w miare aktualizowane, ale nie jest już to tak hej jak było w 2005, kiedy Gentoo było 6-tą dystrybucją na distrowatch, gdzie obecnie jest na 22-miejscu. Przez osotanie lata dawałem sobie radę z aktualizacją Gentoo jako żółtodziób, obecnie mam problemy jako user z doświadczeniem - wniosek wyciągnij sobie sam...

Wracając do mego systemu, zastosowałem porady z linka co podałeś:

```
cp /var/lib/portage/world ~/world_backup 

emerge -C `qlist -I -C kde-base/*` 

cp ~/world_backup /var/lib/portage/world 

emerge @system @world -uDpv
```

I po wpisaniu ostatniej komendy mam:

```
# emerge @system @world -uDpv

!!! '@system' is not a valid package atom.

!!! Please check ebuild(5) for full details.
```

Ok, zrobiłem po staremu - emerge -uDN world i mam:

```
...

...

!!! Problems have been detected with your world file

!!! Please run emaint --check world

!!! Ebuilds for the following packages are either all

!!! masked or don't exist:

kde-base/kdeadmin-meta:4.3 kde-base/kdepim-meta:4.3 kde-base/kdeutils-meta:4.3 kde-base/kdeartwork-meta:4.3
```

Uruchomiełm emaint --check world i mam:

```
# emaint --check world

Checking world for problems

100% [========================================================================>]

'kde-base/kdepim-meta:4.3' is not installed

'kde-base/kdegraphics-meta' is not installed

'kde-base/kdeartwork-meta:4.3' is not installed

'kde-base/kdeplasma-addons' is not installed

'kde-base/kdeadmin-meta:4.3' is not installed

'kde-base/plasma-workspace' is not installed

'kde-base/kdebase-meta' is not installed

'kde-base/kdeutils-meta:4.3' is not installed

'kde-base/okular' is not installed

'kde-base/kdemultimedia-meta' is not installed
```

Gdy uruchomie emerge --depclean mam:

```
# emerge --depclean                        

 ...

Calculating dependencies... done!

 * Dependencies could not be completely resolved due to

 * the following required packages not being installed:

 *                                                     

 *   virtual/jpeg pulled in by:                        

 *     media-libs/lcms-1.19                            

 *                                                     

 *   >=kde-base/phonon-kde-4.3 pulled in by:           

 *     media-sound/amarok-2.2.2-r1                     

 *                                                     

 *   >=kde-base/kdelibs-4.4 pulled in by:              

 *     app-office/kmymoney-3.98.1                      

 *                                                     

 *   >=kde-base/kdelibs-4.3 pulled in by:              

 *     kde-misc/krusader-2.0.0-r1                      

 *                                                     

 *   >=kde-base/kdelibs-4.3[opengl] pulled in by:      

 *     media-sound/amarok-2.2.2-r1

 *

 *   >=kde-base/kdelibs-4.3 pulled in by:

 *     app-cdr/k3b-1.92.0_rc3

 *

 *   >=kde-base/kdepimlibs-4.4 pulled in by:

 *     app-office/koffice-libs-2.1.2

 *

 *   x11-misc/ktsuss pulled in by:

 *     net-misc/wicd-1.7.0

 *

 *   >=kde-base/kdelibs-4.4 pulled in by:

 *     app-office/kplato-2.1.2

 *

 *   virtual/jpeg pulled in by:

 *     x11-libs/gtk+-2.18.9

 *

 *   >=kde-base/kdelibs-4.3 pulled in by:

 *     media-sound/amarok-2.2.2-r1

 *

 *   >=kde-base/libkcddb-4.3 pulled in by:

 *     app-cdr/k3b-1.92.0_rc3

 *

 *   >=kde-base/kdelibs-4.4 pulled in by:

 *     app-office/koffice-libs-2.1.2

 *

 *   >=kde-base/kdepimlibs-4.4 pulled in by:

 *     app-office/kmymoney-3.98.1

 *

 *   virtual/jpeg pulled in by:

 *     media-libs/libmng-1.0.10

 *

 *   >=kde-base/kdelibs-4.4 pulled in by:

 *     app-office/koffice-data-2.1.2

 *

 * Have you forgotten to run `emerge --update --newuse --deep world` prior

 * to depclean? It may be necessary to manually uninstall packages that no longer

 * exist in the portage tree since it may not be possible to satisfy their

 * dependencies.  Also, be aware of the --with-bdeps option that is documented

 * in `man emerge`.

 * IMPORTANT: 1 news items need reading for repository 'gentoo'.

 * Use eselect news to read news items.
```

Co dalej?

----------

## dziadu

Prawdopodobnie masz wpisane w pliku world nazwy pakietów wraz ze slotami :4.3, a teraz ebuildów dla 4.3 już nie ma. Zrób tak:

1. Aby się upewnić:

```
grep kde-base /var/lib/portage/world
```

Powinno wypisać wszystkie pakiety kde, przy niektórych z nich możesz zobaczyć sloty :4.3

2. Sprawdź, czy wynik tego polecenie jest poprawny - powinno usunąć numery slotów z world:

```
sed s/:4.3//g /var/lib/portage/world | grep kde-base
```

3. Jeśli dostałeś powyżej wszystkie wpisy poprawnie i bez slotów to teraz daj:

```
sed s/:4.3//g -i /var/lib/portage/world
```

4. Jedziesz z "emerge world"

A co do Twojego błędu z emerge, że '@system' nie jest prawidłowym wpisem, to wina starego portage. Używasz gałęzi stabilnej, prawda? Odblokuj sobie zatem portage w package.unmask i zainstaluj wersję portage-2.2_rc67, albo nadal korzystaj ze starszej wersji, choć nowa wersja działa bardzo dobrze i nie powinno być obaw przed przejściem na nią.

Powodzenia.

PS Polecenia pisałem z pamięci, mam nadzieję, że żadna literówka się nie wkradła.

----------

## Xywa

1) Wielkie dzięki, zadziałało - mógłbyś dla potomnych króciotko opisać co dały poszczególne komendy.

2) W angielskiej dokumentacji napisane jest że instalacji KDE można dokonać porzez "meta packages or by using sets". Ja od długieczo czasu użuwam meta-pakietów, ale nie wiem nic na temat zestawów. Co jest lepsze, co jest bardziej rozwojowe? Jest jakiś artykuł na ten temat?

3) Nie wiesz przypadkiem z kim się skontaktować aby móc zaktualizować polski podręczni do KDE na Gentoo.org? Ostatnia wersja pochodzi z 23 czerwca 2007, gdzie wersja angielska jest już z 3 marca 2010 (choć też już deczko nieaktualna bo 4.4.2 jest uważane tam za wersje testową). Moge pomóc w tłumaczeniach lub znaleść sponsora na tłumaczenie. Będzie mniej banalnych pytań (jak moje teraz) na forum.

Jeszcze raz dzięki za odpowiedź, wszystko działa.

----------

## dziadu

AD 1

```
cp /var/lib/portage/world ~/world_backup
```

Zróbić kopie roboczą pliku world dla bezpieczeństwa

```
emerge -C `qlist -I -C kde-base/*`
```

Po szczegóły zobaczyć do "man qlist" -> pokaż wszystkie zainstalowane pakiety z kde-base/* (tam znajduje się całe KDE)

Wynik qlist, czyli właśnie listę pakietów przekazujmy do emerge -C czyli każemy odinstalować.

```
cp ~/world_backup /var/lib/portage/world
```

Cześć paketów KDE, która była w world, została usunięta po odinstalowaniu. Żeby nie tracić czasu na odtwarzanie systemu, zrobiliśmy kopię roboczą, którą teraz odtwarzamy - znajdują się tam te same pakiety.

```
emerge @system @world -uDpv
```

Po uruchomieniu emerge wykrywa, że pakiety wpisane w pliku world nie są de facto zainstalowane i będzie je instalował, wciągając od razu brakujące zalezności - w ten sposób szybko i przyjemnie, nie tracąc czasu odtwarzamy system. Ponieważ nie ma już starszych wersji pakietów KDE to nie mamy problemów z blokującymi się paczkami. Należy mieć na uwadze, że miedzy wersjami KDE zdarzają się zmiany nazw pakietów. Dotyczy to przede wszystkim zależności (tzn pakietów, które zwyczajowo nie wrzucamy do world, chyba że ktoś nie wie co robi) a nie gównych pakietów trafiających do world, ale trzeba mieć to na uwadze szczególnie przy meta-pakietach oraz części dotyczącej KDE PIM bo one zmieniają się dość często.

Druga część porady:

```
grep kde-base /var/lib/portage/world
```

Grepujemy z pliku world wszystkie pakiety z kde-base, przy niektórych z nich możemy zobaczyć wpis o slocie w jakim są zainstalowane. Dodanie slotu albo numeru wersji oznacza, że chcemy zainstalować dokładnie taką właśnie wersję. Domyślnie portage zawsze stara się zainstalować najnowszą (chyba, że z zależności wynika inaczej) wersję, ale my możemy mieć inne potrzeby i do tego właśnie wykorzystać dodatkowe wpisy w world. Jeśli szukamy konkretnych pakietów z KDE z konkretnego , na sztywno zdefiniowanego slotu, np. :4.3, to możemy zrobić

```
grep kde-base /var/lib/portage/world | grep :4.3
```

szczegóły: man grep

```
sed s/:4.3//g /var/lib/portage/world | grep kde-base
```

sed służy do manipulowania tekstem w plikach (jak zwykle man sed). Domyślnie rezultat zmiany wyrzucany jest na wyjście standardowe, czyli ekran, i możemy je grepnąć. Część "s/:4.3//g" oznacza, że szukamy wszystkich ciągów znakowych :4.3 i zamieniamy je na puste ciągi (w ogólności to s/str1/str2/g, gdzie str1 podmieniany jest przez str2), wynik podmiany trafia na ekran, i grepujemy znowu wszystko z kde-base - tym razem już nie powinniśmy zobaczyć żadnych slotów.

```
sed s/:4.3//g -i /var/lib/portage/world
```

Jeśli zobaczyliśmy, że nasza operacja na tekście są dobre i nie psują nic, czas je zastosować. jest to kopia wcześniejszego polecenie, ale zniknęło grep bo już nie potrzebujemy, a pojawiło się -i, które oznacza, żeby nie wypisywać wyniku na ekran ale zastosować na miejscu w pliku który przetwarzamy.

AD 2

Wyobraź sobie, że idziesz do sklepu matematycznego (portage) żeby kupić pewną ilość liczb (zainstalować pakiety). Ponieważ jest ich dość sporo a sprzedawca bystry nie jest, postanowiłeś wziąć czystą kartkę (meta pakiet) i wypisać na niej wszystkie liczby, np, 1,2,3,..,10 (zależności które będą instalowane). I wszystko ładnie działa. Ale sprzedawca widzi, że mogloby być lepiej, postanowił uzupełnić swoją wiedzę matematyczną i poszedł na kursy doszkalające z matematyki (nowsza wersja portage). Teraz już wiesz, że jak potrzebujesz nowe liczby (pakiety), to nie musisz latać z kartka papieru (meta pakietem), tylko idziesz i mówisz mu, że chcesz wszystkie liczby naturalne, będące pierwszymi, i kończącymi się 7 na pozycji jednostek (czyli sety).

Starałem się prosto, trochę mnie zrozumiale opisane jest m.in. tutaj: http://www.gentoo.org/proj/en/glep/glep-0021.html i w dokumentacji angielskiej Gentoo do KDE-4

Warto iść w @sety. Można łatwo definiować swoje własne zestawy nie mając pojęcia jak pisać ebuildy (meta pakiety).

AD 3

Podklejona na pierwszej stronie Polish Forum - https://forums.gentoo.org/viewtopic-t-333843.html

----------

