Chciałbym skonfigurować repozytorium APT na serwerze, które dostarczy kilka pakietów.
Czy istnieje sposób na skonfigurowanie go bez instalowania oprogramowania na serwerze?
Jak należy uporządkować pliki?
Edycja: Muszę robić coś złego ... czy ktoś może mi pomóc? Mam repozytorium na stronie http://quickmediasolutions.com/apt/dists
Nie jestem pewien, gdzie i co, ale coś jest źle skonfigurowane. Obecnie mam tylko jeden pakiet i jest przeznaczony dla wszystkich architektur.
Oto, co zostało dodane do mojego /etc/apt/sources.list
:
deb http://quickmediasolutions.com/apt stable main
apt
package-management
repository
Nathan Osman
źródło
źródło
Odpowiedzi:
Konfigurowanie trywialnego repozytorium jest bardzo łatwe przy użyciu pakietów dpkg-scan. Ta strona wyjaśnia, jak skonfigurować banalne repozytorium, a ta wyjaśnia, jak z niego korzystać (przewiń w dół do przykładu 4).
źródło
deb http://quickmediasolutions.com/apt binary/
.Wystarczy skonfigurować proste, ale podpisane repozytorium na serwerze internetowym. Ponieważ większość innych samouczków jest nieco przestarzała lub uciążliwa, postaram się tutaj powtórzyć procedurę. Początkowa konfiguracja wymaga trochę wysiłku, ale prosty skrypt kompilacji ułatwia zarządzanie. Możesz po prostu dodać nowe
*.deb
pliki, a następnie zaktualizować lub pozwolić, aby zadanie CRON sobie z tym poradziło.Wygeneruj klucze do podpisywania
Najpierw musisz utworzyć
gpg
klucz do podpisywania dla pakietów i repozytorium. Zrób z niego (4) klucz do podpisywania RSA, bez hasła, i nadaj mu unikat,$KEYNAME
gdy zostaniesz o to poproszony. (Dalsze przykłady zakładają „dpkg1
” jako keyname).Nie powiedziałem hasła, ponieważ twój serwer nie ma wbudowanej małpy, aby wpisać go wielokrotnie. A podpisane pakiety i repozytorium mają na celu wyłącznie zaspokojenie skarg menedżerów aktualizacji na ten temat. Po prostu prześlij oba klucze do nowego
/apt/
katalogu repozytorium na swoim serwerze, ale usuńsecret.gpg
klucz po inicjalizacji.Zaktualizuj skrypt CGI
Oto prosty skrypt powłoki / CGI aktualizacji:
Trzy
gpg
linie muszą zostać wykonane tylko raz, aby zainicjować konfigurację GPG w jakimś katalogu$GNUPGHOME
(powyżej katalogu głównego dokumentu). Usuń tylkosecret.gpg
po sukcesie.Jedną z unikalnych cech tego skryptu powłoki jest to, że akceptuje wszystkie
*.deb
upuszczane pliki, ale także rekurencyjnie wyszukuje inne pliki (zaczynając od jednego poziomu w górę) i umieszcza w nich dowiązania symboliczne. (WOptions FollowSymLinks
końcu potrzebuje .htaccess .)Możesz wykonać ten skrypt ręcznie jako CGI lub na zadanie cron. Ale ukryj go, a najlepiej przenieś go poza katalog główny dokumentu.
Ponieważ jest to „trywialne” repozytorium apt, potrzebuje następującego
apt-sources.list
wpisu:Jest to odpowiednie dla repozytoriów z pojedynczą architekturą, a jeśli nie oczekujesz setek pakietów.
Podpisywanie paczek
Podpisywanie indywidualnych paczek jest również banalne, po skonfigurowaniu kluczy gpg:
(Należy to zrobić na stacji roboczej, na której budowane są pakiety, a nie na serwerze WWW repozytorium).
Repozytorium niepodpisane
Jeśli nie potrzebujesz podpisanych pakietów, możesz obniżyć skrypt aktualizacji, aby po prostu:
Które nadal mogą być używane przez przeciętnych użytkowników, ale wymagają niestandardowej flagi dla
apt.sources
:Ale proszę, nie używaj
trusted=yes
flagi zwykle do wszystkiego, lub jeśli nie masz pewności co do pochodzenia paczki.Dla użyteczności
Użytkownicy końcowi po prostu upuść a
HEADER.html
do katalogu repozytorium. Apachemod_auto_index
przygotują tę notatkę:Alternatywy
Obecnie dostępnych jest kilka narzędzi do automatyzacji zarządzania repozytoriami. Są nawet hostingi online repozytoriów i usługi budowania pakietów ( gemfury , packagecloud , bintray itp.)
Dość wygodną alternatywą jest prm . Jest to skrypt Ruby, który tworzy złożone repozytorium APT i YUM. (Ale miejmy nadzieję, że RPM w końcu wkrótce się skończy ...) - Najlepiej zainstalować na
gem install prm
.Napisałem również mały skrypt, aby zautomatyzować to w podobny sposób: http://apt.include-once.org/apt-phparchive - Proszę nie, że nie jest on zbyt niezawodny i napisany w PHP (chociaż raz jest to przypadek), i pierwotnie był przeznaczony dla pakietów DEB oraz RPM-over-APT i Phar.
Ponieważ jest to ściśle związane z pierwotnym pytaniem, istnieją również narzędzia do łatwiejszego budowania pakietów Debiana. Nieco przestarzałe: EPM . Znacznie więcej współczesnych: FPM . I moje osobiste rozwidlenie: XPM (bardziej leniwe podejście do pakowania aplikacji w języku skryptowym).
źródło
wget …/public.gpg -O- | apt-key add -
dpkg-scanpackages -m
może wystarczyć. Będzie nadal wyświetlać listę wszystkich architektur w tym samym pliku Release. Ale tak długo, jak każdy .deb ma unikalną nazwę / lub jest przechowywany w odrębnych podkatalogach (amd64 /, all /), powinien działać. W innym przypadku skorzystaj z jednego z bardziej złożonych narzędzi repozytorium.Tak. Możesz to zrobić. Musisz tylko odpowiednio uporządkować pliki i utworzyć pliki indeksu. Jeśli umieścisz strukturę katalogów w katalogu głównym swojego serwera WWW, do pakietów będzie można uzyskać dostęp za pośrednictwem serwera WWW.
Oto szczegółowy opis, w jaki sposób pliki muszą być zorganizowane i jak tworzone są pliki indeksu.
Możesz także użyć narzędzia o nazwie reprezentpro, jeśli chcesz zainstalować ten pakiet. Uczyni to administrację nieco wygodniejszą.
źródło
Być może możesz rozważyć Launchpad PPA
źródło
Dla każdego, kto napotka ten błąd po udzieleniu odpowiedzi przez Mario:
wykonaj następujące czynności:
Moje
*.deb
pliki umieszczam wdebs
folderze.źródło