Forum Linux.pl

Dystrybucje Linuksa => Gentoo => Wątek zaczęty przez: w 2012-08-04, 16:45:29

Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: w 2012-08-04, 16:45:29
Nie wiem jak poprawnie zainstalować niestabilny pakiet w Gentoo stable. Chciałbym zainstalować ten pakiet app-misc/screenfetch , ale on jest dostępny tylko w niestabilnej wersji Gentoo. Więc dodałem go do   echo "app-misc/screenfetch ~x86" >>  /etc/portage/package.keywords
Teraz mogę go zainstalować, ale tu mam kilka pytań:
1. Czy podczas aktualizacji systemu przez  emerge -avuND world te niestabilne pakiety bedą aktualizowane i mogą wywołać jakieś problemy przy aktualizacjach?
2. Czy powinienem jeszcze ten pakiet dodać do package.unmask?
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: Paweł Kraszewski w 2012-08-04, 20:52:33
Gentoo ma 3 poziomy pakietów:

Pakiety zwykłe - wersje stabilne (pi*oko odpowiednik Debian stable)
Pakiety ~ - wersje na ogół stabilne, ale gorzej przetestowane (pi*oko odpowiednik Debian testing).
Pakiety M - pakiety powodujące problemy (tzw. "known bad", czyli NIE odpowiednik debian-unstable.).

1a) Tak będą aktualizowane. Zawsze do najnowszej wersji z ~
1b) Jeżeli to program użytkowy (tak jak u ciebie), to problemów raczej nie będzie. Programy sprawiające problemy są zamaskowane (MASKED, M) i jeżeli nie czujesz się na siłach, to nie odmaskowuj ich.
1c) Jeżeli to biblioteka użytkowa, to może być tak, że niektóre programy bez ~ nie chcą się kompilować z bibliotekami z ~. Tutaj trzeba się liczyć z tym, że trzeba będzie za~ować większą paczkę pakietów. Dodatkowo pakiety ~ są częściej aktualizowane niż bez ~, w związku z czym częściej trzeba używać "naprawiaczki" revdep-rebuild.

2) Nie. ~ to coś innego niż M. Jak nie znasz się doskonale na życiu wewnętrznym systemu, nie ruszaj package.unmask.

Jeżeli chcesz uniknąć automatycznych aktualizacji pakietu ~, to package keywords dodaj pełny atom, w Twoim przypadku na przykład:

=app-misc/screenfetch-2.4.7

Nie musisz dodawać ~x86, Gentoo sam się tego domyśla. W takim przypadku zainstaluje Ci pakiet w tej konkretnie wersji i nie ruszy go do czasu, aż pojawi się pakiet w tej samej wersji albo wyższej, ale stabilny. Efekt uboczny jest taki, że jak pojawi się kilka nowszych ~ek tego pakietu i w końcu zniknie 2.4.7, niektóre narzędzia zaczną mruczeć, że masz zainstalowany pakiet, którego nie ma w portage.

Po przeszukiwania portage'a polecam app-portage/eix:
* Szybkie przeszukiwanie całej listy pakietów po nazwie, opisie i/albo grupie.
* Dla pakietu pokazuje pełne info co do dostępnych wersji, do jakiej gałęzi dana wersja należy (" ", "~" czy "M"), co jest odblokowane, co jest zablokowane, co jest zainstalowane i ewentualnie na co zostanie zaktualizowane.

(Numery linii - moje)
1] pawel@i7 [~] 0 $> eix eix
2] [i] app-portage/eix
3]     Available versions:  0.23.10{tbz2} 0.25.5 (~)0.26.1{tbz2} {{clang debug +dep doc linguas_de linguas_ru nls optimization security sqlite strong-optimization tools zsh-completion}}
4]     Installed versions:  0.26.1{tbz2}(22:15:37 26.07.2012)(dep doc nls optimization security sqlite tools -clang -debug -linguas_de -linguas_ru -strong-optimization -zsh-completion)
5]     Homepage:            http://eix.berlios.de
6]     Description:         Search and query ebuilds, portage incl. local settings, ext. overlays, version changes, and more
Krótka legenda:
1: Wyświetl pełne info wszystkich pakietów mających w nazwie eix
2: oznacza, że pakiet jest zainstalowany (może być jeszcze np i [D] jak system będzie robił upgrade/downgrade)
3: Dostępne wersje. tbz2 oznacza, że system ma na dysku pasujący plik PKG (mój Gentoo automatycznie generuje pakiety binarne, szybciej wtedy postawić system od nowa jakby co). (~) oznacza, że ta wersja jest testowa, ale została odblokowana. Gdyby nie była odblokowana, to by nie było nawiasu. Dodatkowo zainstalowane wersje są podświetlone.Wpisy {{ }} to lista wszystkich flag use wszystkich wersji.
4: Lista zainstalowanych wersji z rzeczywiście ustawionymi flagami use.
5-6: Info o pakiecie.


