Smart a repozitáře

Používáte-li linux, jistě jste již řešili problém jak nainstalovat nějaký software. Jedním ze způsobů instalace je využití takzvaných balíčků.

Program jako takový může využívat různé metody a funkce obsažené v různých knihovnách. Jedním ze způsobů, jak zajistit funkčnost programu je vytvořit kompletní "megabalík", který bude obsahovat vše co daný program potřebuje. Tato metoda je však z pochopitelných důvodů neefektivní. Jednak dochází ke zbytečné redundanci dat, kdy stejné funkce obsahuje více programů, avšak každý má svoji vlastní reprezentaci dané funkce (což znamená i více obsazeného prostoru apod.). Problém je také s upgradem takové aplikace. Provádíme-li totiž upgrade programu, musíme také upgradovat případné použité funkce.

Druhou metodou jak zajistit chod našeho programu je rozdělit jej do samostatných bloků. Určité funkce uložené v jednom bloku pak může využívat současně více jiných bloků, což vede (mimo jiné) k efektivnější hospodaření se zdroji a snadnější upgrade jednotlivých komponent. Tyto bloky jsou právě ony balíčky. Balíčkovací systém má však jedno úskalí a tím jsou závislosti. Využívá-li náš program určitou funkci z balíčku abc, znamená to, že bez balíčku abc program prostě nepojede (což je asi logické). Dalším problémem jsou dva různé balíčky, přičemž jeden vyžaduje funkci z balíčku abc verz 1.2 a druhý tu samou funkci, ale rád by balíček abc verze 1.3. Tyto problémy se souhrnně označují pojmem dependency hell.

Různé linuxové distribuce využívají různých typů balíčků (deb, rpm). Společné však mají to, že vždy obsahují nějakou aplikaci schopnou řešit problémy s balíčky (Debian-apt, RedHat-yum ...). SuSE nabízí dvě rozdílné aplikace. YaST a SMART (lze ale zprovoznit i další).

Smart je velmi svižný a sympatický program, který vám umožní instalovat programy z takzvaných repozitářů. Repozitář je jakýsi zdroj balíčků. Zjistí-li tedy Smart, že program, který chcete instalovat vyžaduje i další balíčky, jednoduše jej sám vyhledá v dostupných repozitářích bez toho, aniž byste museli sami hledat různé balíčky po netu a řešit jejich vájemné propojení.

Nejdříve si tedy nainstalujte smart (podrobný návod v češtině nebo v angličtině).

Nyní potřebujete přidat repozitáře. Spusťte si terminál a přihlaste se jako root.

su

Nyní přidejte k vašim zdrojům další. Vytvořte si soubor smart.channel a vlože do něj následující text:

-------------------- zde odstřihněte :-) --------------------
[suse-oss]
type = yast2
name = SUSE 10.2 OpenSource Repository
priority = 0
baseurl = http://download.opensuse.org/distribution/10.2/repo/oss
mirror = http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/10.2/repo/oss
mirror = http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribu...
mirror = http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/10.2/repo/oss
mirror = http://mirror.switch.ch/mirror/opensuse/distribution/10.2/repo/oss
mirror = http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/10.2/repo/oss
mirror = http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/10.2...

[suse-non-oss]
type = yast2
name = SUSE 10.2 NonOpenSOurce Repository
priority = 0
baseurl = http://download.opensuse.org/distribution/10.2/repo/non-oss
mirror = http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/10.2/repo/non-oss
mirror = http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribu...
mirror = http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/10.2/repo/non-oss
mirror = http://mirror.switch.ch/mirror/opensuse/distribution/10.2/repo/non-oss
mirror = http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/10.2/repo/non-oss
mirror = http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/10.2...

[guru]
type = yast2
name = Guru 3rd party package repository
priority = 40
baseurl = http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.2
mirror = http://ftp.skynet.be/pub/suser-guru/rpm/10.2/
mirror = http://anorien.warwick.ac.uk/mirrors/opensuse/guru/10.2
mirror = http://ftp.halifax.rwth-aachen.de/suser-guru/rpm/10.2

[suse-mozilla]
type = rpm-md
name = Latest mozilla.org packages
priority = 50
baseurl = http://software.opensuse.org/download/mozilla/openSUSE_10.2
mirror = http://ftp.suse.com/pub/projects/mozilla/10.2
mirror = http://ftp.belnet.be/mirrors/ftp.suse.com/projects/mozilla/10.2
mirror = http://ftp.skynet.be/pub/ftp.suse.com/projects/mozilla/10.2
mirror = http://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/projects/mozilla/10.2
mirror = http://ftp.tu-chemnitz.de/pub/linux/suse/ftp.suse.com/projects/mozilla/10.2
mirror = http://ftp.uni-erlangen.de/pub/Linux/MIRROR.suse/pub/projects/mozilla/10.2

