¿Cómo puedo instalar software o paquetes sin Internet (sin conexión)?


Respuestas:


129

Echa un vistazo a Keryx ; Es un administrador de repositorios fuera de línea.

¿Como funciona? Le permite descargar actualizaciones y nuevos programas (con dependencias) a su unidad flash .

Su interfaz es similar a la sináptica, pero funciona desde un pendrive (no necesita instalación). Desafortunadamente, la GUI necesita wxwidgets, que no vienen preinstalados en Ubuntu (son multiplataforma e instalables desde aquí y el repositorio de Ubuntu aquí ). Solo puede instalar software en un sistema Ubuntu, pero puede descargar las actualizaciones o los nuevos paquetes en cualquier Linux, Windows u OS X.

Aquí puedes encontrar un tutorial .

Otro tutorial detallado paso a paso se encuentra en esta respuesta .

Launchpad también alberga archivos descargables .

Una captura de pantalla:

Captura de pantalla


12
keryx ya no está en desarrollo, si está intentando esto en una versión más nueva de Ubuntu, use la versión portátil para salvarse del problema de las dependencias.
Alex R

1
Todavía uso keryxsin problemas, aunque claramente necesita más desarrollo y mejoras.
carnendil


¿Qué pasa si la otra computadora fuera de línea no tiene gcc, g ++? Es un ubuntu recién instalado. ¿Cómo puedo instalar wxwidgets? Sin wxwidgets, se queja de la falta del módulo ...
una oferta no puede rechazar el

3
Acabo de lanzar una nueva versión de Keryx ( 0.92.5 ), que puede resolver algunas preocupaciones. La versión compilada debería contener dependencias como wxWidgets y permitirle ejecutar en Windows sin problemas.
Michael Crenshaw

57

Un truco rápido

Un truco rápido es copiar todos los paquetes que descargó para su instalación en su máquina ( instrucciones detalladas aquí ). Los archivos .deb se almacenan en /var/cache/apt/archives, luego, en la otra computadora, inicie Synaptic y seleccione File -> Add Package Downloadedy busque la carpeta donde colocó los archivos y los abrió, los acepta todos (o los instala desde el terminal usando el comando sudo dpkg -i DEB_PACKAGE_NAME).

NOTA:
Esto supone que su administrador de paquetes no está configurado para eliminar los paquetes inmediatamente después de la instalación. También supone que está ejecutando la misma versión de Ubuntu (10.10, 12.04, etc.) y la versión de arquitectura (32b o 64b) .


Un repositorio de DVD

Si desea las últimas correcciones de errores y parches de seguridad disponibles, eche un vistazo a este tutorial , que cubre la creación de su propio repositorio de DVD.


2
Si no puede ejecutar sudo apt-get updateesto, no funcionará muy bien, aún así es un buen ahorro de tiempo al configurar un nuevo sistema :)
GM-Script-Writer-62850

De acuerdo, acabo de actualizar dos computadoras a 13.10 desde 13.04. El primero tuvo que descargar ~ 1.8Gb, copiando el contenido del /var/cache/apt/archivessegundo hizo que solo descargara ~ 250Mb. Aún así, necesita una conexión para ejecutar la instalación.
Maxime R.

apt-get updateno es necesario si copia /var/lib/apt/lists: este directorio contiene la información del repositorio que descarga apt-get update.
ignis

Copié mi .deba mi usbdesde /var/cache/apt/archives. En la otra computadora, simplemente abrí la unidad USB y hice doble clic en la .debque lanzó la GUI de Ubuntu Software Updater. Fácil pezy.
Jacksonkr

@ jr0cket: ¿Hay alguna forma de evitar los paquetes en esta carpeta /var/cache/apt/archivesque ya vienen (incorporados) cuando se instala Debian?. La razón por la que pregunto que esto es 4.8 GB es demasiado grande para mi unidad USB, que es de 4 GB.
justin

42

Un repositorio USB

Si tiene una memoria USB de tamaño decente, suponiendo alrededor de 4-8 Gb (o disco duro externo), puede configurar una copia personalizada del repositorio de Ubuntu y configurarla como un repositorio local como se cubre en AptGet / Offline / Repository en help.ubuntu .com.

Para obtener los archivos de paquete reales (los archivos .deb), sugiero usar apt-mirror.

El apt-mirrorpaquete lo ayudará a crear un espejo personalizado que debería ser más pequeño que los 30 Gb del repositorio completo. Instala el paquete:

sudo apt-get install apt-mirror

y edite su archivo de configuración

gksudo gedit /etc/apt-mirror/mirror.list

o desde Ubuntu 14.04

gksudo gedit /etc/apt/mirror.list

Incluya solo las secciones del repositorio que desee. Aquí hay un ejemplo simple que copia los archivos binarios .deb de las 4 secciones (principal, restringido, universo y multiverso), así como las últimas correcciones de errores.

# apt-mirror configuration file
##
## The default configuration options (uncomment and change to override)
##
#
set base_path    /tmp/ubuntumirror
#

## Repositories to copy from - 

## use a mirror so you don't overload the main server!!!

# Lucid binaries - no source files
deb http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse


## Clean up older .deb files no longer in the archive
clean http://archive.ubuntu.com/ubuntu

Se estima que necesitará alrededor de 15 Gb de espacio para las 4 secciones, sin la fuente.

He puesto la ruta para que estén todos los archivos .deb /tmp, asegúrese de tener suficiente espacio para que su disco duro no se llene (si su disco duro se llena y su computadora se congela, /tmpdebe borrarse con un reinicio).

