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.