Jak pobrać pakiet, a nie zainstalować go za pomocą polecenia apt-get?

sudo apt-get install pppoe 

pobierze pakiet pppoe i zainstaluje go.

Czy można po prostu pobrać pakiet pppoe i nie instalować go za pomocą polecenia apt-get?

wget http://ftp.us.debian.org/debian/pool/main/p/ppp/ppp_2.4.7-1+4_amd64.deb 

ppp_2.4.7-1+4_amd64.deb znajduje się teraz w bieżącym katalogu.

cd /tmp sudo apt-get install -d ppp Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: ppp 0 upgraded, 1 newly installed, 0 to remove and 95 not upgraded. Need to get 0 B/346 kB of archives. After this operation, 949 kB of additional disk space will be used. Download complete and in download only mode 

Brak pakietu ppp_2.4.7-1+4_amd64.deb lub ppp w / tmp.

sudo find /tmp -name ppp* 

Nic nie znaleziono.

Gdzie jest pakiet ppp w / tmp z poleceniem

cd /tmp sudo apt-get install -d ppp 

??

Odpowiedź

Użyj --download-only:

sudo apt-get install --download-only pppoe 

Spowoduje to pobranie pppoe i wszelkie potrzebne zależności i umieść je w /var/cache/apt/archives. W ten sposób kolejne apt-get install pppoe będzie można ukończyć bez żadnych dodatkowych pobrań.

Komentarze

  • Może myślisz o sposobie określenia katalogu wyjściowego dla pobranego pakietu?
  • Ja ' rozważałem apt-get download <package>, ale nie ' t pobierania zależności.
  • Powinieneś móc to zmienić, modyfikując Dir::Cache i Dir::Cache::archives, z opcją -o.
  • Nie działa, jeśli pakiet jest już zainstalowany.
  • @Alexey tak, zobacz tę odpowiedź w sytuacjach, gdy pakiet docelowy jest już zainstalowany.

Odpowiedź

Użyj tego polecenia:

apt-get download pppoe 

To polecenie umożliwia pobranie pakietu do bieżącego katalogu .

Aby uzyskać dostęp do zainstalowanych plików .deb, możesz zajrzeć do ta ścieżka:

/var/cache/apt/archives 

Komentarze

  • To nie pobiera zależności, pobiera tylko pakiety wymienione w argumentach.

Odpowiedź

Aby rozwinąć odpowiedź Hamida nieco, każde z tych trzech bardzo podobnych poleceń zadziała, jeśli Twoim jedynym pragnieniem jest tylko pobranie określonego pakietu i nic więcej . (Twój przypadek użycia nie jest jasno określony, więc nie jest jasne, czy to jest to, co chcesz zrobić.) Wszyscy pobierają plik pakietu binarnego Debiana odpowiadający określonemu pakietowi binarnemu Debiana do bieżącego katalogu. Zauważ, że te polecenia pobiorą tylko podany pakiet binarny i żadna z jego zależności. Jeśli chcesz również zależności, użyj odpowiedzi udzielonej przez Stephena Kitta .

apt-get download ppoe apt download ppoe aptitude download ppoe 

Pierwsze dwa polecenia są częścią pakietu apt, a trzecie jest częścią aptitude. O ile wiem, wszystkie są funkcjonalnie równoważne, chociaż różnice w składni i użytkowaniu między apt i aptitude mogą powodować wolisz jedną z nich w pewnych okolicznościach. I oczywiście apt jest nowszym poleceniem niż apt-get – zawiera apt-get i apt-cache functi jedyności, odrzucając część historycznego bagażu.

Zauważ również, że jeśli którekolwiek z tych poleceń znajdzie plik już w bieżącym katalogu, nie pobierze go ponownie. Jednak nie jestem pewien, jakich kryteriów używają do sprawdzenia – lub innymi słowy, jak trudno ich oszukać. Pusty plik nie działa.

Odpowiedź

apt udostępnia polecenie pobierania źródła – apt source.

$ apt source pppoe Reading package lists... Done Picking "rp-pppoe" as source package instead of "pppoe" Need to get 239 kB of source archives. Get:1 http://mirror.location.org/debian stretch/main rp-pppoe 3.12-1.1 (dsc) [1,708 B] Get:2 http://mirror.location.org/debian stretch/main rp-pppoe 3.12-1.1 (tar) [224 kB] Get:3 http://mirror.location.org/debian stretch/main rp-pppoe 3.12-1.1 (diff) [13.2 kB] Fetched 239 kB in 0s (1,241 kB/s) dpkg-source: info: extracting rp-pppoe in rp-pppoe-3.12 dpkg-source: info: unpacking rp-pppoe_3.12.orig.tar.gz dpkg-source: info: unpacking rp-pppoe_3.12-1.1.debian.tar.xz dpkg-source: info: applying 01_auto_ifup.patch dpkg-source: info: applying 02_change_mac_option.patch dpkg-source: info: applying 03_man_pages.patch dpkg-source: info: applying 04_ignore_broadcasted_pado_packets.patch dpkg-source: info: applying 05_change_default_timeout.patch dpkg-source: info: applying 06_typo_fixes.patch 

Aby to działało, potrzebujesz repozytorium źródłowego w swoim sources.list lub sources.list.d katalog (/etc/apt/sources.list lub /etc/apt/sources.list.d/. Taka linia wyglądałaby mniej więcej tak (zastąp odpowiednią sekcją lustrzaną i repozytorium):

deb-src http://mirror.location.org/debian/ stretch main contrib non-free 

Komentarze

  • Wydaje się całkiem jasne, że plakat prosił o polecenie pobrania pakietu binarnego Debiana, a nie źródła Debiana. Nie jest to więc odpowiedź na pytanie.

Odpowiedź

Podczas pracy na jednym Ubuntu serwer bez internetu, ale dostępny przez intranet firmy ng pakietów było wyzwaniem.

Stworzyłem skrypt, który przeszuka zależności wymaganego pakietu, zapisze je na liście, a następnie przejdzie przez listę, aby pobrać inne zależności potomne, ponieważ czasami wystarczyło tylko jedno pobranie zależności niewystarczająco. Po pobraniu zależności umieścił je w pliku zip, który można przenieść w całości na serwer. Nazwałem ten skrypt pkgdownload .

Można go znaleźć na moim GitHub tutaj

Oto jego zdjęcie w pracy: tutaj wprowadź opis obrazu

Komentarze

  • Dobra robota! Fajną dodatkową funkcją byłaby opcja pobierania pakietów recommends i suggests. Patrz askubuntu.com/a/117646/6227
  • Nie ' t apt-offline już to zrobisz?

Odpowiedz

Możesz pobrać plik pakietu do określonego katalogu za pomocą wget:

$ wget -O ~/Downloads/ppp_2.4.7-1+4_amd64.deb http://ftp.us.debian.org/debian/pool/main/p/ppp/ppp_2.4.7-1+4_amd64.deb 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *