reprepro - czyli w

Archiwalne, stare wpisy FAQ i HowTo Użytkowników
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

reprepro - czyli własne repozytorium

Post autor: jang »

Instalujemy reprepro.

Kod: Zaznacz cały

apt-get install reprepro
lub jak ktoś używa aptitude

Kod: Zaznacz cały

aptitude install reprepro
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

Kod: Zaznacz cały

ramireza:~# cd /repo
ramireza:/repo# mkdir reprepro
a następnie za pomocą cd przeniosłem się do tego katalogu

Kod: Zaznacz cały

ramireza:/repo# cd /reprepro
tutaj utworzyłem nowy katalog i przeniosłem się do niego aby utworzyć plik : distributions :

Kod: Zaznacz cały

ramireza:/repo/reprepro# mkdir conf
ramireza:/repo/reprepro# cd conf
ramireza:/repo/reprepro/conf# touch distributions
Następnie uruchomiłem sobie mc a w nim otwarłem jeszcze póki co pusty plik distributions i wpisałem do niego :

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
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ł)

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"
Dopisując jakikolwiek pakiet musimy znajdować się w katalogu głównym naszego repozytorium czyli :

Kod: Zaznacz cały

ramireza:/repo/reprepro#
Dodawanie pakietu do repozytorium :

Kod: Zaznacz cały

ramireza:/repo/reprepro#reprepro -Vb . includedeb lenny /var/cache/apt/archives/acpi_0.09-3_i386.deb
Jeśli chcesz wykasować jakiś plik z "repo" :

Kod: Zaznacz cały

ramireza:/repo/reprepro#reprepro -Vb . remove lenny libc6
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ą.

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
następnie tworzymy symlink'a :

Kod: Zaznacz cały

ln -s /repo/reprepro/conf/apache.conf /etc/apache2/conf.d/reprepro.conf
a teraz czas na uprawnienia :

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/*
No i czas przeładować apache'a :

Kod: Zaznacz cały

/etc/init.d/apache2 reload
i sprawdźamy co w trawie piszczy czyli otwieramy przeglądarkę i wpisujemy :

Kod: Zaznacz cały

http://localhost/debian/
aby to nasze cudeńko używać na codzień dopisujemy do naszego /etc/apt/sources.list

Kod: Zaznacz cały

deb [url]http://localhost/debian[/url] lenny main non-free contrib
albo w terminalu :

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:~#
Jeśli chcesz się dowiedzieć gdzie znajduje się jakiś pakiet i jaka jest jego wersja :

Kod: Zaznacz cały

ramireza:/repo/reprepro# reprepro -b . list lenny acpi

lenny|main|i386: acpi 0.09-3
Miłego użytkowania :)
phund
Posty: 58
Rejestracja: 30 marca 2007, 11:33
Lokalizacja: UTP

Post autor: phund »

A jaka jest korzyść z używania reprepro?
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

Post autor: jang »

¦ciągam właśnie http://cdimage.debian.org/cdimage/weekl ... -DVD-1.iso
z tej płytki skopiuję wszystkie te pakiety które mam w systemie i spróbuję zainstalować na nowo (mam pusty HD) Debiana i jeśli się da (a sądzę że tak) przy instalacji dołączyć to repozytorium (wcześniej wrzucone na DVD) przez apt-cdrom add to wszyscy którzy w czasie instalacji (w tym ja) nie mają internetu nie będą musieli ściągać najświeższej DVD a wystarczy im tylko płytka netinstall.
Druga sprawa to czasami ściągasz jakiś pakiet i instalujesz u siebie ale w repozytoriach Debiana go nie ma i zamiast go kiedyś tam znowu ściągać masz go u siebie.
Trzecia sprawa często podoba Ci się jakiś program ale dostępne są tylko źródła a pakiet .deb nie istnieje więc źródełka do repozytorium.
Czwarta - budujesz sobie własny pakiet na własne potrzeby więc gdzie z nim ? do własnego repozytorium :-P
Mattrick
Posty: 9
Rejestracja: 05 maja 2007, 19:03

Post autor: Mattrick »

Ja mam takie jedno pytanie: czy da się inaczej (nie używając apache) używać repozytorium, np. dodając jakoś do sources.list katalog (czy też urządzenie - pendrive na /dev/sda1) ?
velmafia
Member
Posty: 1820
Rejestracja: 01 września 2006, 00:56
Lokalizacja: Las

Post autor: velmafia »

Mattrick pisze:Ja mam takie jedno pytanie: czy da się inaczej (nie używając apache) używać repozytorium, np. dodając jakoś do sources.list katalog (czy też urządzenie - pendrive na /dev/sda1) ?
tak:
http://debian.linux.org.pl/zrobione/apt ... anpackages
singollo
Posty: 21
Rejestracja: 06 maja 2007, 18:24
Lokalizacja: £ód¼

Post autor: singollo »

Czy w ten sposób można np. doinstalować sobie parę pakietów do lenny z sid? Chciałem sobie zainstalować xaralx. Wiem, że niestety wiąże się to z mieszaniem wersji debiana. Btw: wie ktoś, czy za pomocą xaralx można otworzyć pliki CorelDRAW?
Zablokowany