Si solo desea los archivos principales, elimine los nombres restringidos, de universo y multiverso del archivo de configuración.

Si está utilizando una arquitectura diferente (tiene 64 bits, pero su amigo tiene 32 bits), agregue lo siguiente al inicio del archivo de configuración mirror.list :

set defaultarch i386

Una vez que tenga la apt-mirrorconfiguración que desea, ejecute apt-mirrory haga algo divertido o que cambie la vida, ya que tomará horas o días obtener el repositorio (dependiendo de su conexión y el espejo Ubuntu que esté usando).

Una vez que tenga los archivos .deb, copie los archivos en su memoria USB (o disco duro externo) y configure el repositorio local según el artículo mencionado anteriormente.

¡Prueba que funciona antes de llevárselo a tu amigo!


El paquete apt-mirror se detalla en:: apt-mirror.sourceforge.net
jr0cket

Cuando probé sudo apt-get install apt-mirrordirectamente en Ubuntu 16.10 (Yakkety Yak), edición de escritorio / Rufus / memoria USB / modo de prueba, obtuve " E: Unable to locate package apt-mirror". Hubo conexión a Internet, verificado por ping.
Peter Mortensen

Correr sudo apt-get updateno lo solucionó.
Peter Mortensen

32

Utilizo apt-get con la opción "--print-uris" para hacerlo. También agrego "-qq" para que sea silencioso.

Use sed para eliminar caracteres adicionales agregados a algunos nombres de archivo (algo así como 3% 2a) y para obtener la url, el nombre de archivo y la suma de archivos md5. Use wget para descargar los archivos. Use md5sum para verificar si los archivos se descargan correctamente.

