J'ai un ami qui a un ordinateur qui n'est pas connecté à l'Internet. Existe-t-il un moyen d'installer facilement un logiciel hors ligne ?
Réponses
Trop de publicités?Il existe plusieurs bonnes réponses efficaces énumérées ci-dessus. Cependant, c'est le mécanisme que j'utilise personnellement -- apt-ftparchive . Je le documente ici, au cas où j'en aurais besoin à l'avenir. Peut-être cela pourrait-il vous être utile.
Création de l'instantané d'archive
- Créez une instance d'Ubuntu qui reproduit fidèlement l'environnement cible.
- Par exemple, une instance Ubuntu 12.04 64-bit dans Amazon
- Commencez par un environnement de paquetage propre
sudo apt-get clean
- Mettre à jour les listes de paquets
sudo apt-get update
- Télécharger toutes les mises à jour de paquets disponibles
sudo apt-get dist-upgrade --download-only
- Téléchargez tous les paquets et dépendances pertinents
sudo apt-get install --download-only byobu run-one bikeshed dotdee powernap
- Installer l'utilitaire apt-ftparchive
sudo apt-get install apt-utils
- Créer le manifeste du paquet
(cd /var/cache/apt/archives/ && sudo apt-ftparchive packages . ) | sudo tee /var/cache/apt/archives/Packages
- Créer une archive des paquets
sudo tar cvf snapshot.tar -C /var/cache/apt archives/
Utilisation de l'instantané d'archive sur le système cible hors ligne
- Grâce à un mécanisme quelconque, vous devrez faire passer le snapshot.tar de la source au système cible. Peut-être sur une clé USB, ou autre.
- Extraire l'archive sur le système cible (dans ce cas, dans /home/ubuntu)
tar xvf snapshot.tar
- Ajouter la source locale, hors ligne à /etc/apt/sources.list
echo "deb file:/home/ubuntu/archives /" | sudo tee -a /etc/apt/sources.list
- Mise à jour de la liste des paquets
sudo apt-get update
- Installez les paquets comme vous le souhaitez
sudo apt-get install byobu run-one bikeshed dotdee powernap
Pour une installation hors ligne, vous aurez besoin des paquets. Si vous utilisez un système Debian
- Obtenez le fichier du paquet avec l'option
.deb
et utiliser l'extension de fichierdpkg -i package_name
pour l'installer -
Obtenez l'archive de la source avec l'option
.tar.gz
o.tar.bz2
puis les extraire et les installer avec :tar -zxvf your_pack.tar.gz` or tar `-jxvf your_pack.tar.bz2 make sudo make install make clean (optional, and may prevent uninstallation)
Vous pouvez avoir des problèmes avec les dépendances. Vous devez d'abord les installer pour que l'installation hors ligne soit réussie.
Pour un système qui sera toujours maintenu hors ligne, il est généralement préférable d'utiliser l'une des méthodes robustes de gestion des paquets hors ligne présentées dans certaines des autres réponses. En effet, elles facilitent la mise à jour des paquets déjà installés, plutôt que de simplement installer une poignée de paquets en une seule fois.
Cependant, pour les cas isolés où vous souhaitez simplement installer rapidement des paquets sur un système qui ne dispose pas d'une connexion Internet (et où vous avez la possibilité de les télécharger sur une autre machine et de les y amener), vous pouvez le faire. La principale complication est de déterminer ce dont vous avez besoin, car un paquet a souvent d'autres paquets dont il dépend, et qui doivent donc être installés avant, ou en même temps que, le paquet est installé.
Cette réponse est motivée par la question dupliquée g++ dans Ubuntu 14.04 et utilise le cas où il faut installer g++
comme son principal exemple.
J'insiste sur le fait que cette méthode ne doit pas être utilisée à long terme comme une alternative à quelque chose qui facilite au moins la détermination et l'installation automatiques des mises à jour de sécurité nécessaires. Le fait de ne jamais se connecter à un réseau réduit considérablement le risque d'attaque, mais certains bogues de sécurité peuvent être exploités via des données provenant de n'importe quelle source.
Si cette méthode peut paraître complexe, elle ne prend généralement que quelques minutes. Pour les paquets comportant un grand nombre de dépendances, cela peut prendre plus de temps. Pour l'installation de métapaquets qui tirent un très grand nombre de dépendances (par exemple, ubuntu-desktop
sur un système minimal), le téléchargement de tous les fichiers .deb nécessaires peut prendre beaucoup plus de temps et cette méthode a peu de chances de convenir.
Déterminer les dépendances nécessaires
Vous pouvez simuler l'installation pour déterminer quels autres paquets sont nécessaires pour satisfaire les dépendances du paquet. En passant le -s
pour apt-get
( avant vous spécifiez une action quelconque) fait cela.
apt-get -s install g++
J'ai omis sudo
Puisqu'il ne s'agit que d'une simulation, les privilèges root ne sont pas nécessaires.
Si vous souhaitez réellement installer tous les outils les plus courants pour la construction de paquets, plutôt que de simplement g++
vous pourriez préférer :
apt-get -s install build-essential
La sortie (pour g++
) ressemblera à quelque chose comme ceci :
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])
Cela dit que pour installer g++
sur mon système, j'ai besoin de paquets g++
, g++-4.8
et libstdc++-4.8-dev
.
Il est généralement préférable de se baser sur les résultats d'une simulation que de simplement consulter les dépendances d'un paquet (ou de supposer que ce dont vous avez besoin est identique à ce qui est indiqué ci-dessus), car :
- Il se peut que certaines dépendances soient déjà installées.
- Les dépendances (c'est-à-dire les autres paquets dont un paquet a besoin pour être installé ou fonctionner) peuvent elles-mêmes avoir des dépendances que vous n'avez pas déjà installées.
Obtenir les paquets
Une fois que vous savez de quels paquets vous avez besoin, vous pouvez les télécharger. Je suggère d'utiliser Launchpad pour cela, car les téléchargements sont cryptés par SSL, ce qui permet d'éviter la corruption des fichiers.
- Il ne s'agit pas seulement d'une protection contre la manipulation délibérée par une partie malveillante ; cela permet également d'éviter la corruption accidentelle des fichiers, qui est un problème beaucoup plus courant pour les fichiers téléchargés.
- Il en existe un type qu'il n'empêche pas : lorsqu'un fichier ne se télécharge que partiellement alors que vous pensez qu'il est terminé.
- Installer un paquet normalement avec
apt-get
ou le centre logiciel ne nécessite pas de HTTPS car son hachage est vérifié par rapport à une liste de hachages signés numériquement. Si vous finissez par placer ces paquets dans votre cache de paquets et que vous utilisez la fonctionapt-get
pour les installer, cela arrivera. - Mais si vous finissez par devoir installer les paquets téléchargés manuellement avec
dpkg -i
ça ne se fera pas.
Vous pouvez rechercher un paquet en tapant son nom dans la rubrique Packages en https://launchpad.net/ubuntu et cliquez sur "Trouver un paquet". Par exemple, la recherche de g++-4.8
vous amène au Page du paquetage source de gcc-4.8 .
Faites ensuite défiler la liste jusqu'au nom de code de votre version d'Ubuntu. Vous utilisez la version 14.04, donc c'est Trusty Tahr. Les noms de code de toutes les versions d'Ubuntu sont listés. sur la page wiki des versions . Cliquez sur le triangle pointant vers la droite pour afficher les téléchargements de paquets correspondants.
Pour certains paquets, il est possible d'étendre les listes de téléchargements à partir de plusieurs sources. poche . Vous pouvez voir :
- libérer La version d'un paquet livrée avec une version d'Ubuntu (ou disponible au moment de la publication) ;
- sécurité des mises à jour de sécurité expédiées après la publication ;
- mises à jour toutes les mises à jour envoyées après la publication ;
- proposée les mises à jour qui peuvent être installées, mais qui sont encore en phase de test et ne sont pas recommandées pour une utilisation générale ;
- backports un logiciel provenant d'une version ultérieure d'Ubuntu et reconstruit pour une version antérieure.
Par exemple, voici ce qui est disponible pour Firefox dans la version 14.04 :
En général, vous voudrez des paquets dans sécurité o mises à jour s'ils existent, et sinon les paquets dans libérer .
Une fois que vous avez développé la liste des paquets, trouvez le fichier .deb
pour votre architecture. Les fichiers debs sont nommés _name___version___architecture_.deb
. Les architectures les plus courantes sont :
- PC/Mac 64 bits (appelé
amd64
(pour les processeurs Intel et AMD) - PC/Mac 32 bits (appelé
i386
(également pour les deux)
Par exemple, pour obtenir le g++-4.8
pour la version 64 bits d'Ubuntu, vous pourriez télécharger g++-4.8_4.8.4-1ubuntu15_amd64.deb
.
Installation des paquets
Si les paquets que vous avez récupérés sont les mêmes versions que apt-get
's install
aurait automatiquement récupéré et installé (si votre système était connecté au réseau), vous pouvez alors placer les paquets dans le répertoire /var/cache/apt/archives
et lancez simplement cette commande :
sudo apt-get install g++
Si ce système était nunca connecté à l'Internet, alors ce sera probablement le cas lorsque tous les paquets que vous avez récupérés provenaient du libérer la poche. Que le système ait été connecté ou non à Internet, ce sera presque toujours le cas si aucun paquet n'est affiché sur Launchpad dans une autre poche. (Essentiellement, la seule situation où ce ne sera pas le cas est si vous avez installé un système alpha ou bêta et que vous ne l'avez jamais mis à jour).
Dans le cas spécifique de l'installation de g++
j'utiliserais apt-get
.
Si cela ne fonctionne pas ou si vous pensez que cela ne fonctionnera pas, installez les paquets en les plaçant dans un dossier vide et exécutez-les :
sudo dpkg -Ri /path/to/folder
Vous pouvez aussi nommer les paquets individuellement. Cet exemple suppose que les paquets se trouvent dans le répertoire courant (c'est-à-dire que vous avez cd
dans le répertoire qui les contient) :
sudo dpkg -i package1.deb package2.deb ...
À moins que le nombre de paquets à installer soit très faible と vous connaissez l'ordre précis dans lequel ils doivent être installés pour que les dépendances soient satisfaites, il est considérablement plus efficace d'utiliser ces méthodes que d'installer manuellement chaque paquet individuellement.
Après avoir parcouru les réponses ici : Comment puis-je installer des logiciels ou des paquets sans Internet (hors ligne) ? J'ai trouvé ce code d'Arnel A. Borja le plus utile.
sudo apt-get install PACKAGE --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh
Quoi qu'il en soit, voici quelques instructions pour les débutants. J'espère qu'elles vous seront utiles.
Instructions complètes de téléchargement pour les nouveaux utilisateurs d'Ubuntu 15.10+ :
-
Ouvrir le terminal (raccourci CTRL + ALT +T)
-
Naviguez vers le dossier dans lequel vous souhaitez que le paquet soit téléchargé en utilisant la commande :
cd FOLDERNAME
(Exemple :cd Desktop
)
Conseil : vous pouvez également utiliser la fonctiondir
pour lister les dossiers. -
Dans le code au-dessus des instructions, remplacez PACKAGE par le paquet que vous souhaitez télécharger.
-
Copiez et collez le code modifié (raccourci CTRL + SHIFT + V) et appuyez sur Entrée.
Exemple de code pour télécharger le gestionnaire de paquets Synaptic :
sudo apt-get install synaptic --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh
Exemple de code pour télécharger le lecteur VLC :
sudo apt-get install vlc --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh
-
Si on vous le demande, tapez le mot de passe root et appuyez sur Entrée. (Ne paniquez pas si les caractères du mot de passe ne s'affichent pas. C'est juste une mesure de sécurité).
-
Le fichier "install.sh" devrait maintenant être généré. Toutes les dépendances nécessaires sont incluses dans le script.
-
Maintenant nous devons exécuter le script avec cette commande :
sh install.sh
-
Attendez que les fichiers soient téléchargés
-
Ensuite, vous pouvez utiliser cette commande pour installer tous les paquets contenus dans le dossier :
sudo dpkg -i *.deb
Ou vous pouvez utiliser un programme comme Synaptics pour installer les paquets. (Synaptics : File - Add downloaded packages)
Vous pouvez aussi simplement double-cliquer sur les fichiers. Cela ouvrira le Centre logiciel Ubuntu. Une fois le centre logiciel chargé, appuyez sur le bouton d'installation. Répétez cette opération jusqu'à ce que tous les fichiers du dossier soient installés.
Oui. Vous pouvez télécharger le DVD iso, le graver sur un DVD et installer le logiciel à partir du DVD. Voir ici Les CD et DVD peuvent être donnés comme source aux gestionnaires de paquets, de la même manière que les archives en ligne.