2010-10-17 10 views
10

J'ai démarré mon système à partir d'un CD Ubuntu en direct, et j'ai besoin de résoudre certains problèmes de paquets. J'ai monté mon disque dur, et maintenant je veux lancer apt-get comme si j'avais démarré normalement. c'est à dire changer le répertoire de travail pour apt-get afin qu'il fonctionne sur mon disque dur. Je l'ai déjà fait, mais je ne me souviens pas de la syntaxe. Je pense que c'était seulement un drapeau, comme ceci:Exécuter apt-get pour une autre partition/répertoire?

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

Mais je reçois seulement "L'option de ligne de commande ... n'est pas comprise". Des idées?

+0

question ne concerne pas la programmation. Probablement appartient à Serverfault. (Les modérateurs le migreront si nécessaire, ne le copiez pas et ne le copiez pas dans Serverfault) –

Répondre

6

chroot/mnt/partition1

Si votre système utilise plusieurs partitions de disque que vous pourriez avoir à monter certains d'entre eux afin d'obtenir le système de package de travail (je me suis arrêté la mise en place de plusieurs partitions il y a 10 ans lorsque les disques durs ont commencé pour devenir trop grand pour la sauvegarde physique brute).

Cela ne fonctionnerait pas si vous ne disposez pas déjà d'un système Debian utilisable à cet emplacement. - akostadinov

Si vous ne pouvez pas obtenir le système de package de travail lorsque le chroot, peut-être il est trop foiré à jamais faire confiance à nouveau - dans mon expérience l'effort de le ramener à la vie paie rarement. Si cela se produit, soyez heureux, vous pouvez toujours accéder à votre HD, sauvegarder vos données et effectuer une réinstallation propre.

Quelques commentaires pertinents d'autres réponses:

jeux apt-get -o RootDir =/tmp/test_apt (presque) tous les chemins d'être dans les différents racine. btw sur un système en cours d'exécution, si vous copiez/etc/apt,/usr/lib/apt, et mkdir -p usr/lib etc var/cache var/lib/dpkg var/lib/apt/listes/partial var/cache/apt/archives/partial et enfin touchez var/lib/dpkg/status, alors apt va fonctionner dans cette racine. Il peut même fonctionner en tant qu'utilisateur non root si vous ajoutez l'option -o Debug :: NoLocking = 1. L'option nolock est nécessaire car je n'ai pas trouvé le moyen de définir le fichier de verrouillage dans le répertoire racine différent. - akostadinov

Travailler signifie utiliser la recherche et le téléchargement de paquets et de telles opérations. En fait, l'installation n'est pas possible si certains paquets essentiels ne sont pas déjà là. debootstrap peut aider si l'objectif est d'installer des paquets dans une nouvelle racine pour une raison quelconque. - akostadinov

+3

Cela ne fonctionnerait pas si vous n'avez pas déjà un système Debian utilisable dans cet emplacement. – akostadinov

+0

Si vous ne parvenez pas à faire fonctionner le système de paquets lorsque vous chrootez, c'est pour vous faire de nouveau confiance - dans mon expérience, les efforts pour le ramener à la vie sont rarement payants. Mon conseil: soyez heureux, vous pouvez toujours accéder à votre HD, sauvegarder vos données et effectuer une nouvelle installation. –

4

Courir chroot /mnt/partition1 va lancer un nouveau shell dans lequel la racine du système de fichiers est /mnt/partition1. En supposant que le apt-get sur votre disque dur fonctionne toujours correctement, vous pouvez procéder à partir de là.

dpkg --root=/mnt/partition1 -i mypackage.deb est une option qui ne nécessite pas chroot, mais vous oblige à télécharger le package vous-même.

16

Aussi cela devrait fonctionner:

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

+1 pour trouver la solution 'apt-get' qui me manquait! – Jander

+0

apt-get -o RootDir =/tmp/test_apt définit (presque) tous les chemins devant être dans la racine différente. btw sur un système en cours d'exécution, si vous copiez/etc/apt,/usr/lib/apt, et mkdir -p usr/lib etc var/cache var/lib/dpkg var/lib/apt/listes/partial var/cache/apt/archives/partial et enfin touchez var/lib/dpkg/status, alors apt va fonctionner dans cette racine. Il peut même fonctionner en tant qu'utilisateur non root si vous ajoutez l'option -o Debug :: NoLocking = 1. L'option nolock est nécessaire car je n'ai pas trouvé le moyen de définir le fichier de verrouillage dans le répertoire racine différent. – akostadinov

+0

Travailler signifie utiliser la recherche et le téléchargement de paquets et de telles opérations. En fait, l'installation n'est pas possible si certains paquets essentiels ne sont pas déjà là. debootstrap peut aider si l'objectif est d'installer des paquets dans une nouvelle racine pour une raison quelconque. – akostadinov