* eix-sync zastępuje emerge --sync, ma dodatkowy bajer w postaci listy różnic w stosunku do poprzedniej aktualizacji (które pakiety dodano, które usunięto, które zaktualizowano, od/zamaskowano, ustabilizowano, itd).


eix jest przydatny do zabawy z package.keywords, package.unmask i package.use, bo od razu możesz podejrzeć wpływ zmian na dostępne pakiety.
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: w 2012-08-04, 21:39:45
Bardzo dziękuję za dokładną odpowiedź. Też zaczynam korzystać z różnych przydatnych narzędzi w tym systemie (epm,  eread, euse, glsa-chec) i teraz eix sprawdzę. Co do tego pliku to ostatecznie dodałem bez znaku równosci  app-misc/screenfetch.
Czyli wygląda na to że korzysta Pan z wersji testowej Gentoo, sądząc po pakietach które się wyświetliły? A można wiedzieć do ilu pakietów rozrosło się u pana Gentoo? Ciekawi mnie jeszcze czy te pakiety które są w wersji testowej , za jaki czas dołączą do wersjii stabilnej ? Pytanie czy w ogóle tam przejdą, skoro nie ma jeszcze danego pakietu(żadnej jego wersji) w wersji stabilnej?
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: Paweł Kraszewski w 2012-08-05, 21:42:46
1. Liczba pakietów (z uwzględnieniem tzw slotów, czyli ten sam pakiet zainstalowany w kilku wersjach):
i7 ~ # eix '-I*' --format '' | wc -l
1844
2. Liczba wpisów w package.use (to może być katalog o takiej nazwie, w środku są indywidualne pliki. Łatwiej tym zarządzać.)
i7 package.use # cat * | sort | uniq | egrep -v "^\\s*#" |  wc -l
62
3. Liczba wpisów w package.keywords (tak jak poprzednio, to może być katalog o takiej nazwie)
i7 package.keywords # cat * | sort | uniq | egrep -v "^\\s*#" |  wc -l
596
A co do ostatniego pytania = tak, całkiem często pakiety ~ z czasem robią się nie-~.
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: w 2012-08-05, 22:25:06
To trochę sporo tych pakietów jak na Gentoo. U mnie jeszcze nie jest tak przesadnie źle:
epm -gqa | wc -l
558
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: Paweł Kraszewski w 2012-08-06, 07:00:33
W robocie mam 1809 pakietów, więc widocznie u mnie taka ilość to norma :)

Podział ilościowy na grupy w robocie mam taki:
Inet-HP[2506] ~ 0 $> eix '-I*' --format '' | sort | sed 's:^=\\([^/]*\\)/.*$:\\1:' | uniq -c | sort -rn
    270 kde-base
    108 media-libs
     90 dev-libs
     85 virtual
     77 x11-libs
     74 app-text
     73 media-fonts
     71 dev-java
     59 sys-apps
     57 dev-perl
     50 dev-util
     48 dev-python
     46 x11-apps
     31 media-plugins
     30 sys-devel
     29 x11-proto
     28 app-admin
     27 dev-texlive
     26 perl-core
     26 net-misc
     24 net-libs
     22 sys-fs
     21 app-emulation
     20 sys-libs
     18 x11-themes
     18 dev-lang
     16 x11-misc
     16 media-sound
     16 app-cdr
     15 media-video
     15 gnome-base
     15 dev-tex
     15 dev-dotnet
     14 app-crypt
     14 app-arch
     13 media-gfx
     12 dev-db
     12 app-misc
     11 net-analyzer
     11 kde-misc
     10 app-emacs
      9 sci-libs
      8 sys-auth
      8 java-virtuals
      7 sys-process
      7 dev-ruby
      7 app-portage
      6 x11-drivers
      6 dev-tex
      5 net-dns
      5 dev-vcs
      5 dev-lisp
      5 app-doc
      4 www-client
      4 sys-block
      4 net-wireless
      4 dev-cpp
      4 app-shells
      4 app-office
      4 app-dicts
      3 x11-base
      3 sys-power
      3 net-firewall
      3 mail-client
      3 games-misc
      3 dev-tcltk
      3 dev-games
      2 x11-terms
      2 www-plugins
      2 sys-kernel
      2 sys-firmware
      2 sci-mathematics
      2 net-zope
      2 net-print
      2 net-p2p
      2 net-im
      2 games-util
      2 app-mobilephone
      2 app-i18n
      2 app-forensics
      2 app-editors
      2 app-accessibility
      1 www-servers
      1 www-misc
      1 sys-cluster
      1 sys-boot
      1 sci-visualization
      1 sci-geosciences
      1 sci-electronics
      1 net-nds
      1 net-mail
      1 net-dialup
      1 media-tv
      1 mail-mta
      1 gnome-extra
      1 games-simulation
      1 games-board
      1 dev-ml
      1 dev-lua
      1 app-backup
      1 app-antivirus
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: w 2012-08-06, 21:16:33
Pewnie dobry procesor musi być i sporo ramu do tylu pakietów i ich kompilacji. W Gentoo jeszcze jednego nie mogę rozgryźć. Jak zainstalować pakiet do którego nie ma ebuilda w wersji stable czy nawet ~ testowej? Chciałbym zainstalować conky-lua i deadbeef , lecz emerge go nie znajduję. Czy trzeba w takim przypadku szukać obcych ebuildów po sieci i jakoś je instalować?

