APT: lokalni repozitorij

Ako vas je naslov začudio, ne brinite, ima smisla. Kao što (vjerojatno) znate, nakon što instalirate neki paket preko alata apt-get, on ostaje na sustavu u direktoriju /var/cache/apt/archives. Nema nikakvog automatskog brisanja, pa tako mozete naci i više inačica istog paketa. Sve starije inačice paketa možete obrisati pomoću naredbe:

# apt-get autoclean

dok se brisanje svih paketa iz arhive može postići pomoću:

# apt-get clean

Ove naredbe ne bi trebali rabiti dok vam ne ponestane mjesta na /var particiji, a i onda se mogu prebaciti na drugo mjesto i povezati simboličkim linkom. No, vratimo se na lokalni repozitorij.

Lokalni repozitorij paketa može biti koristan na više načina. Primjerice, rabite pakete s neslužbenih repozitorija, koji su počesto nedostupni. Naravno da je bolje te pakete imati lokalno.

Ukoliko sami razvijate i održavate pakete, lokalni repozitorij je gotovo obavezan, ako zanemarimo činjenicu da ukoliko znate napraviti debian paket vjerojatno vam ovaj članak uopće ne treba.

Ukoliko imate sporu ili nestabilnu vezu, sasvim sigurno će vam dobro doći lokalna kopija najbitnijih paketa. Možda najkorisnija je uporaba kod kuće, odnosno negdje gdje ne postoji mrežna povezanost. Pakete možete snimiti na primjerice USB stick, i instalirati pakete s njega, baš kao da ste na brzoj vezi.

Do vaših paketa će moći i drugi korisnici, ukoliko taj direktorij bude dostupan preko web servisa.

A koja je razlika između lokalnog repozitorija i jednostavne hrpe Debianovih paketa? Za razliku od Apt-a, dpkg ne rješava međusobne ovisnosti, tako da pakete koji ovise jedni o drugima morate instalirati istovremeno. Može pomoći "dpkg -i *.deb", ali to nije rješenje ako imate puno paketa, a samo jedan dio zaista želite instalirati.

Što se tiče lokalnog repozitorija, on može biti jednostavno zrcalna slika nekog službenog repozitorija, no nećemo pričati o njemu (uostalom, ovaj repozitorij možete napraviti po uputama u službenom Debianovom HOWTO dokumentu, dostupnom na adresi
http://www.debian.org/doc/manuals/repository-howto/repository-howto.en.html). Postoje i alati koji to mogu napraviti umjesto vas.

U članku mislimo na jednostavan direktorij s nekoliko desetaka paketa (ili ipak nešto više). Postupak je zapravo vrlo jednostavan. Prvo treba .deb pakete prebaciti negdje na sustav, primjerice u direktorij /home/paketi. Zatim, treba
napraviti sljedeće:

# cd /home
# dpkg-scanpackages paketi /dev/null | gzip -9c > paketi/Packages.gz

/dev/null je tu da zadovolji sintaksu naredbe dpkg-scanpackages, koja trazi "override" datoteku koju ne rabimo u ovom trivijalnom repozitoriju. Naredba "dpkg-scanpackages" je dio paketa dpkg-dev.

Ukoliko želite imati i pakete s izvornim kodom, naredba će biti sljedeća:

# dpkg-scansources paketi /dev/null | gzip -9c > paketi/Sources.gz

Uporaba "source" paketa nije tako česta, pa taj korak vjerojatno možete preskočiti.

Nadalje, u datoteku /etc/sources.list upišite sljedeće:

deb file:/home/paketi ./

Nakon "apt-get update" paketi će vam biti dostupni za instalaciju.

Ukoliko želite do paketa HTTP protokolom, pa tako otvoriti svoj repozitorij i drugima, pakete stavite negdje u direktorij koji će biti dostupan web poslužitelju. Možete se poslužiti i korisničkim direktorijem $HOME/public_html. Pretpostavit ćemo da ste samo otvorili poddirektorij u Apachejevom DOC_ROOT-u, obično je to /var/www/www.domena.hr ili /var/www.

Razlike u samom postupku nema, a jedina razlika će biti u unosu u sources.list, treba unijeti:

deb http://www.domena.hr/paketi ./

Ovo vrijedi i za udaljene korisnike, koji će onda moći do vašeg malog repozitorija preko HTTP protokola. Naravno, slično je i s FTP protokolom, sve što trebate je omogućiti "Anonymous" pristup direktoriju s paketima.

Od Debianovog izdanja Etch, paketi i repozitoriji su digitalno potpisani, kako bi se izbjeglo podmetanje lažnih paketa i time kompromitiranje vašeg sustava. Iz tog razloga će se kod uporabe vašeg repozitorija Apt "buniti" da repozitorij nema digitalni potpis. Kako većina ionako rabi samo službene Debianove i CARNetove repozitorije, možemo ta upozorenja "utišati" tako da u /etc/apt/apt.conf upišemo:

APT::Get::AllowUnauthenticated "true";

S time smo dovršili cijelu priču oko lokalnog repozitorija Debianovih paketa.

 

Kuharice: 
Kategorije: 
Vote: 
0
No votes yet