vytvoření lokálního repozitářé

Vytvoření lokálního repozitáře pro aktualizaci více PC v domácí síti.

Mám doma 2PC a jeden noťas s Fedorou a už mě vadilo stahovat z internetu aktualizace pro každé PC zvlášť. Tak se s vámi podělím o jedno možné řešení.

Předpoklad : na všech počítačích stejná verze Fedory.

Na PC kde bude locální repozitář provedeme tyto úpravy:

Příkazy je nutné provádět jako root.
Nejprve vytvoříme adresář do kterého se budou aktualizace stahovat.
V mém případě:


                       mkdir /home/update_repo/
                       chmod 777 /home/update_repo/

Dále editujeme soubor :


gedit /etc/yum.conf

Pokud máte nainstalované pouze KDE použijete místo gedit příkaz kedit.

Zde nahradíme řádek :


 cachedir=/var/cache/yum

řádkem


 cachedir=/home/update_repo/

Podle toho kam chcete aby se aktualizace stahovali.
Dále pak keepcache=0 na keepcache=1 , tím zajistíme že se balíčky po aktualizaci nesmažou.
A soubor uložíte.

Nyní nainstalujete ftp server :


 yum install proftpd

Zazálohujeme conf. soubor :


 cp /etc/proftpd.conf /etc/proftpd.conf_backup

a z editujeme soubor :


 gedit /etc/proftpd.conf

na konec vložíme :


<Anonymous /home/update_repo/>
 User                ftp
 Group               nogroup
 UserAlias           anonymous ftp
 DirFakeUser on      ftp
 DirFakeGroup on     ftp
 RequireValidShell   off
 MaxClients          10
 DisplayLogin        welcome.msg
 DisplayFirstChdir   .message
 <Directory *>
  <Limit WRITE>
   DenyAll
  </Limit>
 </Directory>
</Anonymous>

Nutno upravit dle umístění adresáře.
Dále pak ve službách zajistíme, aby se nám FTP server spouštěl automaticky při startu.
Ještě je nutno nainstalovat balíček createrepo :


 yum install createrepo

Vždy po stažení aktualizací přejdeme do adresáře v mém případě:


cd /home/update_repo/

a zde spustíme příkaz :


createrepo .     // pro vygenerování seznamu balíčků.

Teď už můžeme přistoupit k úpravě na systémech, které budeme takto aktualizovat.
Zde jsem vypnul všechny stávající repozitáře, editací příslušných souborů v /etc/yum.repos.d/
Příklad :


 gedit /etc/yum.repos.d/fedora-updates.repo

zde přepíšeme řádek enabled=1 na enabled=0 a uložíme. Takto postupujeme i u dalších repozitářů.

A nyní si konečně přidáme náš repozitář :


 gedit /etc/yum.repos.d/local.repo

zde napíšeme tyto řádky:


[local]
name=local
baseurl=ftp://192.168.1.137/
enabled=1
gpgcheck=0

IP adresu si zadáte svoji podle toho kde vám běží FTP server.
Ještě bude nutné povolit ftp a příslušný port v nastavení firewallu.
Občas budete možná potřebovat zapnout i jiné repozitáře pro aktualizaci či instalaci nového balíčku ,který nepoužíváte na PC kde je repozitář.
Pozor na příkaz yum clean nebo pokud používáte yumex, na nastavení yum vymazat vše.
Pokud tyto použijete na systému kde máte lokální repozitář, vymažete si všechny stažené balíčky!

Diky za navod - provedl jsem jen jemne upravy formatovani.

Doplnim ze createrepo muzete spoustet z cron nebo anacron demona a vyhnout se tak trochu zbytecnemu rucnimu pousteni. Stazeni aktualizaci muzete take provadet z cronu a pote hned poustet i createrepo.

@vaca

Misto vypnuti vsech repozitaru by si mohl pouzit “yum-priorities”. Potom by si mohl nastavit ruzne urovne repozitaru.

Napr. lokalni repo by melo nejvyssi uroven. Takze update by se nejdrive podival na lokalni repo a pokud tam balicek neni tak se podiva na dalsi repozitare. Pokud balicek je na lokalnim serveru a novejsi verze je na internetu tak ti to nahlasi ze se to neaktualizuje kvuli priorite repo. Tahle metoda ti navic da moznost kontrolovat balicky ktere jsi uz stahnul a ‘otestoval’. Tvoji klienti si muzou stahnout jenom verzi kterou mas na lokalnim serveru aje na tobe aby si stahnul aktualizovanou verzi s internetu

yum install yum-priorities

gedit /etc/yum.repos.d/local.repo

[local]
name=local
baseurl=ftp://192.168.1.137/
enabled=1
gpgcheck=0
priority=1

Pokud nezadas zadnou priority tak je automaticky nastaveno na 99. Nizsi cislo ma vetsi prioritu.

Tenhle plugin muzes vypnout pokud chces zaktualizavat balicky ktere uz mas.

gedit /etc/yum/pluginconf.d/priorities.conf

[main]
enabled = 1 <-- 1= zapnutu 0=vypnuto

Vice informaci najdes tady http://wiki.centos.org/PackageManagement/Yum/Priorities

Zatim
FL

A funguje to i kdyz nemas zadne pripojeni k netu?

Teoreticky ano. Vim ze kdyz nemam laptop pipojeny na internet tak “yum update” jenom ‘projede’ a nic neudela. Takze klient by mel videt jenom lokalni repo a ignorovat kam se nemuze pripojit. V praxi jsem to nezkousel. Cekam az zitra (utery) vyjde F12 a pak to vyzkousim. :slight_smile:

FL

Protoze pokud jo, tak bych uvital, kdyby si to pripsal do prirucky k lokalnim repozitarum, to by to totiz bylo vyborne reseni.

Jeste doplnim, ze pokud mate vytvoreny GroupListy, je treba pred opetovnem spusteni createrepo (z cronu, manualne, …) kvuli aktualizaci, zazalohovat comps.xml jinak o nej, jako nepovinny soubor, prijdete…

cp /<adresar>/comps.xml /tmp/comps.xml
createrepo -g /tmp/comps.xml /<adresar>