Page 1 of 2
[HOWTO-PORTAGE] - Maskowanie galezi portage.
Posted: Thu Mar 17, 2005 6:06 pm
by arsen
Maskowanie galęzi portage.
Howto jest przeznaczone dla ludzi których drażni coś czego nigdy nie będą używać

Mnie osobiście drażniły gałęzie portage których nigdy nie używałem, wszystkie games, kde, gnome itd.
Ja odchudziłem prawie o 50% swoje portage co wpłyneło też na szybsze syncowanie
Zatem do dzieła.
edytujemy
sys-apps/portage-2.1
jeśli posiadamy =<sys-apps/portage-2.0 dopisujemy tam taką oto opcje
Code: Select all
RSYNC_EXCLUDEFROM="/etc/portage/banned_branches"
jeśli posiadamy =>sys-apps/portage-2.1 dopisujemy
Code: Select all
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/banned_branches"
oczywiście scieżka oraz nazwa pliku dowolna, ja osobiście wole wszystkie konfigi dotyczące portage trzymać w jednym miejscu.
następnie zajmujemy się edycją
maskowanie galęzi jest bardzo proste, oto przykład co może zawierac /etc/portage/banned_branches
Code: Select all
games-action
kde-base
kde-misc
xfce-base
xfce-extra
po dopisaniu gałęzi które chcemy zamaskować przechodzimy do usuwania zamaskowanych gałęzi wymienionych w
Możemy też usunąc całe drzewo portage i wykonać
Podczas syncowania zamaskowane drzewa będą pomijane

Re: [HOWTO-PORTAGE] - Maskowanie galezi portage.
Posted: Sun Apr 10, 2005 9:43 am
by crs
arsen wrote:
Możemy też usunąc całe drzewo portage i wykonać
Po co usuwać całe drzewo? Szkoda czasu później na jego ponowne ściąganie.
Posted: Sun Apr 10, 2005 9:54 am
by arsen
napisałem te "możemy" jako opcję jeśli nie zauważyłeś

, po samym zamaskowaniu gałęzi ci ich sync nie usunie, oczywiście można ręcznie każdą zamaskowaną gałąż ręcznie wywalać.
Posted: Mon Apr 11, 2005 6:04 am
by Rav70
Można by ew. nadmienić, że aktualnie maskowanie nie jest jeszcze uwzględniane przy emerge-webrsync.
Pozdr. Rav
Posted: Mon Apr 11, 2005 12:50 pm
by Poe
dzieki arsen, tego było mi trzeba

tylko pytanko, mozna konkretniej zadeklarowac zakres gałęzi? bo tak, chce zamaskowac sobie sys-kernel, gdyz kernelki i tak zawsze mam spoza portage'a, ale w sys-kernel znajduje sie jeszcze linux26-headers, które jednak chcialbym uaktualniac. mozna zamaskowac 'pojedynczo pakiety z sys-kernel, np ck-sources, gentoo-dev-sources, albo zamaskowac sys-kernel z wyłączeniem linux26-headers, chyba rozumiecie o co mi chodzi, bo tak zagmatwałęm trochę

Posted: Mon Apr 11, 2005 1:27 pm
by arsen
przyznam że nie probowałem maskować podgalęzi, nie wiem czy to możliwe, będe w domu to się rozeznam.
Posted: Mon Apr 11, 2005 2:10 pm
by Poe
wiec dla zainteresowanych (sądze, ze dla Ciebie tez, arsen

). przetestowałem z pojedynczymi "gałązkami" portagea i dodałem na próbę do /etc/portage/banned_branches sys-kernel/ck-sources i gentoo-sources, po tym usunąłem te 2 foldery i zrobilem synca. po syncu folderów tych nadal nie ma = maskowanie działą równiez na galęzie gałęzi

greetz
Posted: Mon Apr 11, 2005 3:18 pm
by bacouch
Poe wrote:dzieki arsen, tego było mi trzeba

tylko pytanko, mozna konkretniej zadeklarowac zakres gałęzi? bo tak, chce zamaskowac sobie sys-kernel, gdyz kernelki i tak zawsze mam spoza portage'a, ale w sys-kernel znajduje sie jeszcze linux26-headers, które jednak chcialbym uaktualniac. mozna zamaskowac 'pojedynczo pakiety z sys-kernel, np ck-sources, gentoo-dev-sources, albo zamaskowac sys-kernel z wyłączeniem linux26-headers, chyba rozumiecie o co mi chodzi, bo tak zagmatwałęm trochę