Wróć. Znalazłem tu jeden ebuild http://gpo.zugaina.org/media-sound/deadbeef. Lecz nie wiem jak go poprawnie zainstalować i czy w ogole emerge doda go do pozostałych pakietów, a następnie będzie go aktualizować wraz z jego zależnościami? Co do conky-lua to jeszcze szukam.
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: Paweł Kraszewski w 2012-08-07, 10:16:06
Poczytaj o layman i overlayach. Gentoo ma taki bajer, że możesz mieć kilka portage'ów naraz aktywnych. Emerge przegląda wszystkie i instaluje najnowszy pakiet jaki znajdzie. Główny to /usr/portage (albo gdziekolwiek pokażesz w make.conf), ozostałe to właśnie tzw overlaye.

Layman to nakładka zarządzająca mniej lub bardziej oficjalną listą overlayów dostępnych w sieci, ściągająca je na dysk i udostępniająca dla emerge. Dodatkowo ma odpowiednik sync-a (bo emerge --sync aktualizuje tylko główne repo).

deadbeef jest w overlayach calculate i xwing:

1. Instalujesz app-portage/layman
2. Jako ostatnią linijkę w /etc/make.conf dajesz
source "/var/lib/layman/make.conf"
3. Wykonujesz layman -S (synchronizacja listy repozytoriów)
4. Dodajesz repo layman -a xwing albo layman -a calculate.
5. Teraz deadbeef powinien pojawić się w emerge (o ile nie zapomniałeś  zrobić 2.)

A co do conky-lua - conky ma flagę USE lua (i kilka innych lua-pochodnych), prawdopodobnie po ustawieniu tych flag i rekompilacji uzyskasz oczekiwany efekt.
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: w 2012-08-07, 11:01:40
Tego właśnie szukałem, wiekie dzięki. Mam jeszcze takie pytanie , jeżeli dany pakiet nie znajduje się w Gentoo stable to lepiej go zamaskować i zainstalować przez emerge z wersji ~testowej? Czy po prostu przez laymana (mowa o tej samej wersji pakietu i która z tych opcji instalacji będzie lepsza)?

Znalazłem taką listę ebuildów(repozytoriów) i czy każde z nich można zainstalować przez laymana? Jeśli tak to wybór jest ogromny i niesamowity :)
http://gentoo-overlays.zugaina.org/index.html.en
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: Paweł Kraszewski w 2012-08-07, 13:22:49
To wygląda na zbliżone do zwracanego przez layman -L.

Generalnie nie maskuj pakietów z oficjalnego repo. Często oficjalka dogania/przegania overlaya i wtedy warto automatycznie przejść na wersję z oficjalnego repo (może poza bardzo rzadkimi przypadkami, gdy aplikacja overlayowa ma tą samą wersję co oficjalna przy zmienionej funkcjonalności - ale to jest niezgodne z wytycznymi Gentoo, bo wtedy _powinno_ użyć się kombinacji inna nazwa+package.provided albo dodać -p0 -p1... itd do modyfikowanej wersji)
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: w 2012-08-07, 18:21:04
Dzięki za tą informację. Co do tych repozytoriów które zwraca layman -S , to te przy których jest czerwony znaczek są jakieś niepewne ? A żółte i zielone są bardziej bezpieczne?
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: vanhelzing w 2012-08-07, 19:09:14
zielony - oficjalny, w pełni wspierany,
żółty - nieoficjalny,
czerwony - może wymagać instalacji dodatkowego oprogramowania.
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: Paweł Kraszewski w 2012-08-07, 21:29:01
Wracając do starego pytania, czy ~ się stabilizują: Dziś dostałem 4 stabilizacje i 1 destabilizację (destabilizacja przez pojawienie się nowszej ~):

