2010-10-17 7 views
10

He iniciado mi sistema desde un CD de Ubuntu en vivo, y necesito solucionar algunos problemas del paquete. He montado mi disco duro, y ahora quiero ejecutar apt-get como si hubiera arrancado normalmente. es decir, cambie el directorio de trabajo de apt-get para que funcione en mi disco duro. He hecho esto antes, pero no puedo recordar la sintaxis. Creo que era solo una bandera, como esta:¿Está ejecutando apt-get para otra partición/directorio?

apt-get --root-directory=/mnt/partition1 install.... 

Pero solo obtengo "La opción de línea de comando ... no se entiende". ¿Algunas ideas?

+0

pregunta no es acerca de la programación. Probablemente pertenece a Serverfault. (Los moderadores lo migrarán si es necesario, no lo copie y lo pegue en Serverfault) –

Respuesta

6

chroot/mnt/partition1

Si el sistema utiliza varias particiones de disco que pueda tener para montar algunos de ellos con el fin de obtener el sistema de paquetes de trabajo (Dejé de la creación de varias particiones hace 10 años cuando los discos duros comenzaron hacerse demasiado grande para la copia de seguridad física sin procesar).

Esto no funcionaría si aún no tiene un sistema Debian utilizable en esa ubicación. - akostadinov

Si no se puede obtener el sistema de paquetes de trabajo cuando haaber hecho, tal vez es demasiado desordenado de fiar nunca más - en mi experiencia el esfuerzo para traerlo de vuelta a la vida rara vez se paga. Si eso sucede, esté contento de que aún pueda acceder a su HD, hacer una copia de seguridad de sus datos y realizar una reinstalación limpia.

Algunas observaciones pertinentes de otra respuesta:

conjuntos apt-get -o RootDir =/tmp/test_apt (casi) todos los caminos para estar en la raíz diferente. Por cierto, en un sistema en ejecución, si copia/etc/apt,/usr/lib/apt, y mkdir -p usr/lib, etc var/cache var/lib/dpkg var/lib/apt/lists/partial var/cache/apt/archives/partial y finalmente toque var/lib/dpkg/status, luego apt va a funcionar en esa raíz. Incluso puede funcionar como usuario no root si agrega la opción -o Debug :: NoLocking = 1. La opción nolock es necesaria porque no pude encontrar una manera de establecer el archivo de bloqueo dentro del directorio raíz diferente. - akostadinov

El trabajo significa usar los paquetes de búsqueda y descarga y tales operaciones. En realidad, la instalación no es posible si algunos paquetes esenciales no están ya allí. debootstrap puede ayudar si el objetivo es instalar paquetes en una raíz nueva por cualquier razón. - akostadinov

+3

Esto no funcionaría si aún no tiene un sistema Debian utilizable en esa ubicación. – akostadinov

+0

Si no puede lograr que el sistema de paquete funcione cuando se hace un chroot, es una mala idea volver a confiar en él. En mi experiencia, el esfuerzo por devolverlo a la vida raramente paga. Mi consejo es: sé feliz de que aún puedas acceder a tu HD, hacer una copia de seguridad de tus datos y realizar una reinstalación limpia. –

4

Correr chroot /mnt/partition1 se iniciará un nuevo shell en el que la raíz del sistema de archivos es /mnt/partition1. Suponiendo que el apt-get en su disco duro aún funciona correctamente, puede continuar desde allí.

dpkg --root=/mnt/partition1 -i mypackage.deb es una opción que no requiere chroot, pero sí requiere que descargue el paquete usted mismo.

16

También esto debería funcionar:

sudo apt-get -o Dir=/media/partitioni1 update 
+0

+1 para encontrar la solución 'apt-get' que me perdí! – Jander

+0

apt-get -o RootDir =/tmp/test_apt establece (casi) todas las rutas en la raíz diferente. Por cierto, en un sistema en ejecución, si copia/etc/apt,/usr/lib/apt, y mkdir -p usr/lib, etc var/cache var/lib/dpkg var/lib/apt/lists/partial var/cache/apt/archives/partial y finalmente toque var/lib/dpkg/status, luego apt va a funcionar en esa raíz. Incluso puede funcionar como usuario no root si agrega la opción -o Debug :: NoLocking = 1. La opción nolock es necesaria porque no pude encontrar una manera de establecer el archivo de bloqueo dentro del directorio raíz diferente. – akostadinov

+0

Trabajo significa usar paquetes de búsqueda y descarga y tales operaciones. En realidad, la instalación no es posible si algunos paquetes esenciales no están ya allí. debootstrap puede ayudar si el objetivo es instalar paquetes en una raíz nueva por cualquier razón. – akostadinov

Cuestiones relacionadas