Fórum Ubuntu CZ/SK
Ostatní => Tipy a triky pro Linux => Téma založeno: otaj 31 Prosince 2011, 18:31:18
-
Návod převzat z http://wiki.debian.org/SettingUpSignedAptRepositoryWithReprepro
Takže. Rozhodli jste si udělat vlastní repozitář. Pohnutky můžou být různé - lokální repozitář na suplování internetu, veřejný repozitář vašich balíků na serveru, whatever. To se teď neřeší. Důležité ale je, aby byl podepsaný (jakmile není, repozitář je téměř nepoužitelný, protože balíčkovací systémy z něho dělají otloukánka a nemají ho rádi)
Dle manuálu (nevím, kterého přesně, našel jsem to včera na debian stránkách, nevím, jestli dohledám) existují dva typy repozitářů (respektive zápisu do sources.list)
deb http://example.org/rep/ oneiric main
deb http://example.org/rep/ /
První je správně, druhý je označený (už od Debianu Lenny, tzn. docela dlouho) jako DEPRECATED. Pokud ale přesto chcete vytvořit takový repozitář, podívejte se http://ubuntuforums.org/showthread.php?t=1090731 -> bohužel ale veškeré balíky musíte kopírovat manuálně, veškeré konfigurační soubory vytvářet znovu manuálně atd atd, prostě, nic není pořádně zautomatizované a navíc se to prostě dělat nemá.
První typ repozitář má ale ten problém, že má trochu složitější strukturu (tzn byste ho takhle manuálně dělali pekelně dlouho a nebavilo by vás to)
Naštěstí tu ale je reprepro
Takže začneme.
0) Předpokládáme, že máte svůj vlastní klíč, pokud ne, najednou bude anglický návod na manuální vyrábění repozitáře docela vhod, protože v něm mimojiné najdete, jak si vytvořit klíč (a i neanglicky hovořící to snad zvádnou)
1) Nejdříve, tak trošku klasicky, nainstalujeme reprepro
sudo apt-get install reprepro
2) Vybereme si domácí adresář repozitáře (doporučuji nějaký s právem zápisu a nějaký, který bude ze začátku prázdný)
3) V domovské složce repozitáře vytvoříme další složku a to "conf"
4) Ve složce conf vytvoříme konfigurační soubor "distributions", vzorový soubor vypadá například takto
Origin: Jméno repozitáře/majitele (prostě nějaké označení)
Label: Jméno repozitáře/majitele (prostě nějaké označení)
Codename: kódové označení distribuce např oneiric
Architectures: i386 amd64 (i když používáte jen amd64, nechte vytvořit repozotář pro i386, jinak bude balčkovací systém kecat, že mu chybí soubory)
Components: main (no znáte to, komponenty (contrib, non-free, co uznáte za vhodné -> bohatě stačí jen main)
Description: Popis repozitáře
DebOverride: override.<osrelease>
DscOverride: override.<osrelease>
/*<osrelease> je to kódové označení jako například oneiric. Dva předchozí řádky jsou důležité pokud chcete změnit konfiguraci jednotlivých balíčků/respektive celého repozitáře*/
SignWith: <key-id> -> ID vašeho klíče
5) vytvořte si soubor "options" (v "conf" složce), do kterého vypíšete všechny options, které chcete, reprepro bralo automaticky (ask-passphrase znamená, že se bude ptát na passphrase klíče a podepíše balíčky a repozitář, bez toho by je to nepodepsalo)
verbose
basedir vaše-složka
ask-passphrase
6) Pokud chcete a máte tu možnost v souboru "distributions", tak vytvořte soubor "override.<osrelease>" (např "override.oneiric") do kterého navolíte možnosti pro jednotlivé balíčky (stále ve složce conf), takže může vypadat například takto
jméno_balíčku Priority optional
jméno_balíčku Section net
7) sláva, reprepro je správně nastaven, nyní stačí jen z domovského adresáře repozitáře spustit příkaz reprepro includedeb oneiric package_name.deb
Znovu, oneiric může být nahrazen platným jménem distribuce
doporučuji všechny balíčky narvat do jednoho adresáře a spustit něco jako reprepro includedeb oneiric /cesta/k/adresari/*.deb
poté už jen vyskočí hláška o podepsání (dvakrát, jednou na Release a podruhé na balíčky) a máme vymalováno
Pak jen přidat do /etc/apt/sources.list onu zmiňovanou řádku deb file:/cesta/ke/korenu/reprepro/ oneiric main
a můžeme tahat
Reprepro má obrovské množství nastavení, doporučuju projít si man reprepro
tohle je jen základ, jak si vytvořit fungující repozitář
Samozřejmě existuje obrovské množství (no, zas tak velké není, ale je jich několik) systémů na vytvéření repozitářů, reprepro mi přišel jako nejjednodušší na základní nastavení a používání, zároveň ale nejmocnější. Zde můžete vidět přehled většiny takovýchto systémů http://wiki.debian.org/HowToSetupADebianRepository
Doufám, že aspoň někomu tento návod pomůže
-
jak ten repo zveřejním?
-
To musíš mít na nějakém serveru. Zveřejnění je "síťová" záležitost, ve chvíli, kdy máš takhle udělanej repozitář, tak je to úplně ten samý systém jaký mají velký repozitáře, akorát na lokální cestě. Tzn pak to akorát hodit do nějaké složky na serveru, dát server ven a je to:)
-
To musíš mít na nějakém serveru. Zveřejnění je "síťová" záležitost, ve chvíli, kdy máš takhle udělanej repozitář, tak je to úplně ten samý systém jaký mají velký repozitáře, akorát na lokální cestě. Tzn pak to akorát hodit do nějaké složky na serveru, dát server ven a je to:)
Takže kdybych si udělal web třeba na webzdarma.cz, kde se musí všechno nahrávat z PC, vytvořil kopii cesty ja v PC, nahrál do složek správné soubory tak by to fungovalo jestli jsem pochhopil?
PS: webzdarma přidává na weby reklamy-nebude to v tom vadit?
-
Jo, teoreticky by to melo fungovat. Nezkousel jsem to, ale vadit by to nemelo, protoze mam za to, ze webzdarma pridava reklamy jen do html souboru..
-
jo, to máš pravdu :-))
-
Tak to zkus a pak dej vědět..:)
-
zkusim s google chromem... :D
-
zkusil jsem to, ale při kroku 7 se mě to na heslo zeptalo jen jednou a přidání do zdrojů napsalo toto:
Selhalo stažení file:/home/milzou/Plocha/googlechrome/dists/hardy/main/binary-i386/Packages.gz Soubor nebyl nalezen
Některé indexové soubory se nepodařilo stáhnout, jsou ignorovány, nebo jsou použity starší verze.
-
Jsi si jistý, že máš dobře cesty? Jak v konfigurační souboru reprepro, tak v /etc/sources.list ? Vide bych chybu jenom v tom.. Kdyz tak to zkus udelat cely znovu tzn nech konfiguracni slozku a zbyvajici slozky v korenovym adresari reprepro smaz. A projed ten prikaz na pridani balicku jeste jednou.
-
zdravim prosimvas jak si vytvořim klíč krepozitáři? možna jen špatně hledám. dík
-
nehodil by my sem někdo nějakej odkaz na vytvoření klíče nemužu na googlu nic najít
-
tu je to... http://wiki.debian.org/SettingUpSignedAptRepositoryWithReprepro
-
super dík klíč jsem vytvořil balíky podepsal nakonec i zdroj příkazem
gpg --export --armor KLÍČ | sudo apt-key add -
ale mam tu problem
W: Selhalo stažení file:/home/services/repository/dists/precise/InRelease Unable to find expected entry 'main/source/Sources' in Release file (Wrong sources.list entry or malformed file)
E: Some index files failed to download. They have been ignored, or old ones used instead.
nevěděl by někdo?
-
To jsem psal před tebou taky, akorát v češtině. Prohlídni si pořádně tohle vlákno :)
-
díky vlákno jsem celé četl než jsem se do toho pustil ale jak koukam přehlídl jsem v tom anglickem navodu tvorbu klíče. (až ty si mě btam odkazal tak jsem to našel) a i ten příspěvek.už vše šlape problem byl v tom že jsem to nepřidal do sources.list ale přes zdroje a vytvořilo to i vlastně deb-src teď už to jede akorat je zvlaštní že se nezobrazujou ty balíčky v centru softwaru...
ale mne de především o synaptic a apt-get (aptitude) to používam často... dík moc
PS:kdyžtak tuhle diskuzi dejte do uzavřenejch akorat se tu díky me nepozornosti zopakovaluo již zodpovězené.
-
Zdravim přece jenom by otazka byla ktera se tu doufam nezminila...
na svem pc (localnim)
přidam a podepišu repozitař
file:/home/pavel/repozitory/ precise main
gpg --export --armor ******** | sudo apt-key add -
ale jak to mam udělat na mem notebooku (v localni lan siti)?
děkuji
-
pokud si ty soubory na jednom stroji nasdílíte a na druhém připojíte, tak vpodstatě stejně...
-
ano pak by to tedy bylo
smb:/skupina/pc/repozitory precise main
ale jak to v druhem pc podepsat na to jsem nepřišel
-
Zdravim že mam teď server s ubuntu chtěl bych si tam vytvořit veřejný repositář nebyl by prosím ochoten mi třeba po jabberu pomoci dík :-)
Ps: nechci rady do puntiku ale jen mne občas navedst ...
Ten repo bych chtel pro kamarady a td... kam bych daval aktualni testovane a spolehlive baliky... dík moc.
Edit:Děkuji za váš extremně vysoký zájem ;D ovšem neni nad anglický návod....už mi to jede 8)
-
Jak to mám udělat, abych měl v tom repozitáři více těch balíčků?
-
S více soubory jsem to snad vyřešil, ale nemám místo, kam uploadovat :/ Nevíte o něčem? Na webzdarma to nejde :/