[suse-kde]
type = rpm-md
name = Latest KDE packages
priority = 50
baseurl = http://software.opensuse.org/download/KDE:/KDE3/openSUSE_10.2/
mirror = http://ftp.skynet.be/pub/software.opensuse.org/KDE:/KDE3/openSUSE_10.2
mirror = http://ftp-1.gwdg.de/pub/opensuse/repositories/KDE:/KDE3/openSUSE_10.2

[rpm-sys]
type = rpm-sys
name = RPM System

[packman]
type = rpm-md
name = Packman 3rd Party Package Repository
priority = 40
baseurl = http://packman.inode.at/suse/10.2
mirror = http://packman.iu-bremen.de/suse/10.2/
mirror = http://packman.mirrors.skynet.be/pub/packman/suse/10.2/
mirror = http://packman.rsync.zmi.at/suse/10.2/
mirror = http://ftp.uni-erlangen.de/pub/mirrors/packman/suse/10.2/
mirror = http://anorien.warwick.ac.uk/mirrors/opensuse/packman/suse/10.2
mirror = http://ftp.halifax.rwth-aachen.de/packman/suse/10.2

[smart]
name = Guru smart repository
baseurl = http://ftp.gwdg.de/pub/linux/misc/suser-guru/smart/repo/10.2
type = rpm-md
priority = 10
mirror = http://ftp.skynet.be/pub/suser-guru/smart/repo/10.2
mirror = http://ftp.halifax.rwth-aachen.de/suser-guru/smart/repo/10.2

[schiele]
type = yast2
name = Schiele
priority = 5
baseurl = http://pi3.informatik.uni-mannheim.de/~schiele/suse/10.2/

[suse-update]
type = rpm-md
name = SUSE-Linux-10.2-Update
priority = 15
baseurl = http://ftp.suse.com/pub/suse/update/10.2/
mirror = http://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/update/10.2/
mirror = http://ftp.belnet.be/mirrors/ftp.suse.com/suse/update/10.2/
mirror = http://ftp.skynet.be/pub/ftp.suse.com/suse/update/10.2/
mirror = http://mirror.switch.ch/mirror/suse/suse/update/10.2/
mirror = http://www.mirrorservice.org/sites/ftp.suse.com/pub/suse/update/10.2/

[suse-kde-backports]
type = rpm-md
name = Current KDE applications
priority = 15
baseurl = http://software.opensuse.org/download/KDE:/Backports/openSUSE_10.2/
mirror = http://ftp.skynet.be/pub/software.opensuse.org/KDE:/Backports/openSUSE_10.2
mirror = http://ftp-1.gwdg.de/pub/opensuse/repositories/KDE:/Backports/openSUSE_10.2

[suse-vlc]
type = rpm-md
name = openSUSE VLC repositories
priority = 20
baseurl = http://download.videolan.org/pub/vlc/SuSE/10.2/

[suse-nvidia]
type = rpm-md
name = nVidia
priority = 40
baseurl = http://download.nvidia.com/novell/

[oo-novell]
type = rpm-md
name = OO-Novell
priority = 0
baseurl = http://ftp.suse.com/pub/projects/OpenOffice.org/10.2-i386

[suse-wine]
name = Latest wine packages
baseurl = http://software.opensuse.org/download/Emulators:/Wine/openSUSE_10.2
type = rpm-md
priority = 0
mirror = http://ftp.skynet.be/pub/software.opensuse.org/Emulators:/Wine/openSUSE_...
mirror = http://ftp-1.gwdg.de/pub/opensuse/repositories/Emulators:/Wine/openSUSE_...

-------------------- zde odstřihněte :-) --------------------

Nyní můžete odebrat zroje, které již smart má (můžete je tam také ponechat).
smart channel --remove-all --yes
Nyní přidáme zdroje z uloženého souboru.
smart channel --add smart.channel --yes

Spusťte smart a nechte jej aktualizovat channely (Update channels). Pak již můžete vesele instalovat/odinstalovat.

Upozorňuji, že uvedený výčet zdrojů neobsahuje ani zdaleka všechny dostupné repozitáře. Obsahuje pouze ty, které obsahují nejčastěji používaný software. Další repozitáře si můžete sami přidávat dle libosti.

Autor: Neznámý

Komentáře

SKOM odpověděl -

postupoval jsem podle navodu...doufam ze spravne...
zkopiroval jsem repozitare a vlozil do souboru /home/skom/smart.channel a po prikazu smart channel -add /hom/skom/smart.channel --yes mi to vypsalo nasledujici hlasku.... kterou jsem samozrejme nepochopil a vyvodil jsem dusledek ze to spravne fungovat nebude...., kde je chyba?

omnius:/home/skom # smart channel --add /home/skom/smart.channel --yes
error: Base URL (baseurl) is a needed field for 'rpm-md' channels

-------------------------------
Intel Celeron 1.3 GHz, OP - 512 MB,80 GB & 320 GB - HDD's, SUSE linux 10.1

kaligula odpověděl -

Dakujem za navod. Mne to fungovalo. Mam pridane channels.
Ale mam jednu otazku. Co sa stalo s mirror=? Predpokladal som, ze ich najdem v Edit/Mirrors ale nenasiel som tam tie mirrory

kaligula