Ja wiem o co ci chodzi i bhyba da sie tylko mi powiedz jak sie robi patche, to go przyzadze (nie jest to w sumie duza zmioana wiec jak ktos chce to moge po prostu na forum napisac zmiany).
wystarczy jeszcze tylko dodac
Code: Select all
RSYNC_INCLUDEFROM="/etc/portage/notbanned_branches"
i tam wpisujemy te galezie ktore jednak maja byc sciagniete. Dzieki temu powinno byc mozna usunac wszystko z sys-kernel oprocz linux-headers. Nie testowalem tego jeszcze wiec nie jestem pewien czy zadziala.
Posted: Mon Apr 11, 2005 3:30 pm
by Poe
bacouch wrote:
Ja wiem o co ci chodzi i bhyba da sie tylko mi powiedz jak sie robi patche, to go przyzadze.
ee? patcha robisz diffem, bierzesz jakis plik bazowy, kopiujesz go, zmieniasz w nim co trzeba i potem diffem generujesz patcha. pokaze Ci jak to dziala na najlatwiejszym dla mnie przykladzie, kiedy czasami robie patche kernelkowe.. mam katalog kernel1 gdzie mam juz rozpakowane zrodla i ponakladane patche i kernel2 gdzie mam czyste zrodla bazowe w tej samej wesrji. potem tylko
Code: Select all
diff -Naur --exclude="*.orig" --exclude="*.rej" kernel1 kernel2 >> nazwa.patch
o ile pamietam to tak, wlasnie diffem generujesz patcha, bo on porównuje pliki, i jezeli sa w nich roznice wypisuje w takiej postaci
Code: Select all
+ bla bla bla bla bla
- xxxxx zzzz xxxxxx
czyli ma dodac w odpowiednim miejscu bla bla bla bla bla i usunac stamda linie xxxxx zzzz xxxxx

poza tym, bacouch, przeciez ja juz sobie poradzilem z gałeziami gałęzi

