reprepro - czyli własne repozytorium
: 18 kwietnia 2007, 18:44
Instalujemy reprepro.
lub jak ktoś używa aptitude
Ja w czasie instalacji Debiana utworzyłem sobie osobną partycję na repozytoria (nie wiedziałem z
jakiego skorzystam - który program będzie mi odpowiadał - dlatego piszę w liczbie mnogiej) i nazwałem ją /repo. Oczywiście Ty wcale nie musisz mieć osobnej partycji, możesz np. skorzystać z katalogu /srv który jest tworzony w czasie instalacji Debiana.
Na tej partycji utworzyłem katalog reprepro
a następnie za pomocą cd przeniosłem się do tego katalogu
tutaj utworzyłem nowy katalog i przeniosłem się do niego aby utworzyć plik : distributions :
Następnie uruchomiłem sobie mc a w nim otwarłem jeszcze póki co pusty plik distributions i wpisałem do niego :
Na tym właściwie kończy się instalacja i konfiguracja reprepro Teraz już tylko pozostaje nam dopisywanie pakietów do naszego repozytorium 
Wszystkie potrzebne pliki i katalogi reprepro tworzy sobie sam na bieżąco tzn. dodając np. pakiet acpi_0.09-3_i386.deb (ten pakiet był pierwszym który dodałem więc trochę tych katalogów utworzył)
Dopisując jakikolwiek pakiet musimy znajdować się w katalogu głównym naszego repozytorium czyli :
Dodawanie pakietu do repozytorium :
Jeśli chcesz wykasować jakiś plik z "repo" :
Pewnie dręczy Cię pytanie czy musisz najpierw wykasować starszą wersję pakietu aby zainstalować nowszą ? Otóż nie, reprepro sam najpierw odinstaluje starszą wersję pakietu a następnie zainstaluje nowszą.
###################################################
Jak korzystać z przed chwilą utworzonego repozytorium ?
Musimy mieć zainstalowany i prawidłowo skonfigurowany serwer apache2
Mając apache2 zainstalowanego tworzymy plik konfiguracyjny "indianina" w naszym katalogu /repo/reprepro/conf
następnie tworzymy symlink'a :
a teraz czas na uprawnienia :
No i czas przeładować apache'a :
i sprawdźamy co w trawie piszczy czyli otwieramy przeglądarkę i wpisujemy :
aby to nasze cudeńko używać na codzień dopisujemy do naszego /etc/apt/sources.list
albo w terminalu :
Jeśli chcesz się dowiedzieć gdzie znajduje się jakiś pakiet i jaka jest jego wersja :
Miłego użytkowania 
Kod: Zaznacz cały
apt-get install reprepro
Kod: Zaznacz cały
aptitude install reprepro
jakiego skorzystam - który program będzie mi odpowiadał - dlatego piszę w liczbie mnogiej) i nazwałem ją /repo. Oczywiście Ty wcale nie musisz mieć osobnej partycji, możesz np. skorzystać z katalogu /srv który jest tworzony w czasie instalacji Debiana.
Na tej partycji utworzyłem katalog reprepro
Kod: Zaznacz cały
ramireza:~# cd /repo
ramireza:/repo# mkdir reprepro
Kod: Zaznacz cały
ramireza:/repo# cd /reprepro
Kod: Zaznacz cały
ramireza:/repo/reprepro# mkdir conf
ramireza:/repo/reprepro# cd conf
ramireza:/repo/reprepro/conf# touch distributions
Kod: Zaznacz cały
Origin: Debian
Label: Debian
Suite: testing
Codename: lenny
Architectures: i386 source
Components: main contrib non-free
Description: Debian testing distributions
Update: debian security