[*>]  == dev-lua/luasocket (~2.0.2 -> 2.0.2): Networking support library for the Lua language.
[*>]  == dev-ruby/bacon (~1.1.0-r1 -> 1.1.0-r1): Small RSpec clone weighing less than 350 LoC
[*>]  == net-misc/emirror (~2.2.0.0.4 -> 2.2.0.0.4): ECLiPt FTP mirroring tool
[*>]  == x11-misc/xsri (~2.1.0-r2 -> 2.1.0-r2): The xsri wallpaper setter from RedHat

[>]   == www-client/chromium (21.0.1180.57 -> (~)21.0.1180.64): Open-source version of Google Chrome web browser

P.S. Nie, nie mam tego poinstalowane, eix-sync pokazuje wszystkie różnice.
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: w 2012-08-07, 22:40:14
A dlaczego żeby zainstalować Chromium potrzeba aż pobrać ponad 180MB? Gdzie taka Opera zajmuje 12MB, a nawet Google-Chrome czy firefox dużo mniej.  
emerge -s opera firefox
Searching...    
[ Results for search key : opera ]
[ Applications found : 2 ]

*  www-client/opera
      Latest version available: 12.01.1532
      Latest version installed: 12.01.1532
      Size of files: 12,554 kB
      Homepage:      http://www.opera.com/
      Description:   A fast and secure web browser and Internet suite
      License:       OPERA-11 LGPL-2 LGPL-3
*  www-client/firefox-bin
      Latest version available: 10.0.6
      Latest version installed: 10.0.6
      Size of files: 17,138 kB
      Homepage:      http://www.mozilla.com/firefox
      Description:   Firefox Web Browser
      License:       MPL-1.1 GPL-2 LGPL-2.1

*  www-client/google-chrome [ Masked ]
      Latest version available: 22.0.1221.1_alpha149058
      Latest version installed: [ Not Installed ]
      Size of files: 32,038 kB
      Homepage:      http://www.google.com/chrome
      Description:   The web browser from Google
      License:       google-chrome
*  www-client/chromium
      Latest version available: 21.0.1180.57
      Latest version installed: [ Not Installed ]
      Size of files: 187,907 kB
      Homepage:      http://chromium.org/
      Description:   Open-source version of Google Chrome web browser
      License:       BSD
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: Paweł Kraszewski w 2012-08-08, 07:12:48
Bo firefox-bin, chrome i opera to małe pakiety binarne a chromium to wielki tarball z kodem źródłowym?
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: w 2012-08-08, 12:47:06
Może się nie znam , ale wydawało mi się że pakiety binarne w Gentoo mają końcówkę -bin. Jest druga wersja Firefox bez bin , czyli ta do kompilacji zajmująca 78MB do pobrania. Najwidoczniej Opera i Chrome to zwykłe binarki bez nazwy bin na końcu. Na pewno masz rację dlatego że Chromium jest na licencji BSD, więc dodany jest tam cały kod źródłowy.
To ostatnie moje pytanie , jeżeli Opera jest tylko do pobrania i zainstalowania w wersji binarnej, a ja chciałbym ją skompilować przez emerge to jak to wykonać?
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: Paweł Kraszewski w 2012-08-08, 16:15:02
Musisz pojechać do Norwegii i z martwych rąk ostatniego developera wydrzeć pendrive z kodem źródłowym Opery. :)

Przyrostek -bin  stosuje się tylko do pakietów binarnych mających też wersję źródłową.
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: w 2012-08-08, 19:26:54
Całkowicie zapomniałem o tym że Opera mimo że jest darmowa to ma zamknięty kod źródłowy, to samo z Google-Chrome. Która to przecież czerpie z Chromium i potem zamyka swój projekt z jakimiś swoimi ulepszeniami(szpiegami:).
Tytuł: Jak poprawnie zainstalować niestabilne pakiety?
Wiadomość wysłana przez: Paweł Kraszewski w 2012-08-09, 07:15:05
Akurat z Chromium i Chromem jest odwrotnie. Chrome jest główną gałęzią, natomiast ma uwolniony kod źródłowy (prawie) całości i na tej podstawie powstaję Chromium. Z tego co wiem, nie ma przeciwnego ruchu kodu (czyli backpatchy z Chromium do Chrome).
Generalnie Javę,Firefoxa, Thunderbirda i Chrome właśnie instaluję z binarek ze względu na czas kompilacji i częstość uaktualnień. Cały czas waham się z LibreOfficem, ale tu w przeciwieństwie do wcześniej wymienionych programów binarki są jedna-dwie wersję za źródłem i jednak jadę ze źródła.