Posted: Mon Apr 11, 2005 3:40 pm
by bacouch
Code: Select all
--- /usr/lib/portage/bin/emerge.orig 2005-04-11 17:25:18.488476136 +0200
+++ /usr/lib/portage/bin/emerge 2005-04-11 17:27:46.194021480 +0200
@@ -2388,6 +2388,12 @@
else:
print "!!! RSYNC_EXCLUDEFROM specified, but file does not exist."
+ if portage.settings.has_key("RSYNC_INCLUDEFROM"):
+ if os.path.exists(portage.settings["RSYNC_INCLUDEFROM"]):
+ rsync_flags.append("--include-from="+portage.settings["RSYNC_INCLUDEFROM"])
+ else:
+ print "!!! RSYNC_INCLUDEFROM specified, but file does not exist."
+
if portage.settings.has_key("RSYNC_RATELIMIT"):
rsync_flags.append("--bwlimit="+portage.settings["RSYNC_RATELIMIT"])
Pozatym znalazlem inny sposob: jezeli przed nazwa jest "+" to ta galaz bedzie, czyli np plik /etc/portage/banned_branches moze w twoim wypadku wygladac
Code: Select all
sys-kernel/*
+sys-kernel/linux-headers
Po wiecej informcji polecam man rsync, dokladnie to dzial EXCLUDE PATTERNS
Posted: Tue Sep 20, 2005 5:42 pm
by s!l3ntboy
A u mnie dla odmiany próbowałem zamaskować podgałęzie kdeedu i kdetoys i kiedy to wykonałem usunąłem owe pakiety, usunąłem foldery w portage i gdy próbuję aktualizować system (emerge -uD world) wyskakuje mi coś takiego:
Code: Select all
Calculating world dependencies /
emerge: there are no ebuilds to satisfy "~kde-base/kdetoys-3.4.2".
!!! Problem with ebuild kde-base/kde-3.4.2
!!! Possibly a DEPEND/*DEPEND problem.
!!! Depgraph creation failed.
Wychodzi na to, że chyba się nie da zamaskować podgałęzi KDE. No chyba, że macie jakiś pomysł to byłbym bardzo wdzięczny

Posted: Tue Sep 20, 2005 6:07 pm
by milu
Coś w systemie chce byś to miał zainstalowane. Spróbuj sprawdzić co to może być za pomocą emerge -pvut world.
Posted: Tue Sep 20, 2005 6:19 pm
by Raku
s!l3ntboy wrote:A u mnie dla odmiany próbowałem zamaskować podgałęzie kdeedu i kdetoys i kiedy to wykonałem usunąłem owe pakiety, usunąłem foldery w portage i gdy próbuję aktualizować system (emerge -uD world) wyskakuje mi coś takiego:
Code: Select all
Calculating world dependencies /
emerge: there are no ebuilds to satisfy "~kde-base/kdetoys-3.4.2".
!!! Problem with ebuild kde-base/kde-3.4.2
!!! Possibly a DEPEND/*DEPEND problem.
!!! Depgraph creation failed.
Wychodzi na to, że chyba się nie da zamaskować podgałęzi KDE. No chyba, że macie jakiś pomysł to byłbym bardzo wdzięczny

usunąłeś i zamaskowałeś kdeedu i kdetoys, i chcesz zainstalować kde-base/kde ?
wyjaśnię to na przykładzie, co właśnie zrobiłeś: stwierdziłeś, że nie potrzebujesz kół ani kierownicy w samochodzie, więc je usunąłeś, po czym wsiadłeś do samochodu i dziwisz się, że nie chce on jechać. Jazda takim autem jest możliwa, ale musisz
przerobić jego konstrukcję tak, by poruszał się napędem poduszkowym a sterowanie odbywało się za pomocą głosu.
Posted: Wed Sep 21, 2005 8:34 pm
by s!l3ntboy
No właśnie chodzi o to, że zamaskowałem i usunąłem owe składniki, KDE mam już zainstalowane i nie mam zamiaru instalować raz jeszcze

. Mogę update'ować go, ale na pewno nie mam zamiaru instalować raz jeszcze.
Po prostu podczas aktualizacji systemu domaga się on kdetoys mimo, że to zamaskowałem i usunąłem.
Trochę pokrętnie napisałem, ale pewnie zrozumiecie o co chodzi

.
Chciałbym tylko wiedzieć czy muszę właśnie jak napisał raku przerabiać konstrukcję czy może coś "pocudować" jeszcze innego, prostszego?
Posted: Thu Sep 22, 2005 10:43 am
by Raku
zawsze możesz usunąć pakiet kde-base/kde i dodać do worlda pozostałe w systemie pakiety będące zależnością kde-base/kde
Posted: Fri Sep 23, 2005 10:27 am
by arsen
bacouch wrote:
Pozatym znalazlem inny sposob: jezeli przed nazwa jest "+" to ta galaz bedzie, czyli np plik /etc/portage/banned_branches moze w twoim wypadku wygladac
Code: Select all
sys-kernel/*
+sys-kernel/linux-headers
Po wiecej informcji polecam man rsync, dokladnie to dzial EXCLUDE PATTERNS
ten sposób nie działa, podczas syncowania dostaje w ten sposób pusty katalog danej gałęzi, w środku brak ebuildów.
Posted: Fri Sep 23, 2005 10:38 am
by sebas86
Arsen do tego how-to możesz dorzucić coś, że aby sprawdzić, których gałęzi nie powinniśmy nawet ruszać bo system z nich korzysta, sprawdzić w /var/db/pkg. Jeden z bezpieczniejszych sposobów na eliminowanie całych gałęzi.

Posted: Fri Sep 23, 2005 5:21 pm
by patpi
sebas86 wrote:Arsen do tego how-to możesz dorzucić coś, że aby sprawdzić, których gałęzi nie powinniśmy nawet ruszać bo system z nich korzysta, sprawdzić w /var/db/pkg.
w moim przypadku by sie nie sprawdzilo (instalowane i odinstalowane niedlugo pozniej xfce, inne pakiety podobnie) W /var/db/pkg mam wpisy ktore blednie podpowiedzialyby mi czego nie maskowac
Posted: Fri Sep 23, 2005 6:09 pm
by sebas86
Trzeba usuwać czasami puste katalogi.

Pamiętaj to od Ciebie zależy porządek na dysku. Zresztą to tylko propozycja, może istnieje inny sposób na uzyskanie tych samych informacji. W końcu jak ktoś ma zamiar eksperymentować z oprogramowaniem niech w ogóle nie rusza portage.
Szkoda, że nie ma jakiegoś sposobu na identyfikacje pakietów zależnych od zamaskowanej częsci drzewa. Dzięki temu odchudziłbym wszystko co np. wymaga Qt. Tzn. sposób już jest ale na razie pracochłonny.

Posted: Mon Mar 06, 2006 10:31 pm
by Piecia
Hej
Znalazłem wolną chwilę i skorzystałem z okazji posiadania 2 komputerów. Na jednym uruchomiłem serwer rsync i zacząłem eksperymentować
Dla przykładu
/etc/portage/rsync_excludesCode: Select all
+ xfce-extra/*
+ xfce-extra/*/*
+ app-dicts/aspell-pl
+ app-dicts/aspell-pl/*
*/*
Zgodnie z
man rsync jeśli zapisujemy do pliku dane(informacje) które mają być dołączone
include musimy je poprzedzić
'+ ' (plus i spacja). Jeśli to będzie plik mieszany to dane wyłączone
exclude muszą być poprzedzone
'- ' (minus i spacja) (to chyba niepotrzebne, bo w końcu umieszczamy w tym pliku to co nas nie interesuje)
Powyższy przykład wszystko wyłącza
*/* i aby coś dodać musi być umieszczone na początku. I teraz jeśli chcemy dołączyć całą gałąź najpierw za pomocą jednego
* dołączamy podgałęzie. emerge rsync ściągnie tylko katalogi. Dlatego chcąc pobrać jeszcze ebuildy należy w następnej lini dodać jeszcze jeden
*. (dziwne ale od razu dodanie
gałąź/*/* nie ściagnie tego co zamierzamy).
No i analogicznie dla konkretnej pogałęzi.
Code: Select all
+ app-dicts/aspell-pl
+ app-dicts/aspell-pl/*
Ściąga katalog aspell-pl i ebuildy dla niego.
No dobra ten przykład był troszkę dziwny bo kto nie dopuści wszytkiego by potem się w bawić w pojedyncze gałęzie/podgałęzie. Dlatego też:
Code: Select all
+ kde-base/kde-env
+ kde-base/kde-env/*
kde-base/*
kde-misc/*
Uaktualniamy całe drzewko, kde mówimy
nie z wyjątekiem kde-env które jest chyba wymagane przez kadu (będzie tak jak wcześniej powiedzili, czyli pozostanie w drzewku pusty katalog kde-misc oraz troszkę to dziwne ale aby wykluczyć całą gałąź należy podać
gałąź/*).
Zastanawiam się czy brakujące pakiety można by było umieścić w /var/db/pkg via
emerge -i lub
/etc/portage/package.provided, ale pewnie wówczas narobił się straszny bałagan.
No i na koniec pozostało jeszcze */podgałąź, ale czy takie coś ma sens?
Code: Select all
+ kde-base/kde-env
kde-base/*
kde-misc/*
I taki zapisa uważam za poprawny, to co wcześniej napisałem to troszkę źle. Brakuje mi bbcodu przekreślenia.
edit:usunięto i poprawiono
dla przykładu mój rsync_excludes
Code: Select all
+ kde-base/kde-env
+ kde-base/kde-env/*
kde-misc/*
kde-base/*
+ xfce-extra/terminal
+ xfce-extra/terminal/*
+ xfce-extra/exo
+ xfce-extra/exo/*
+ xfce-base/libxfce4util
+ xfce-base/libxfce4util/*
+ xfce-base/libxfcegui4
+ xfce-base/libxfcegui4/*
+ xfce-base/libxfce4mcs
+ xfce-base/libxfce4mcs/*
xfce-base/*
xfce-extra/*
+ app-dicts/aspell-pl
+ app-dicts/aspell-pl/*
+ app-dicts/aspell-en
+ app-dicts/aspell-en/*
app-dicts/aspell-*
+ app-dicts/ispell-pl
+ app-dicts/ispell-pl/*
app-dicts/ispell-*
app-dicts/stardict*
app-dicts/vdict*
app-dicts/freedict*
net-im/kadu
sys-apps/baselayout
sys-apps/baselayout-vserver
sys-apps/baselayout-darwin
sys-apps/baselayout-lite
+ app-i18n/man-pages-pl
+ app-i18n/man-pages-pl/*
app-i18n/man-pages-*
app-laptop/*
app-mobilephone/*
dev-ada/*
app-emacs/*
app-xemacs/*
media-plugins/xmms*
media-sound/xmms*
net-dialup/*
net-wireless/*
Posted: Sun Mar 26, 2006 5:45 pm
by ilny
Wraz z portage w werjsi
zauważyłem, że podczas syncowania
Code: Select all
Using PORTAGE_RSYNC_OPTS instead of hardcoded defaults
WARNING: usage of RSYNC_EXCLUDEFROM is deprecated, use PORTAGE_RSYNC_EXTRA_OPTS instead
Więc myślę, że przydałaby się mała aktualizacja tego HOW-TO

Posted: Sun Mar 26, 2006 7:03 pm
by Nomen
Nie polecam maskować gałęzi kde lub gnome. Czasem można tam znaleźć kilka fajnych programów. Oczywiście to kwestia gustu. ale ja na np. lubie krusadera pod xami, poza nimi mc. Games - ok ,to już można zamaskować ,ale generalnie ..... hmm jeśli stawiasz serwer lub maszynę do konkretnych zadań to ma jakiś sens ,w innym wypadku sory Winetoo ,ale nie popieram.
Posted: Sun Mar 26, 2006 7:45 pm
by Poe
Nomen wrote:Nie polecam maskować gałęzi kde lub gnome. Czasem można tam znaleźć kilka fajnych programów. Oczywiście to kwestia gustu. ale ja na np. lubie krusadera pod xami, poza nimi mc. Games - ok ,to już można zamaskować ,ale generalnie ..... hmm jeśli stawiasz serwer lub maszynę do konkretnych zadań to ma jakiś sens ,w innym wypadku sory Winetoo ,ale nie popieram.
Oplaca sie oplaca nie tylko na sewrweach. nie trzeba maskowac calej galezi. mozna pojedyncze programy. KAWAŁEK mojego banned_branches wyglada tak
Code: Select all
[...]
sys-kernel/usermode-sources
sys-kernel/vanilla-sources
sys-kernel/vserver-sources
sys-kernel/win4lin-sources
sys-kernel/wolk-sources
sys-kernel/xbox-sources
sys-kernel/git-sources
sys-kernel/kurobox-sources
sys-kernel/openblocks-sources
sys-kernel/openvz-sources
sys-kernel/sh-sources
sys-kernel/suspend2-sources
sys-kernel/xen-sources
x11-wm/aewm
x11-wm/aewm++
x11-wm/aewm++-goodies
x11-wm/afterstep
x11-wm/flwm
x11-wm/evilwm
x11-wm/golem
[...]
Mam praktycznie wszystkie sourcesy wywalone (zostawione tylko linux-headers), wmow tez tylko kilka zostawilem, bo i tak wiem ze uzywac tego nie bede. IMHO banowanie niektorych galezi jest naprawde swietnym pomyslem, choc przydala by sie jakas zmienna, ktora by banowala wszystko z foo-bar za wyjątkiem pakietów X, Y, Z, zeby nie trzeba bylo dodawac do banned_branches 1298 pakietów z foo-bar poprzez foo-bar/X foo-bar/Y itd tylko dlatego, ze akurat foo-bar/U musimy sobie zostawić... chyba rozumiecie o co chodzi

Posted: Fri Mar 31, 2006 8:24 am
by doman
Hej
Czy ktoś mi wytłumaczy co robię źle ?
Mam portage w wersji
2.1_pre7-r2
Wpis wygląda tak:
Code: Select all
Gentoo ~ # grep RSYNC /etc/make.conf
PORTAGE_RSYNC_EXTRA_OPTS="/etc/portage/banned_branches" #zamaskowane galezie
Gentoo ~ # cat /etc/portage/banned_branches
app-laptop
app-vim
app-emacs/*
app-xemacs/*
dev-embedded/*
dev-php
dev-php4
dev-php5
dev-tex
net-dialup
net-wireless
sec-policy
sci-astronomy
sci-biology
sci-calculators
sci-chemistry
sci-geosciences
sci-mathematics
www-apache
Skasowałem wybrane gałęzie, ale kiedy wykonuję emerge --sync dostaję coś takiego:
Gentoo ~ # emerge --sync
Using PORTAGE_RSYNC_OPTS instead of hardcoded defaults
>>> Starting rsync with rsync://140.105.134.102/gentoo-portage...
>>> Checking server timestamp ...
building file list ...
rsync: link_stat "/root/rsync://140.105.134.102/gentoo-portage/metadata/timestamp.chk" failed: No such file or directory (2)
1 file to consider
Number of files: 1
Number of files transferred: 0
Total file size: 227 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 34
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 50
Total bytes received: 20
sent 50 bytes received 20 bytes 140.00 bytes/sec
total size is 227 speedup is 3.24
rsync error: some files could not be transferred (code 23) at main.c(892) [sender]
>>> Retrying...
>>> Starting retry 1 of 3 with rsync://137.226.34.228/gentoo-portage
>>> Checking server timestamp ...
building file list ...
rsync: link_stat "/root/rsync://137.226.34.228/gentoo-portage/metadata/timestamp.chk" failed: No such file or directory (2)
1 file to consider
Number of files: 1
Number of files transferred: 0
...etc

Posted: Fri Mar 31, 2006 8:37 am
by Raku
użyj innego serwera