Jak to zainstalować?
Poszukajmy w portage'u znaną już z wcześniejszych postów komendą eix:
# eix ^eselect
[I] app-admin/eselect
Available versions: 1.0.10 1.0.11-r1 1.0.12 1.1.1 ~1.1.2 {bash-completion doc vim-syntax}
Installed versions: 1.1.1(14:09:03 08/02/09)(bash-completion -doc)
Homepage: http://www.gentoo.org/proj/en/eselect/
Description: Gentoo's multi-purpose configuration and management tool
[I] app-admin/eselect-fontconfig
Available versions: 1.0
Installed versions: 1.0(15:55:30 01/20/08)
Homepage: http://www.gentoo.org
Description: An eselect module to manage /etc/fonts/conf.d symlinks.
[I] app-admin/eselect-news
Available versions: ~20070709 ~20071025 ~20071201 20080320
Installed versions: 20080320(11:29:19 02/15/09)
Homepage: http://paludis.pioto.org/
Description: GLEP 42 news reader
[I] app-admin/eselect-oodict
Available versions: 20060621 20060706 ~20060806 20061117
Installed versions: 20061117(16:53:52 09/21/07)
Homepage: http://www.gentoo.org/
Description: Manages configuration of dictionaries for OpenOffice.Org.
[I] app-admin/eselect-opengl
Available versions: 1.0.5 ~1.0.6 1.0.6-r1 ~1.0.7
Installed versions: 1.0.6-r1(20:49:53 05/11/08)
Homepage: http://www.gentoo.org/
Description: Utility to change the OpenGL interface being used
* app-admin/eselect-oracle
Available versions: ~1.0-r260
Homepage: http://www.gentoo.org/
Description: Utility to change the Oracle SQL*Plus Instantclient being used
* app-admin/eselect-postgresql
Available versions: 0.3
Homepage: http://www.gentoo.org/
Description: Utility to change the default postgresql installation
[I] app-admin/eselect-python
Available versions: 20080521 20080925 20090606 ~20090801 ~20090804
Installed versions: 20090606(14:20:10 08/02/09)
Homepage: http://www.gentoo.org
Description: Manages multiple Python versions
[I] app-admin/eselect-rails
Available versions: 0.14 0.15
Installed versions: 0.15(14:21:36 08/02/09)
Homepage: http://www.gentoo.org/
Description: Manages Ruby on Rails symlinks
[I] app-admin/eselect-ruby
Available versions: ~20081211 20081227
Installed versions: 20081227(14:20:21 08/02/09)
Homepage: http://www.gentoo.org
Description: Manages multiple Ruby versions
[I] app-admin/eselect-vi
Available versions: 1.1.4 1.1.5 ~1.1.6
Installed versions: 1.1.5(10:33:02 12/22/07)
Homepage: http://www.gentoo.org/
Description: Manages the /usr/bin/vi symlink
* app-vim/eselect-syntax
Available versions: 20070506
Homepage: http://www.gentoo.org/
Description: vim plugin: Eselect syntax highlighting, filetype and indent settings
Found 32 matches.
Ze względu na liczbę dostępnych modułów wynik został troszeczkę skrócony - wyciąłem mniej ważne z mojego punktu widzenia moduły. Jak widać jest tego trochę. Zainstalujmy teraz eselect:
# emerge -av eselect
Udało się. Zobaczmy w praktyce jak to działa, uruchomię:
# eselect
Usage: eselect
Global options:
--no-color,--no-colour Disable coloured output
Built-in modules:
help Display a help message
usage Display a usage message
version Display version information
Extra modules:
bashcomp Manage contributed bash-completion scripts
binutils Manage installed versions of sys-devel/binutils
ctags Manage /usr/bin/ctags implementations
editor Manage the EDITOR environment variable
env Manage environment variables set in /etc/env.d/
esd Select esound daemon or wrapper
fontconfig Manage fontconfig /etc/fonts/conf.d/ symlinks
java-nsplugin Manage the Java plugin for Netscape-like Browsers
java-vm Manage the Java system and user VM
kernel Manage the /usr/src/linux symlink
modules A module for querying modules. By default, it lists all available modules
news-tng Read Gentoo ("GLEP 42") news items
news Read GLEP 42 news items
oodict Manage the configuration of dictionaries for OpenOffice.Org.
opengl Manage the OpenGL implementation used by your system
pager Manage the PAGER environment variable
profile Manage the /etc/make.profile symlink
python Manage the /usr/bin/python and python.1 man symlinks.
rails Manage Ruby on Rails versions
rc Manage /etc/init.d scripts in runlevels
ruby Manage ruby symlinks
vi Manage /usr/bin/vi implementations
visual Manage the VISUAL environment variable
wxwidgets Manage the system default wxWidgets profile.
xvmc Manage the XvMC implementation used by your system
Liczba modułów jest znaczna - czego można się już było spodziewać po wynikach wyszukiwania. Z tego względu omówię jedynie najważniejsze moduły - pozostałe pozostawiam do testowania we własnym zakresie - zasada działania i wywoływania jest podobna o ile nie identyczna.
Co się przydaje:
- moduł editor -ustawienie domyślnego edytora - spróbujmy:
# eselect editor
Usage: eselect editor
Standard actions:
help Display help text
usage Display usage information
version Display version information
Extra actions:
list List available targets for the EDITOR variable
setSet the EDITOR variable in profile
target Target name or number (from 'list' action)
show Show value of the EDITOR variable in profile
update Update the EDITOR variable if it is unset or invalid
Wyświetli nam działania jakie możemy w ramach modułu wykonać (są one na ogół identyczne w każdym z modułów - dzięki czemu obsługa eselect jest prosta - wszystko to kwestia przyjęcia właściwej konwencji)
Wylistuję dostępne edytory:
# eselect editor list
Available targets for the EDITOR variable:
[1] /bin/nano
[2] /bin/ed
[3] /usr/bin/ex
[4] /usr/bin/vi
Ustawię edytor na vi (tak naprawdę to będzie vim). Przy ustawianiu za pomocą eselecta możemy używać numer wpisu lub jego nazwę- ja skorzystam z numeru:
# eselect editor set 4
Setting EDITOR to /usr/bin/vi ...
Co się stało? Powinno się zmienić ustawienie zmiennej środowiskowej EDITOR.
# env|grep EDITOR
EDITOR=/bin/nano
hmm... nie jest tak jakbym chciał. Co się stało? Proawdopodobnie niezostała zaktualizowana wartość zmiennej w środowisku. Sprawdzę czy zmienna została ustawiona (katalog /etc/env.d - o tym opowiem innym razem szczegółowo)
# grep -r EDITOR /etc/env.d/
/etc/env.d/99editor:EDITOR="/usr/bin/ex"
Jest. A więc narzędzie zmienia ustawienia zmiennej EDITOR w konfiguracji systemu. W celu wymuszenia zmian w środowisku roboczym należy wykonać aktualizację:
# env-update
>>> Regenerating /etc/ld.so.cache...
I już powinno być ok. Sprawdzę:
edward ~ # env|grep EDITO
EDITOR=/usr/bin/vim
No i jest. Zmienną EDITOR można było do niedawna ustawić również w pliku /etc/rc.conf jednak zalecane jest definiowanie jej w pliku ~/.bashrc (lub odpowiedniku) bądź utworzenia pliku /etc/env.d/99editor i ustawienie tam zmiennych (jak w powyższym przykładzie).
- ustawienie aktywnej jvm
W tym wypadku mamy możliwość ustawienia wersji wirtualnej maszyny java, którą będziemy używać. Możemy dokonać wyboru na poziomie systemu lub użytkownika. Zdefinujmy aktywny jvm na poziomie systemu:
# eselect java-vm list
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Available Java Virtual Machines:
[1] sun-jdk-1.4
[2] sun-jdk-1.5 system-vm
[3] sun-jdk-1.6
a co to - 'shell-init: error retrieving current directory: getcwd'? Może się zdarzyć jeśli uruchamiamy polecenie będąc w katalogu, który został wcześniej usunięty (weszliśmy do katalogu - ktoś w innej sesji go usunął)
Dobra lećmy dalej:
ny ~ # java -version
java version "1.5.0_15"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_15-b04)
Java HotSpot(TM) Client VM (build 1.5.0_15-b04, mixed mode)
ny ~ # eselect java-vm set system 3
ny ~ # java -version
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)
Jak widać zmieniłem ustawienia jvm na poziomie systemu. Po ustawieniu w ten sposób jvm następuje automatyczne przełączenie aktualnie aktywnego jvm - wersja się zmieniła bez żadnych dodatkowych zabiegów.
Każdy użytkownik może zmienić używanego jvm - można to zrobić tak:
k@ny ~ $ java -version
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)
k@ny ~ $ eselect java-vm set user 2
k@ny ~ $ java -version
java version "1.5.0_15"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_15-b04)
Java HotSpot(TM) Client VM (build 1.5.0_15-b04, mixed mode)
k@ny ~ $ eselect java-vm list
Available Java Virtual Machines:
[1] sun-jdk-1.4
[2] sun-jdk-1.5 user-vm
[3] sun-jdk-1.6 system-vm
Użytkownik po zmianie używa java'y Suna w wersji 1.5 natomiast systemowy jvm jest ustawiony na wersję Sun JDK 1.6.
Dla ciekawskich pozostawiam temat w jaki sposób te zmiany są realizowane w systemie - jak to się automagicznie dzieje (być może sam też to kiedyś opiszę). Trochę ciekawych informacji na temat java w Gentoo można znaleźć tu.
- zmiany w portage - moduł news/news-tng. Niedawno dodano do portage tzw. newsy - wiadomości mające informować nas o ważnych zmianach w funkcjonowaniu pakietów w portage i samego portage'a.
Sprawdźmy jak to działa:
ny ~ # eselect news-tng
Usage: eselect news-tng
Standard actions:
help Display help text
usage Display usage information
version Display version information
Extra actions:
count Display number of news items
new Count unread news items (default)
all Count all news items
list List news items
purge Purge read news
read- ... Read news items
new Read unread news items (default)
all Read all news items
item Number of item (from 'list' action)
--raw Output in raw format
unread- ... Mark read news items as unread again
all Mark all news items as unread
item Number of item (from 'list' action)
ny ~ # eselect news-tng list
News items:
[1] 2009-04-06 (unread) Migration from teTeX to TeXLive
[2] 2009-04-18 (read) Generation 1 Java Setup Deprecated
Mam 2 wiadomości - 1 przeczytaną i 1 nieprzeczytaną. Przeczytajmy zatem wiadomość 2:
# eselect news-tng read 1
2009-04-06-tetex
Title Migration from teTeX to TeXLive
Author Christian Faulhammer
Author Ulrich Müller
Author Alexis Ballier
Posted 2009-04-06
Revision 1
teTeX is obsolete and has been unsupported upstream since May of 2006.
All users who still have teTeX installed should uninstall it and install
TeXLive using the upgrade guide accessible at the following URL:
http://www.gentoo.org/proj/en/tex/texlive-migration-guide.xml
tandetny ~ # eselect news-tng list
News items:
[1] 2009-04-18 (read) Generation 1 Java Setup Deprecated
[2] 2009-04-06 (read) Migration from teTeX to TeXLive
Jak widać informacje pozyskiwane tym źródłem mogą być po pierwsze użyteczne, po drugie pozwolą nam oszczędzić wiele bólów związanych z tym, że przeoczyliśmy jakąś ważną informację bo pakiet podczas instalacji nie poinformował nas o jakiejś ważnej zmianie (nie musimy śledzić, poszukiwać informacji po forach) ponieważ portage po każdej aktualizacji poinformuje nas w podsumowaniu ile mamy nowych newsów.
To jak dla mnie kolejna zaleta Gentoo - zintegrowane z systemem zarządzania pakietami ważne informacje o zmianach/nowinkach/sposobie konfiguracji oraz doskonała dokumentacja - jak widać na przykładzie dostajemy link do dokumentu opisującego zasady migracji z teTeX do TeXLive.
- zmiany profilu systemu Gentoo - moduł profile. Zasada użycia jest podobna, o tym czym są profile w Gentoo opowiem wkrótce.
- zmiany ustawień skryptów startowych - moduł rc - co startować w danym runlevelu o co nie. O runlevelach i ich specyficznej implementacji w Gentoo - wkrótce.
- zmiana aktywnego interpretera Ruby, Python - odpowiednio moduły ruby, python - podobnie jak w wypadku jvm.
Pozostałe pozostawiam do testowania we własnym zakresie. Z wartych zainteresowania wymieniłbym postgresql, kernel, rails, bash-completion, opengl.
Brak komentarzy:
Prześlij komentarz