Parę słów o Linuxie, dystrybucji: Gentoo.
Wstępniak
Po testach z różnymi dystrybucjami linuxa do gustu przypadł mi Mandrake, szczególnie 9.1, za łatwość zarządzania, ala windowsowe kreatory z panelu sterowania. Ale jak przyszło to przebudowy systemu pod moje konkretne potrzeby okazało się że źródła programów są już tak połatane przez ludzi z Mandrake ze oryginalne prosto ze stron autorów nie chcą się poprawnie kompilować lub działać.
Szczególnie objawiało się to w przypadku Mandrake 10 Power Pack, według mnie owiele bardziej niedopracowana dystrybucja niż Mandrake 9.1 (9.2 była już gorzej zrobiona od 9.1).
I przyszedł wtedy czas na znalezienie czegoś co by mnie w pełni zadowalało
przy założeniach:
- raczej darmowe oprogramowanie
- oprogramowanie raczej instalowane z źródeł poprzez kompilacje,
- jakiś program do utrzymywania ładu w systemie
To wyszło:
- Czyli wiadomo zostaje open source, czyli linux, free bsd, itd. ...
- W przypadku mandarynki używałem do tego programiku checkinstall + system zarządzania pakietami rpm. Ale w mandrake 10 już tak coś popsuli że za chinyludowe nie udało mi się zmusić systemu do poprawnej pracy. A w gentoo w systemie wbudowany jest programik emerge, ale o tym poniżej.
|
|
Mój warsztat pacy KDE 3.2.1, Anjuta i Programik który pisze w wolnych chwilach
|
Zalety i wady dystrybucji których używam:
Madrake Linux 10 (już nie poleciał do kosza):
Zalety:
- Szybkość i łatwość instalacji, wystarczy tylko dawać OK i NEXT
- Prostota Konfiguracji, dużo kreatorów, mało grzebania w plikach konfiguracyjnych,
Wady:
- Instaluje się raczej dużo niepotrzebnych śmieci,
- Jak przyjdzie do zrobienia czegoś nietypowego, czasami można dostać szału.
- Łatwość uszkodzenia bazy danych plików RPM, parę razy udało mi się tak popsuć rpm'a ze odmówił współpracy, a naprawić to ciężko bo to pliki binarne.
Gentoo Linux:
Zalety:
- Szybkość działania, ponieważ cały system jest skompilowany od zera pod konkretną architekturę komputera i procesor. Szczególnie odczułem to w takiej kobyle jak KDE, pod Mandarynką przy przełączaniu się pomiędzy okienkami system miał malutką przerwę aż się namyśli a tu nie, W ogóle wzrosła odczuwalna prędkość działania programów, gdzieś na oko od 0 do 20% (w zależności od programu).
- ¦wietny system emerge zarządzania instalowanymi, skompilowanymi programami, przy nim rpm to coś śmiesznego. Aktualizacja systemu, instalacja nowego oprogramowania, deinstalacja starego to pestka. Oczywiście czasami coś może nie działać, ale zaletą plików systemu emerge jest że do opisu oprogramowania używa plików tekstowych o prostej składni. I jak coś nie działa łatwo naprawić.
Wady:
- Czas instalacji, co prawda idzie większości z automatu ale komputer masz przez kilka dni bez użycia, chyba że już masz zainstalowanego innego linuxa to wtedy instalacje przeprowadzasz w chrootowanym środowisku i możesz spokojnie pracować.
- Przy instalacji potrzebne stałe połączenie do netu, bo system praktycznie ˇródła instalowanego oprogramowania ściąga z netu.
Konfiguracja, 0 kreatorów, konfiguracja systemu sprowadza się do edycji plików konfiguracyjnych. Jest to wada ale i też duża zaleta, ponieważ poznajemy dobrze system.
System emerge - zarządzanie pakietami oporgramowania
Emerge jest to system umożliwiający kompilacje oprogramowania zachowując przy tym zależności, pomiędzy instalowanymi (kompilowanymi) pakietami. Filozofia jego pracy opiera się na znanych z systemów BSD portach.
W praktyce wygląda to tak, że w katalogu /usr/portage przechowywane są o informacje o oprogramowaniu w podziałem na rodzaje.
$ ls /usr/portage
app-accessibility app-text dev-tcltk games-sports net-firewall
app-admin app-vim dev-tex games-strategy net-fs sys-apps
app-arch app-xemacs dev-util games-util net-ftp sys-boot
...
w danym katalogu znajduje się podkatalogi z nazwą programu
$ls /usr/portage/games-emulation/
advancemame fake64 handy ps2emu-cddvdlinuz qmamecat
advancemenu fakenes hatari ps2emu-cdvdiso qtvba
atari800 fbzx hugo ps2emu-dev9null raine
blight-glN64 fceultra infones ps2emu-gssoft snes9express
blight_input game-launcher kigb ps2emu-padxwin snes9x
w których przechowywany jest opis dla każdej wersji w plikach .ebuild
$ls /usr/portage/games-emulation/dosbox/
ChangeLog dosbox-0.58.ebuild dosbox-0.60.ebuild dosbox-0.61.ebuild files Manifest metadata.xml
Zaletą plików ebuild jest prosta tekstowa budowa, co gwarantuje ze nawet jeżeli coś nie będzie chciało porwanie działać to można ręcznie skorygować. Jego opis definiuje też potrzebne pakiety do poprawnego działania programu.
Emerge zdefiniowany ma jeszcze system slotów co pozwala używać programów w różnych wersjach, przy czym nie różne wersje nie kolidują ze sobą.
Przykład pliku ebuild:
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /home/cvsroot/gentoo-x86/games-emulation/dosbox/dosbox-0.61.ebuild,v 1.6 2004/04/19 17:07:57 mr_bones_ Exp $
inherit games
DESCRIPTION="DOS emulator"
HOMEPAGE="http://dosbox.sourceforge.net/"
SRC_URI="mirror://sourceforge/dosbox/${P}.tar.gz"
KEYWORDS="x86 amd64 ~ppc"
LICENSE="GPL-2"
SLOT="0"
IUSE="alsa opengl"
DEPEND="virtual/glibc
alsa? ( media-libs/alsa-lib )
opengl? ( virtual/opengl )
>=media-libs/libsdl-1.2.0
sys-libs/zlib
media-libs/libpng
media-libs/sdl-net"
src_compile() {
local myconf=""
if ! use alsa ; then
myconf="--without-alsa-prefix --without-alsa-inc-prefix --disable-alsatest"
fi
...
Instalacja softu:
emerge net-analyzer/nessus - instaluje oprogramowanie w wersji zalecanej
lub
emerge /usr/portage/net-analyzer/nessus/nessus-2.0.10a.ebuild - instaluje w wybranej przez nas wersji
emerge -pv net-analyzer/nessus wyświetla jakie oporgramowanie będzie instalowane, uaktualniane, a co będzie usuwane z systemu, oraz co będzie pobierane z sieci.
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild N ] net-analyzer/libnasl-2.0.9 0 kB
[ebuild N ] net-analyzer/nessus-core-2.0.9 +X -debug +gtk2 -prelude +tcpd 686 kB
[ebuild N ] net-analyzer/nessus-plugins-2.0.9 1,456 kB
[ebuild N ] net-analyzer/nessus-2.0.9 [empty/missing/bad digest]
Total size of downloads: 2,143 kB
Przy informacji są wyświetlane flagi:
N - instalacjia pakietu
U - uaktualnienie pakietu
B - zablokowany pakiet, przykra niespodzianka że jakieś pakiety kolidują że sobą.
emerge -s nessus - szuka pakietu
Searching...
[ Results for search key : nessus ]
[ Applications found : 5 ]
* net-analyzer/nessus
Latest version available: 2.0.9
Latest version installed: [ Not Installed ]
Size of downloaded files: 0 kB
Homepage: http://www.nessus.org/
Description: A remote security scanner for Linux
License: GPL-2
* net-analyzer/nessus-core
Latest version available: 2.0.9
Latest version installed: [ Not Installed ]
Size of downloaded files: 686 kB
Homepage: http://www.nessus.org/
Description: A remote security scanner for Linux (nessus-core)
License: GPL-2
...
emerge -C net-analyzer/nessus - odinsalowywuje pakiet
Przydatne ustawienia systemu:
Kompilacja oprogramowania
/etc/make.conf - plik konfiguracyjny definiujący parametry przy kompilacji, ja mam coś takiego
optymalizacja dla athlona, dobrze jest ustawić zmienną LANGUAGE i LINGUAS co ustawia oprogramowanie do kompilacji w polskiej wersji językowej. Zmienna USE definiuje co ma być używane przez kompilowane oprogramowanie.
# These settings were set by the catalyst build script that automatically built this stage
# Please consult /etc/make.conf.example for a more detailed example
CFLAGS="-Os -mcpu=athlon -march=athlon -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
LINGUAS="pl"
LANGUAGE=48
USE="3dnow aalib acl alsa arts avi berkdb cdr crypt cups dga dvb encode esd flash gd gdbm gif imlib ipv6 java jikes jpeg kde qt dvd cdr kerberos libwww mbox mikmod mmx mozilla mpeg mysql ncurses oav oggvorbis opengl pam pdflib png perl qt samba sasl scanner sdl slang slp snmp spell ssl tcpd tiff truetype wmf v4l v4l2 xface xml xml2 xmms xv zlib x86 ipv6 -svga"
XFree86 i kółeczko myszy
no chwile zajeło mi poprawne skąfigurowanie myszy tak aby działało w niej kółeczko, a wystarczyło zmienić jedną linijkę
/etc/X11/XF86Config
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "ExplorerPS/2"
Option "Device" "/dev/mouse"
# Option "ZAxisMapping" "6 7" - Oryginalnie jest. Zmienić na to co poniżej
Option "ZAxisMapping" "4 5"
EndSection
(c) Shad 2004
Dodany 24-01-2007 21:22:54, czytany 1612 razy
