Jak utworzyć lokalne repozytorium za pomocą apt-mirror i mirrorkit?


9

Posiadanie lokalnego repozytorium może być bardzo przydatne. Można użyć rsyncdo utworzenia kopii dystrybucyjnej repozytorium, ale powoduje to pobranie wszystkich wydań, nawet starszych, i zawierałoby pliki dla architektur, które mogą nie być potrzebne.

apt-mirrorpozwala wybiórczo wybierać części repozytorium. mirrorkitzapewnia interfejs do apt-mirror.

Jaki jest najlepszy sposób utworzenia lokalnego serwera lustrzanego repozytorium dla wybranych części archiwów Ubuntu?

Na przykład można chcieć dołączyć:

  • Main, Restricted, Universe, Multiverse, All Ubuntu i Lubuntu, ale wykluczają inne pochodne, takie jak Kubuntu i Xubuntu.

  • Tylko AMD64 i i386, ale wykluczają inne architektury.

  • Tylko zaufany Tahr, ale nie precyzyjny pingwin lub utopiczny jednorożec.

Można tak skonfigurować proces, aby pobierał go z lokalnego serwera lustrzanego, a nie z głównych archiwów.

Jak mogę utworzyć lokalne repozytorium przy użyciu apt-mirrori mirrorkitdla wybranej architektury, wydania lub wariantu Ubuntu?


Wyklucz Kubuntu? Masz na myśli wykluczenie ISO Kubuntu lub wykluczenie jakiegokolwiek pakietu, który jest używany przez Kubuntu?
muru

Wyklucz na przykład ISO Kubuntu i Xubuntu. Być może jest ich okropnie dużo (Precise Kubuntu ARM, Precise Kubuntu i386, Quantal Kubuntu ARM, Quantal Kubuntu i386 ...), a początkowe pobieranie kopii lustrzanych mogłoby zostać ukończone szybciej bez tych ISO. Ale jeśli to tylko kilka gigabajtów, być może nie ma to tak wielkiego znaczenia.
user75798,

1
ISO są hostowane oddzielnie od pakietów. Możesz więc użyć apt-mirror tak, jak zwykle tworzysz kopie zapasowe repozytoriów pakietów i używasz innego narzędzia dla ISO. Następnie pojawia się pytanie o znalezienie odpowiednich filtrów wykluczania dla tego narzędzia (powiedzmy rsync).
mur

„możesz używać apt-mirror jak zwykle” Przykro mi, nie wiem jak to zrobić. Właśnie to chciałbym wyjaśnić.
user75798,

Odpowiedzi:


9

Repozytorium CD i repozytorium oprogramowania to dwa odrębne komponenty (mają nawet osobne strony Launchpada: cdmirrors i archivemirrors ). Dlatego ich odbicie lustrzane to dwa odrębne zadania. Ponadto, podczas gdy różne smaki mają różne foldery w repozytorium CD, współużytkują repozytorium oprogramowania. Możesz więc selektywnie odzwierciedlać obrazy według smaku, ale nie oprogramowania. W przypadku repozytorium oprogramowania można selektywnie wykonać kopię lustrzaną w oparciu o:

  • zwalniające ( trusty, preciseetc.)
  • architektura ( amd64, i386etc.)
  • typ pakietu (binarny [ deb] vs źródło [ deb-src])
  • kanały ( trusty, trusty-updates, trusty-backportsetc.)
  • Sekcje ( main, multiverseetc.)

Aby wykonać kopię lustrzaną repozytorium oprogramowania, użyj apt-mirror.

apt-mirrorjest skonfigurowany za pomocą /etc/apt/mirror.list. Ma format bardzo podobny do sources.list. Plik konfiguracyjny zainstalowany przez pakiet ma kilka skomentowanych opcji, które zawierają ich wartości domyślne. Jeśli chcesz, możesz anulować komentarz i zmienić je.

Lustro repozytorium, trzeba dodać linię do mirror.listjak byś dla sources.list:

deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

Domyślnie kopia lustrzana ma tylko architekturę hosta, więc jeśli korzystasz z 64-bitowego systemu Ubuntu, tylko amd64kopia lustrzana będzie dublowana. Musisz dodać kolejny wiersz formularza:

deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

A dla pakietów źródłowych:

deb-src http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

Jeśli szukasz dość kompletnego lustra, te linie byłyby minimum (poleciłbym również -updateskanał):

deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe

Na koniec należy dodać cleanwiersz , aby pakiety, które nie są już dostępne w repozytorium, były filtrowane w celu usunięcia:

clean http://us.archive.ubuntu.com/ubuntu

Powiedzmy, że twoje zmienne są (domyślne):

set base_path    /var/spool/apt-mirror
set mirror_path  $base_path/mirror
set skel_path    $base_path/skel
set var_path     $base_path/var
set cleanscript $var_path/clean.sh

Następnie:

  • Repozytorium zostanie dublowane $mirror_path/parent-hostname/directory(tak /var/spool/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu)
  • clean.sh(Który będzie zestaw rmpoleceń, aby usunąć przestarzałe pakiety i katalogów) będzie /var/spool/apt-mirror/var/clean.sh.
  • Dzienniki przejdą do /var/spool/apt-mirror/var.

apt-mirrorPakiet instaluje crona ( /etc/cron.d/apt-mirror), które należy włączyć do edycji (przez odkomentowanie linię zawierającą /usr/bin/apt-mirror). Powinieneś także dodać zadanie crona do uruchamiania clean.sh(uruchamiam je co tydzień).

Oczywiście powinieneś zastąpić http://us.archive.ubuntu.com./ubuntudowolne lustro.


1
Czy to naprawdę deb-amd64czy deb arch=amd64? Ten ostatni mogę znaleźć tylko na stronie podręcznika
Anwar,

1
@Anwar the first. Ten drugi jest dla sources.list, który ma podobny, ale nie identyczny format. Zobacz manpages.ubuntu.com/manpages/trusty/en/man1/apt-mirror.1.html , gdzie deb-powerpcznajduje się w przykładzie.
mur

O! Nie miałem doświadczenia z apt-mirror. Myślałem, że tak było sources.list. Dzięki
Anwar,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.