Puede usar esto para crear un script de shell para Linux o Mac OS (reemplace ".cmd" en los comandos para .sh y haga "chmod a + x (nombre de archivo) para agregar permiso para ejecutar el script) o un archivo por lotes de comandos de Windows , y un archivo MD5Sum para asegurarse de que los archivos se descargan correctamente.

Comandos

Crear script:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > script.cmd

Ejemplos:

sudo apt-get install anjuta --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install-anjuta.cmd
sudo apt-get upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > upgrade.cmd
sudo apt-get dist-upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > dist-upgrade.cmd

Crear archivo md5sum:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Ejemplos:

sudo apt-get install anjuta --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get dist-upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Necesita md5sum para Windows si está usando ese sistema operativo para descargar archivos.


Crear script para descargar listados de repositorio:

sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd

Comprobación de sumas de MD5

Puede agregarlos al final de los scripts para verificar md5sum:

Linux:

md5sum --quiet -c md5sum.txt

Windows (usa md5sum anterior, no admite --quiet):

md5sum -c md5sum.txt

Para agregar automáticamente al script:

echo -e "md5sum -c md5sum.txt\npause" >> script.cmd

Instalación de archivos de lista (comando Actualizar)

Ejecute estos comandos en la computadora de destino.

Necesita usar bunzip2 para extraer los archivos de la lista de repositorios:

bunzip2 *.bz2

Luego copie a la carpeta de listado (la carpeta actual solo contiene archivos de lista):

sudo cp * /var/lib/apt/lists/

Arriba combinado (la carpeta actual puede contener otros archivos):

for listfile in `ls *.bz2`; do bunzip2 $listfile; sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done

Descargas más rápidas

Si desea acelerar la descarga de los archivos, intente usar Axel.

Reemplazar wget -c ... -O ...con axel ... -o ....

Jerarquía de carpetas (descarga de archivos con Windows)

Por lo general, creo una carpeta como esta:

  • apt-get /
    • compartimiento/
      • msys-1.0.dll
      • msys-intl-8.dll
      • wget.exe
      • msys-iconv-2.dll
      • md5sum.exe
      • libeay32.dll
      • libintl3.dll
      • libssl32.dll
      • libiconv2.dll
    • actualizar/
      • update.cmd
      • md5sum.txt
    • Instalar en pc/
      • install-foo.cmd
      • install-bar.cmd
      • upgrade.cmd
      • md5sum.txt

Luego cambie wgeten las líneas de arriba a ..\\bin\\wget.exe, md5suma ..\\bin\\md5sum.exe, etc.

Esto separará los archivos * .deb y los archivos de la lista en diferentes carpetas.

Actualizando su sistema

  1. Arrancar en la computadora de destino que usa Ubuntu
  2. Crea un script para actualizar
  3. Arrancar en una computadora con conexión a internet
  4. Ejecute update.sh (para Linux o Mac OS) o update.cmd (Windows)
  5. Regrese a la computadora de destino
  6. Instalar archivos de lista
  7. Cree un script para actualizar / dist-upgrade (agregue los comandos md5sum para finalizar)
  8. Regrese a la computadora con conexión a internet
  9. Ejecute upgrade.sh/dist-upgrade.sh (Linux o Mac OS) o upgrade.cmd / dist-upgrade.cmd (Windows)
  10. Regrese a la computadora de destino
  11. Copie los archivos * .deb a la memoria caché: sudo cp *.deb /var/cache/apt/archives/
  12. Ejecutar: sudo apt-get upgradeosudo apt-get dist-upgrade

Descargar Executables para Windows

Wget para Windows: http://gnuwin32.sourceforge.net/packages/wget.htm

md5sum para Windows: http://gnuwin32.sourceforge.net/packages/coreutils.htm o http://www.etree.org/cgi-bin/counter.cgi/software/md5sum.exe

También puede usar los de MinGW , que son los que yo uso. Solo necesita wget.exe, md5sum.exe y las bibliotecas compartidas necesarias. Consulte la sección "Jerarquía de carpetas".

Notas

  • No estoy completamente seguro de si todo lo anterior funcionará, ya que no los he usado en un mes. Especialmente el comando de actualización, que no he probado hoy algunas partes de él.
  • Para ver fácilmente los resultados de los comandos, agregue una línea de "pausa" al final de los scripts, si usa Windows.
  • Recomiendo crear scripts de shell para actualizar, actualizar e instalar paquetes si usa estos comandos con frecuencia.

3
¿Puedes crear una interfaz
gráfica de usuario

usar Windows para esto parece muy extraño ...
Alex R

1
También es aplicable a Linux (que en realidad es mejor porque no necesita instalar md5sum y wget). La parte de Windows es para aquellos que no tienen una computadora Linux con conexión a Internet, por lo que puede usarla en un café internet o en la computadora de un amigo que solo tiene Windows.
Arnel A. Borja

-qqLa opción parece suprimir toda la salida de apt-get update. Supongo que realmente no quieres esta opción.
Ruslan

29

Primero debe obtener una PC con conexión a Internet, donde puede descargar los archivos .deb necesarios. Una vez que haya descargado todos los archivos, ahora puede crear un CD / DVD rom o un archivo ISO que puede usar para instalar el software que ha descargado en su PC sin conexión.

Comience con una instalación limpia o VM.
sudo apt-get install aptoncd

Instale los paquetes que desee en una PC
sudo apt-get install gbrainy

Ejecute aptoncd
ingrese la descripción de la imagen aquí
Haga clic en Crear
ingrese la descripción de la imagen aquí
Haga clic en Grabar y configure las opciones y luego en Aplicar
ingrese la descripción de la imagen aquí
Grabar o guardar
ingrese la descripción de la imagen aquí

Tenga en cuenta que aptoncd solo realiza copias de seguridad de las cosas en el actual apt-cache.
Es por eso que comenzamos con una instalación limpia de VM / nueva e hicimos todo esto en una sola ejecución.


Entonces, ¿estás diciendo que si hago un vm e instalo todas las aplicaciones que quiero, luego ejecuto este programa, llevo el cd / dvd a la PC fuera de línea. e instalaría todas las aplicaciones en él?
Alex

2
Siempre que use los mismos medios del sistema base, sí. Si está implementando una oficina y desea una forma rápida y sencilla de agregar algo, esto se vuelve muy útil. Si usa el paquete create-meta, sí
RobotHumans

La restauración de la imagen requiere la instalación de hal, pero está obsoleto y ya no es compatible, por lo que entiendo.
Flashrunner


22

Repositorio fuera de línea

Aquí se describe cómo crear un repositorio fuera de línea : solo tiene que descargar los archivos apropiados de archive.ubuntu.com . Alternativamente, podría usar apt-medium.

EDITAR: Otro enfoque basado en un archivo local de *.debarchivos se describe en diferentes entradas de blog (ver aquí y aquí ). Sarath Chandra resume lo siguiente:

  1. Hacer un directorio accesible (al menos de raíz)

    sudo mkdir /var/my-local-repo
    
  2. Copie todos los archivos deb a este directorio.

  3. Hacer el directorio como un

    sudo bash -c 'dpkg-scanpackages /var/my-local-repo /dev/null | gzip -c9 > /var/my-local-repo/Packages.gz'
    

    o

    sudo dpkg-scanpackages /var/my-local-repo /dev/null | gzip -c9 > /var/my-local-repo/Packages.gz
    
  4. Agregue el repositorio local a las fuentes

    echo "deb file:/var/my-local-repo ./" > /tmp/my-local.list
    sudo mv /tmp/my-local.list /etc/apt/sources.list.d/my-local.list
    sudo apt-get update
    

20

Paso 1: Obtenga las URL de descarga en un archivo:

Ejecute el siguiente comando reemplazando los nombres de paquetes por los obligatorios, separándolos por un espacio.

apt-get -y install --print-uris package-name | cut -d\' -f2 | grep http:// > apturls

Paso 2: copie este archivo (apturls) en una máquina que tenga acceso a Internet de alta velocidad y ejecute el siguiente comando para descargar los paquetes:

wget -i path-to-apturls-file 

Paso 3: Ahora obtenga esos paquetes descargados en su máquina e instálelos usando:

cd path-to-the-downloaded-packages-directory

sudo dpkg -i *.deb

¡Hecho!


¿ --print-urisImprime incluso las dependencias que ya están instaladas en el sistema?
yuric

19

Puedes usar Cube . Es un administrador de paquetes portátil que le permite descargar paquetes en otra computadora conectada a Internet e instalarlos nuevamente en su computadora Linux original, sin conexión.

Descarga de aplicaciones (en Windows)

Instalación de aplicaciones (en Linux)

Puede descargarlo en el sitio web de Cube .


¿Es .deb o .exe?

2
No hay un archivo .deb porque es independiente, portátil y se puede ejecutar sin instalar (solo ejecute el archivo cube-normal). Cube.exe también se incluye para usuarios de Windows.
Camicri

1
Más personas necesitan saber sobre esto. te quiero.
howderek

Recibo un error al ejecutar esta aplicación en win 7 Ultimate 32 bit. Imagen: mensaje de error i.stack.imgur.com/XW3wt.jpg : Firma del problema: Nombre del evento del problema: CLR20r3 Firma del problema 01: cube.exe Firma del problema 02: 1.0.9.3 Firma del problema 03: 54bd0258 Firma del problema 04: glib-sharp Firma del problema 05: 2.12.0.0 Firma del problema 06: 517edc4c Firma del problema 07: 1b4 Firma del problema 08: 17 Firma del problema 09: System.DllNotFoundException Versión del sistema operativo: 6.1.7600.2.0.0.256.1 Id. De configuración regional: 16393
Sandeep

Hola y gracias por usar Cube. Desafortunadamente, la versión del cubo que está utilizando ya no se mantiene. Utilice el nuevo y estable, Cube Server: launchpad.net/cube-server. Vea la respuesta actualizada arriba.
Camicri

17

En Synaptic, puede seleccionar los paquetes que desea instalar y en el primer menú hay una opción para generar un script que puede llevar a otra máquina y ejecutar allí. Este script "wget" (es decir, "descarga") todos los paquetes que ha especificado que deseaba (y sus dependencias) que se ejecuta en un equipo que tiene acceso a Internet.

Una vez ejecutado, tendrá todos los archivos de paquete que necesita la computadora desconectada. Llévelos en un CD / memoria USB e instálelos sudo dpkg -i *.deb.


Es un buen truco pero 2 computadoras para hacer el proceso? hmmmm
Suhaib

@Suhaib: no estoy seguro de cómo descargar los paquetes que necesita en cualquier medida sin 'dos ​​computadoras' ... necesita una máquina 'en línea' para obtener los paquetes que de alguna manera enviará a su máquina fuera de línea (incluso si es una VM o un Docker Container que se ejecuta en un sistema operativo host diferente, o un montón de manuales curl/ wgetcopias en algunos medios externos ...
Cinderhaze

15

Puedes usar apt-offlineo apt-offline-gui.
Requisitos previos : el sistema de un amigo con conexión a Internet. apt-offline instalado en sus dos sistemas.

La instalación sin conexión se logra en 3 simples pasos.

Paso 1 :
generar un archivo de firma en el cuadro Debian desconectado en casa
apt-offline set /tmp/apt-offline.sig
El comando anterior generará toda la información requerida de apt sobre la actualización de su base de datos.

Paso 2 :
descargue los datos en función del archivo de firma generado anteriormente
apt-offline get C:\apt-offline.sig --threads 5
El comando anterior descargará los datos como se menciona en el archivo de firma. Para acelerar las descargas (que pueden ser de múltiples repositorios aptos), en este ejemplo generamos 5 hilos de descarga.
Una vez completado, puede simplemente copiar los datos (un archivo de almacenamiento, si usó la opción --bundle) nuevamente en el medio extraíble y copiarlos nuevamente en su host fuera de línea.

Paso 3 :
Una vez que regrese a la máquina Debian doméstica, alimente los datos del medio extraíble a apt-offline:
apt-offline install /media/USB/apt-offline.zip
esto actualizará la base de datos APT en su máquina desconectada sin problemas.

Apt-offline puede incluso usarse en sistemas Windows. En mi opinión, apt-offlinees la mejor opción para la instalación sin conexión.

Fuente


Dos observaciones: Primero, generar una firma para un paquete ya instalado o listo para instalar "falla" en el sentido de que el archivo .sig está vacío. Eso es un poco desconcertante pero aparentemente normal. En segundo lugar, apt y apt-offline funcionan correctamente solo si / var / lib / apt / lists se ha sembrado correctamente. Esto es una buena cantidad de trabajo si las máquinas de destino y host tienen arquitecturas diferentes.
Urhixidur

¿Tanto la PC de origen como la de destino necesitan tener la misma versión de Ubuntu?
Tulains Córdova

¿Cómo instalar apt-offline en la máquina fuera de línea?
Sami Şimşekli

10

Hay varias respuestas buenas y efectivas enumeradas anteriormente. Sin embargo, este es el mecanismo que uso personalmente: apt-ftparchive . Lo estoy documentando aquí, en caso de que lo necesite nuevamente en el futuro. Quizás te sea útil.

Crear la instantánea del archivo

  • Cree una instancia de Ubuntu que imite de cerca el entorno de destino
    • Por ejemplo, una instancia de Ubuntu 12.04 de 64 bits en Amazon
  • Comience con un entorno de paquete limpio
    • sudo apt-get clean
  • Actualiza las listas de paquetes
    • sudo apt-get update
  • Descargue todas las actualizaciones de paquetes disponibles
    • sudo apt-get dist-upgrade --download-only
  • Descargue todos los paquetes y dependencias relevantes
    • sudo apt-get install --download-only byobu run-one bikeshed dotdee powernap
  • Instale la utilidad apt-ftparchive
    • sudo apt-get install apt-utils
  • Crear el manifiesto del paquete
    • (cd /var/cache/apt/archives/ && sudo apt-ftparchive packages . ) | sudo tee /var/cache/apt/archives/Packages
  • Crea un archivo de los paquetes
    • sudo tar cvf snapshot.tar -C /var/cache/apt archives/

Uso de la instantánea de archivo en el sistema de destino sin conexión

  • A través de algún mecanismo, necesitará obtener el snapshot.tar desde el sistema de origen hasta el de destino. Quizás en una memoria USB, o de otra manera.
  • Extraiga el archivo en el sistema de destino (en este caso, en / home / ubuntu)
    • tar xvf snapshot.tar
  • Agregue la fuente local fuera de línea a /etc/apt/sources.list
    • echo "deb file:/home/ubuntu/archives /" | sudo tee -a /etc/apt/sources.list
  • Actualiza la lista de paquetes
    • sudo apt-get update
  • Instale los paquetes como desee
    • sudo apt-get install byobu run-one bikeshed dotdee powernap

4

Para la instalación fuera de línea, necesitará los paquetes. Si está utilizando un sistema Debian

  • Obtenga el archivo del paquete con la .debextensión de archivo y úselo dpkg -i package_namepara instalarlo
  • Obtenga el tarball de origen con la extensión de archivo .tar.gzo .tar.bz2, luego extráigalo e instálelo con:

    tar -zxvf your_pack.tar.gz` or tar `-jxvf your_pack.tar.bz2
    make
    sudo make install
    make clean        (optional, and may prevent uninstallation)
    

Puede tener problemas con las dependencias. Debe instalar todos esos primero para una instalación sin conexión exitosa.


2

Si. Puede descargar el DVD iso, grabarlo en un DVD e instalar el software desde el DVD. Consulte aquí Los CD y DVD se pueden proporcionar como fuente a los administradores de paquetes de la misma manera que los archivos en línea.


2

Lo primero que puede hacer antes de la instalación de un paquete fuera de línea es actualizar el repositorio / repositorios que necesita. Seguro que debe actualizar el repositorio principal (para software gratuito y oficialmente compatible).

Las aplicaciones que está buscando instalar pueden estar en otros repositorios como el Universo (gratuito pero sin soporte oficial), o el repositorio Restringido (no gratuito, oficialmente compatible) o el Multiverso (no gratuito, sin soporte oficial) . Por lo tanto, es posible que desee uno o más de estos también.

Entonces, el primer paso en el proceso es construir un repositorio fuera de línea actualizado; luego genere la lista de "descargar" y descárguelas, y finalmente la instalación. Así es como se hace: fuente

  1. Ingrese la url: http://archive.ubuntu.com/ubuntu/dists/ suiteCodename donde suiteCodename debe ser sustituido apropiadamente, digamos preciso para Ubuntu 12.04 (Precise Pangolin) [o utópico para Ubuntu 14.10 (Utopic Unicorn)] para que pueda ahora esté en http://archive.ubuntu.com/ubuntu/dists/precise/ o cualquier otro específico de la suite que tenga.

  2. Descargue los archivos Release , Release.gpg y el archivo Contents - ????. Gz para su arquitectura (es decir, Contents-i386.gz , suponiendo que su arquitectura sea i386). Guarde estos tres archivos en un directorio / carpeta con el nombre de su suiteCodename ( precisa para Precise Pangolin).

  3. A continuación, deberá hacer lo siguiente para cada uno de los repositorios (entre Principal, Universo, Restringido, Multiverso ) que desee.

    a. ir al directorio del repositorio de destino, por ejemplo. principal y luego al directorio de arquitectura, por ejemplo. binary-i386 para que esté en http://archive.ubuntu.com/ubuntu/dists/suiteCodename/repositoryName/binary-????/

    si. descargue los contenidos Packages.bz2, Packages.gz, Release y guárdelos en un directorio con el nombre del repositorio, por ejemplo. main y coloque este directorio en el directorio suiteCodename creado previamente .

    C. repetir a. y B. para cada uno de los repositorios que desee.

  4. Finalmente deberías tener una estructura como esta:

     precise
     ├── Contents-i386.gz
     ├── main
     │   └── binary-i386
     │       ├── Packages.bz2
     │       ├── Packages.gz
     │       └── Release.txt
     ├── Release.gpg
     ├── Release.txt
     └── universe
         └── binary-i386
             ├── Packages.bz2
             ├── Packages.gz
             └── Release.txt
    

    (suponiendo que su suiteCodename = precisa, la arquitectura es i386, y necesita repositorios principales y universales)

  5. A continuación, después de descargar los repositorios actualizados, colocaría los archivos descargados dispuestos en una estructura adecuada (como se muestra arriba) en un directorio de la computadora fuera de línea de destino. Guarde la estructura del directorio preciseen una carpeta llamada offlineRepository / dists / precisa en su usuario home ( ~/offlineRepository/dists/precise) o en cualquier otro lugar ( /home/offlineRepository/dists/preciseusando sudo previleges en una terminal o con el administrador de archivos Nautilus iniciado gksu nautilus; también asegúrese de tener los permisos correctos para la estructura copiada) . La información del repositorio fuera de línea estaría lista para usar.

  6. Agregue el repositorio local en su lista de fuentes . Con el Centro de software de Ubuntu , vaya a Editar -> Fuentes de software ... -> Otro software -> Agregar ... y luego en el campo de la línea APT, agregue: deb file:///home/offlineRepository precise main universey haga clic en Agregar fuente . Asegúrese de modificar la línea en cuanto a su directorio / estructura de archivos y suite. Luego vuelva a cargar los paquetes o ejecútelos sudo apt-get updateen una terminal. snap1

  7. Ahora con los repositorios actualizados (y probablemente también agregados recientemente), puede volcar la lista de URL para los paquetes y dependencias.

    Tomo prestada la siguiente línea de código de una de las publicaciones anteriores de askUbuntu:

    sudo apt-get install packageName --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    

    p.ej. instalar Synaptic Package Manager:

    sudo apt-get install synaptic --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    

    (También puede generar listas de actualizaciones de manera similar).

    La lista generada se puede usar para descargar el paquete y todas las dependencias en una computadora en línea. Cree un script para descargar o use la lista para la descarga por lotes en algunos administradores de descargas. (Tenga en cuenta también que el archivo de texto generado utiliza el final de línea de Unix / Linux, y que es posible que desee cambiar a Windows). Solía ​​haber una manera más fácil para esto cuando Synaptic Package Manager era una aplicación predeterminada en Ubuntu.

  8. Finalmente en el sistema de destino, puede instalar los paquetes con dpkgo de cualquier otra manera.

Obtener la base de datos del paquete actualizado, incluidas las actualizaciones de seguridad

La siguiente estructura, además de la explicación anterior, debería darle la idea:

/opt/offlineRepoList/
└── dists
    ├── precise
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release.txt
    │   ├── Release.gpg
    │   ├── Release.txt
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release.txt
    ├── precise-security
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release
    │   ├── Release
    │   ├── Release.gpg
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release
    └── precise-updates
        ├── Contents-i386.gz
        ├── main
        │   └── binary-i386
        │       ├── Packages.bz2
        │       ├── Packages.gz
        │       └── Release
        ├── Release
        ├── Release.gpg
        └── universe
            └── binary-i386
                ├── Packages.bz2
                ├── Packages.gz
                └── Release

2

Después de buscar las respuestas aquí: ¿Cómo puedo instalar software o paquetes sin Internet (sin conexión)? Encontré este código de Arnel A. Borja el más útil.

sudo apt-get install PACKAGE --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh


De todos modos, aquí hay algunas instrucciones para novatos completos. Espero que les sean de utilidad.

Instrucciones de descarga completas para otros nuevos en Ubuntu 15.10+:

  1. Abra la Terminal (acceso directo CTRL + ALT + T)
  2. Navegue a la carpeta donde desea que se descargue el paquete mediante el comando:

    cd FOLDERNAME
    (Ejemplo: cd Desktop)
    Consejo: También puede utilizar el dircomando para listar las carpetas.

  3. En el código anterior a las instrucciones, reemplace el PAQUETE con el paquete que desea descargar.
  4. Copie y pegue el código modificado (atajo CTRL + MAYÚS + V) y presione Entrar

    Código de ejemplo para descargar Synaptic Package Manager:
    sudo apt-get install synaptic --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh

    Código de ejemplo para descargar el reproductor VLC:
    sudo apt-get install vlc --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh

  5. Si se le solicita, escriba la contraseña de root y presione Entrar. (No se asuste si los caracteres de la contraseña no se muestran. Es solo una medida de seguridad).
  6. El archivo "install.sh" debería generarse ahora. Todas las dependencias que se necesitan están incluidas en el script.
  7. Ahora necesitamos ejecutar el script con este comando:
    sh install.sh
  8. Espera a que se descarguen los archivos
  9. Luego, puede usar este comando para instalar todos los paquetes dentro de la carpeta:

    sudo dpkg -i *.deb

    O puede usar un programa como Synaptics para instalar los paquetes. (Synaptics: Archivo - Agregar paquetes descargados)
    Alternativamente, también puede hacer doble clic en los archivos. Eso abrirá el Centro de software de Ubuntu. Una vez que se carga el centro de software, presione el botón de instalación. Repita esto hasta que todos los archivos en la carpeta estén instalados.


2

Tengo un pequeño script de Python que se puede ejecutar en Windows que analiza el sitio web del paquete ubuntu para encontrar el árbol de dependencias y descargar todos los paquetes necesarios + haciendo una verificación de suma de verificación.

Obviamente, esto podría descargar más de lo necesario, pero fue la solución más simple para mí.

https://gist.github.com/Zitrax/2bad212a3b0571357e1b

Todos los paquetes descargados se pueden instalar con dpkg -i E pkg\*. Evita la reinstalación de paquetes que ya están instalados.

Uso:

usage: ubuntu-deps.py [-h] [-a ARCH] [-r RELEASE] [-m MIRROR] [-f FALLBACK] [-d DIRECTORY] dep [dep ...]

Download ubuntu dependencies

positional arguments:
  dep                                  The main/top package

optional arguments:
  -h, --help                           show this help message and exit
  -a ARCH, --arch ARCH                 The architecture to use (default: amd64)
  -r RELEASE, --release RELEASE        Ubuntu release (default: trusty)
  -m MIRROR, --mirror MIRROR           Mirror to use for download (default: http://no.archive.ubuntu.com/)
  -f FALLBACK, --fallback FALLBACK     Mirror to use when main mirror is not found (default:
                                       http://security.ubuntu.com/)
  -d DIRECTORY, --directory DIRECTORY  Target directory (default: pkg)

2

Para un sistema que siempre se mantendrá fuera de línea, generalmente es mejor usar uno de los sólidos métodos de administración de paquetes fuera de línea presentados en algunas de las otras respuestas. Esto se debe a que facilitan mantener actualizados los paquetes ya instalados, en lugar de simplemente instalar un puñado de paquetes una vez.

Sin embargo, para casos aislados en los que solo desea instalar rápidamente paquetes en un sistema que no tiene conexión a Internet (y tiene la capacidad de descargarlos en otra máquina y traerlos), puede hacerlo. La principal complicación es determinar lo que necesita, ya que un paquete a menudo tiene otros paquetes de los que depende y, por lo tanto, deben instalarse antes o al mismo tiempo que se instala el paquete.

Esta respuesta está motivada por la pregunta duplicada g ++ en Ubuntu 14.04 , y utiliza el caso de la necesidad de instalar g++como su ejemplo principal.

Destaco que este método no debe usarse a largo plazo como una alternativa a algo que al menos facilite la determinación e instalación automáticas de las actualizaciones de seguridad necesarias. Nunca conectarse a una red reduce considerablemente el potencial de un ataque, pero algunos errores de seguridad pueden explotarse a través de los datos de cualquier fuente.

Si bien este método puede parecer complejo, generalmente solo toma unos minutos. Para paquetes con una gran cantidad de dependencias, puede llevar más tiempo. Para instalar metapaquetes que incorporan una gran cantidad de dependencias (por ejemplo, ubuntu-desktopen un sistema mínimo), puede tomar mucho más tiempo descargar todos los archivos .deb necesarios y es poco probable que este método sea adecuado.

Determinación de dependencias necesarias

Puede simular la instalación para determinar qué otros paquetes son necesarios para satisfacer las dependencias del paquete. Pasar la -sbandera a apt-get( antes de especificar cualquier acción) hace esto.

apt-get -s install g++

He omitido sudo, ya que esto es solo una simulación, por lo que no se necesitan privilegios de root.

Si realmente desea instalar todas las herramientas más comunes para crear paquetes, en lugar de solo g++, puede preferir:

apt-get -s install build-essential

La salida (para g++) se verá más o menos así:

NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  g++-4.8 libstdc++-4.8-dev
Suggested packages:
  g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg
  libstdc++-4.8-doc
The following NEW packages will be installed:
  g++ g++-4.8 libstdc++-4.8-dev
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Inst libstdc++-4.8-dev (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Inst g++-4.8 (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Inst g++ (4:4.8.2-1ubuntu6 Ubuntu:14.04/trusty [amd64])
Conf libstdc++-4.8-dev (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Conf g++-4.8 (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Conf g++ (4:4.8.2-1ubuntu6 Ubuntu:14.04/trusty [amd64])

Esto dice que instalar g++en mi sistema, necesito paquetes g++, g++-4.8y libstdc++-4.8-dev.

Seguir los resultados de una simulación suele ser mejor que simplemente buscar las dependencias de un paquete (o suponer que lo que necesita es lo mismo que el anterior), porque:

  1. Es posible que ya tenga algunas dependencias instaladas.
  2. Las dependencias (es decir, los otros paquetes que un paquete necesita instalar o funcionar) pueden tener dependencias que usted no haya instalado.

Obteniendo los paquetes

Una vez que sepa qué paquetes necesita, puede descargarlos. Sugiero usar Launchpad para esto, porque las descargas están encriptadas con SSL, lo que ayuda a prevenir la corrupción de archivos.

  • Esto no es solo una protección contra la manipulación deliberada por una parte maliciosa; También ayuda a prevenir la corrupción accidental de archivos, que es un problema mucho más común para los archivos descargados.
  • Hay un tipo que no previene: cuando un archivo se descarga solo parcialmente pero cree que terminó.
  • Instalar un paquete normalmente con apt-getel Centro de software no requiere HTTPS porque su hash se verifica con una lista de hashes firmada digitalmente. Si termina poniendo estos paquetes en su caché de paquetes y usándolos apt-getpara instalarlos, eso sucederá.
  • Pero si termina teniendo que instalar los paquetes descargados manualmente con dpkg -i, eso no se hará.

Puede buscar un paquete escribiendo su nombre en Paquetes en https://launchpad.net/ubuntu y haciendo clic en "Buscar un paquete". Por ejemplo, la búsqueda lo g++-4.8lleva a la página del paquete fuente gcc-4.8 .

Luego, desplácese hacia abajo hasta el nombre en código de su versión de Ubuntu. Estás ejecutando 14.04, así que eso es Trusty Tahr. Los nombres clave para todas las versiones de Ubuntu se enumeran en la página wiki de versiones . Haga clic en el triángulo que apunta hacia la derecha para ver las descargas de paquetes.

captura de pantalla que muestra el triángulo que mira hacia la derecha con el que se expande un lanzamiento para ver descargas para él

Para algunos paquetes, puede expandir las listas de descargas de más de un bolsillo . Puedes ver:

  • lanzamiento , la versión de un paquete enviado con un lanzamiento de Ubuntu (o disponible en el momento del lanzamiento);
  • seguridad , actualizaciones de seguridad enviadas después del lanzamiento;
  • actualizaciones , cualquier actualización enviada después del lanzamiento;
  • propuestas , actualizaciones que están disponibles para ser instaladas, pero aún están en pruebas y no se recomiendan para uso general;
  • backports , software originado en una versión posterior de Ubuntu y reconstruido para una versión anterior.

Por ejemplo, esto es lo que está disponible para Firefox en 14.04:

Captura de pantalla de Launchpad que muestra selecciones expandibles de descargas de paquetes para múltiples bolsillos en la misma versión

En general, querrá paquetes en seguridad o actualizaciones si existen, y de lo contrario paquetes en versión .

Una vez que expanda la lista de paquetes, busque el .debarchivo para su arquitectura. Las debs son nombradas . Las arquitecturas más comunes son:name_version_architecture.deb

  • PC / Mac de 64 bits (llamado amd64, para procesadores Intel y AMD)
  • PC / Mac de 32 bits (llamado i386, también para ambos)

Por ejemplo, para obtener el g++-4.8paquete para la versión de 64 bits de Ubuntu, puede descargarlo g++-4.8_4.8.4-1ubuntu15_amd64.deb.

Instalar los paquetes

Si los paquetes que recuperó son las mismas versiones que apt-getla installacción habría recuperado e instalado automáticamente (si su sistema estuviera conectado a la red), puede colocar los paquetes /var/cache/apt/archivesy simplemente ejecutar ese comando:

sudo apt-get install g++

Si este sistema nunca estuvo conectado a Internet, entonces este será probablemente el caso cuando todos los paquetes que recuperó fueran del bolsillo de lanzamiento . Independientemente de si el sistema se conectó o no a Internet, esto también será casi siempre el caso si no se muestran paquetes en ningún otro bolsillo en Launchpad. (Esencialmente, la única situación que no ocurrirá es si instaló un sistema alfa o beta y nunca lo actualizó).

En el caso específico de la instalación g++, lo usaría apt-get.

En los casos en que eso no funciona o espera que no funcione, instale los paquetes colocándolos en una carpeta vacía y ejecutando:

sudo dpkg -Ri /path/to/folder

O puede nombrar los paquetes individualmente. Este ejemplo supone que los paquetes están en el directorio actual (es decir, que ha cdeditado en el directorio que los contiene):

sudo dpkg -i package1.deb package2.deb ...

A menos que el número de paquetes que se instalen sea muy pequeño y conozca el orden preciso en que deben instalarse para que se satisfagan las dependencias, es considerablemente más eficiente usar esos métodos que instalar cada paquete manualmente de forma individual.


1

Si no tiene conexión a Internet de ningún tipo y no tiene a nadie cerca de donde pueda conectarse a Internet, hay una opción que aún no se menciona: que alguien envíe los archivos de origen a través de la publicación regular.

Puede obtener todo el sistema operativo Ubuntu a través del correo pagando un DVD. De la misma manera, puede pedirle a un amigo en línea que le envíe los archivos DEB o incluso los archivos fuente de un paquete como VLC. Aunque podría valer la pena que alguien envíe un DVD completo con todos los paquetes. De esa manera puedes instalarlo desde ese DVD.


0

Esta no es una respuesta completamente detallada, pero a un alto nivel podría:

  1. obtenga los paquetes .deb deseados (y cree una lista de ellos) (incluya paquetes de los que dependan que no estén ya instalados)
  2. crear un archivo apto que los contenga
  3. copie el archivo apt en un CD o USB
  4. inserte el CD o USB en el sistema de destino
  5. configure apt en el sistema de destino para incluir el CD o el archivo USB apt como fuente
  6. instale los paquetes de su lista con apt-get install (lista de paquetes)


0

Otra posibilidad es usar remastersys. Esta herramienta le permite crear una imagen iso desde su propio sistema y después de crear un dispositivo USB de arranque a través de unetbootin, puede instalar un sistema personalizado en la cantidad de computadoras que desee.


¿Pero cómo actualizarlos después?
Eliah Kagan

0

Tengo un par de sugerencias simples. Puedes ir a la biblioteca. Busque en la sección de la computadora el sistema operativo que desea, algunos de los libros tienen DVD dentro de ellos. Además, si desea el sistema operativo más actualizado, le recomendaría este sitio web donde puede comprar un DVD por una tarifa nominal. www.ubuntu.com/download/desktop.


0

Esta pregunta es un poco antigua, por lo que una respuesta en este momento puede ser redundante, pero quizás también podría intentar usar dpkg-offline . Instale bzr, luego:

bzr branch lp:dpkg-offline

hay un tutorial y un archivo readme incluido allí.

Suponiendo que desea instalar git en un sistema Ubuntu 14.04 amd64, incluso si su sistema es, por ejemplo, 12.04 i386, puede:

  • descargue la imagen ubuntu-14.04-desktop-amd64.iso
  • correr dpkg-offline ubuntu-14.04-desktop-amd64.iso git
  • Obtendrá un tar.gz que puede transportar al sistema de destino, contendrá el paquete semilla (git) y todas sus dependencias. También incluye un script auxiliar para agregar un repositorio local, para que pueda usarlo apt-getpara instalar sus paquetes.

dpkg-offline funcionará con cualquier versión de escritorio de Ubuntu desde 10.04 en adelante (no he probado con versiones anteriores pero también deberían funcionar), y con cualquier versión de servidor Ubuntu desde 12.10 en adelante. También debería funcionar con amd64, i386 e imágenes armhf, independientemente de la arquitectura del host. Una vez más, no he probado con arm64 o powerpc / ppc64el, pero también pueden funcionar.

Descargo de responsabilidad: escribí dpkg-offline.


Esto es genial, sin embargo, creo que es excesivo descargar toda la distribución para usar el script, ojalá pudiera funcionar especificando solo los paquetes requeridos y la distribución de destino
Javier López

0

Algunos paquetes se instalan en la unidad usb-stick. Desinstalé network-managery quiero instalarlo nuevamente.

Por lo tanto, obtuve el dispositivo desde el que instalé el sistema operativo (Lubuntu 17.10). Era/dev/sdb

Monta el palo en un camino ( /tmp/mnten mi caso)

mkdir /tmp/mnt
sudo mount /dev/sdb1 /tmp/mnt

Luego, edito /etc/apt/sources.listpara contener solo

deb file:///tmp/mnt/ main universe

Entonces lo hago

sudo apt-get update

Y puedo instalar network-manager.

Nota: Esta podría no ser la respuesta a la pregunta anterior, sino a la pregunta que tuve cuando busqué esta.


1
Probablemente deberías hacer una copia de seguridad sources.listy luego restaurarla también.
Chai T. Rex
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.