Wszystkie potrzebne pliki i katalogi reprepro tworzy sobie sam na bieżąco tzn. dodając np. pakiet acpi_0.09-3_i386.deb (ten pakiet był pierwszym który dodałem więc trochę tych katalogów utworzył)
Kod: Zaznacz cały
ramireza:/repo/reprepro# reprepro -Vb . includedeb lenny /var/cache/apt/archives/acpi_0.09-3_i386.deb
/var/cache/apt/archives/acpi_0.09-3_i386.deb: component guessed as 'main'
Created directory "./pool"
Created directory "./pool/main"
Created directory "./pool/main/a"
Created directory "./pool/main/a/acpi"
db: 'acpi' added to 'lenny|main|i386'.
Exporting indices...
Created directory "./dists"
Created directory "./dists/lenny"
Created directory "./dists/lenny/main"
Created directory "./dists/lenny/main/binary-i386"
Created directory "./dists/lenny/main/source"
Created directory "./dists/lenny/contrib"
Created directory "./dists/lenny/contrib/binary-i386"
Created directory "./dists/lenny/contrib/source"
Created directory "./dists/lenny/non-free"
Created directory "./dists/lenny/non-free/binary-i386"
Created directory "./dists/lenny/non-free/source"
Kod: Zaznacz cały
ramireza:/repo/reprepro#
Kod: Zaznacz cały
ramireza:/repo/reprepro#reprepro -Vb . includedeb lenny /var/cache/apt/archives/acpi_0.09-3_i386.deb
Kod: Zaznacz cały
ramireza:/repo/reprepro#reprepro -Vb . remove lenny libc6
Kod: Zaznacz cały
ramireza:/repo/reprepro# reprepro -Vb . includedeb lenny /var/cache/apt/archives/aptitude_0.4.4-4_i386.deb
/var/cache/apt/archives/aptitude_0.4.4-4_i386.deb: component guessed as 'main'
db: removed old 'aptitude' from 'lenny|main|i386'.
db: 'aptitude' added to 'lenny|main|i386'.
Exporting indices...
Deleting files no longer referenced...
deleting and forgetting pool/main/a/aptitude/aptitude_0.4.4-1_i386.deb
ramireza:/repo/reprepro#
Jak korzystać z przed chwilą utworzonego repozytorium ?
Musimy mieć zainstalowany i prawidłowo skonfigurowany serwer apache2
Mając apache2 zainstalowanego tworzymy plik konfiguracyjny "indianina" w naszym katalogu /repo/reprepro/conf
Kod: Zaznacz cały
ramireza:~# cat > /repo/reprepro/conf/apache.conf << EOF
Alias /debian /repo/reprepro/
<Directory /repo/reprepro>
Options +Indexes
AllowOverride None
order allow,deny
allow from all
</Directory>
EOF
Kod: Zaznacz cały
ln -s /repo/reprepro/conf/apache.conf /etc/apache2/conf.d/reprepro.conf
Kod: Zaznacz cały
chown -R root:root /repo/reprepro
chmod 755 /repo/reprepro/
chown -R root:www-data /repo/reprepro/dists/ /repo/reprepro/pool/
chmod 750 /repo/reprepro/*
Kod: Zaznacz cały
/etc/init.d/apache2 reload
Kod: Zaznacz cały
http://localhost/debian/
Kod: Zaznacz cały
deb [url]http://localhost/debian[/url] lenny main non-free contrib
Kod: Zaznacz cały
echo "deb [url]http://localhost/debian[/url] lenny main non-free contrib" >> /etc/apt/sources.list
Kod: Zaznacz cały
ramireza:~# apt-get update
Ign [url]http://localhost[/url] lenny Release.gpg
Pob: 1 [url]http://localhost[/url] lenny Release [1344B]
Ign [url]http://localhost[/url] lenny/main Packages
Ign [url]http://localhost[/url] lenny/non-free Packages
Ign [url]http://localhost[/url] lenny/contrib Packages
Pob: 2 [url]http://localhost[/url] lenny/main Packages [1429B]
Pob: 3 [url]http://localhost[/url] lenny/non-free Packages [20B]
Pob: 4 [url]http://localhost[/url] lenny/contrib Packages [20B]
ramireza:~#
Kod: Zaznacz cały
ramireza:/repo/reprepro# reprepro -b . list lenny acpi
lenny|main|i386: acpi 0.09-3
