Comment installer des applications sur un disque dur séparé?

10

J'étais tellement bon avec les fenêtres, maintenant je me sens comme un idiot complet.

J'ai un SSD pour Ubuntu et je veux installer la majorité de mes programmes sur un disque dur séparé mais je ne sais pas comment.
Toutes les recherches que j'ai essayées ne se présentent qu'avec des installations à double démarrage.

  • (RÉSOLU ->) J'ai également du mal à localiser "/ etc /". Plus précisément, pour modifier Conky.
    La recherche de ce terme ne révèle que les cas où les gens vous disent d'accéder à ce fichier, pas comment y accéder.
plaguedoctor
la source
1
Jetez un œil à ceci , cela vous aidera à démarrer.
Mitch
J'avais l'impression que tout s'étendait du dossier personnel. Oups. Cette page que vous avez liée n'a pas été utile concernant mon problème, mais je le lis maintenant et j'apprends beaucoup, alors merci.
plaguedoctor
J'ai ajouté les balises mount et fstab; vous pouvez faire ce que vous décrivez en définissant manuellement des systèmes de fichiers particuliers à monter sur des partitions ou des lecteurs particuliers.
belacqua
@belacqua existe-t-il un autre moyen que cela? Je ne veux pas seulement des systèmes de fichiers particuliers sur un autre lecteur, je veux tous les systèmes de fichiers de programmes particuliers. De cette façon, je peux les trier selon l'intensité de mon système, avoir des jeux / virtualbox / etc entièrement sur mon SSD et des choses comme libreoffice / thunderbird entièrement sur l'un des disques durs.
plaguedoctor
Il n'est pas si facile de déterminer où une installation donnée et ses fichiers peuvent résider - voir les réponses dans le lien mentionné par Mitch. Vous pouvez également utiliser des choses comme des liens symboliques, mais ma recommandation est de commencer simplement. Trouvez un exemple d'application, posez ici une question spécifique à ce sujet (ou modifiez celle-ci pour qu'elle soit moins générale), et allez-y. Ou expérimentez avec prudence.
belacqua

Réponses:

22

Il existe une différence majeure entre Windows et GNU / Linux. Sous Windows, il est courant que chaque programme avec toutes les bibliothèques dont il dépend soit installé dans un dossier séparé. Cela conduit souvent à beaucoup d'espace disque gaspillé en raison de l'installation multiple de bibliothèques, pour chaque programme qui les utilise.

Sous Linux, les programmes sont installés conformément à la norme de hiérarchie du système de fichiers (FHS). Cela signifie que les bibliothèques dont les programmes dépendent sont toutes installées dans un emplacement dédié commun, de sorte qu'elles ne sont généralement installées qu'une seule fois, quel que soit le nombre de programmes qui les utilisent. De plus, les programmes sont construits de telle manière qu'ils utilisent tous la même version d'une certaine bibliothèque. Cela économise de l'espace disque (et de la RAM lors de l'exécution), mais présente l'inconvénient, que l'on ne peut pas installer librement des programmes sur différentes partitions ou disques durs, du moins pas sans éditer les fichiers de configuration du système (par exemple /etc/ld.so.conf.d pour inclure les différents dossiers de la bibliothèque).

Étant donné que le système de paquets Debian a été mis en œuvre en gardant à l'esprit le FHS, il n'y a, à ma connaissance, aucun moyen facile d'installer les paquets Debian dans un dossier différent de celui dans lequel ils étaient censés être placés et de les faire fonctionner sans les déplacer manuellement. et l'édition des fichiers par la suite. En effet, les chemins sont souvent codés en dur au moment de la compilation. Ainsi, même si vous installez un package dans un dossier différent, par exemple en utilisant dpkg --instdir=folder/ package.debsur la ligne de commande, le programme recherchera toujours sa configuration dans '/ etc', pas dans 'folder / etc', mais dans les fichiers de configuration fournis avec le paquet a bien sûr été installé dans 'dossier / etc' ... Le programme ne sera pas non plus ajouté au menu, car les fichiers de menu sont censés être dans '/ usr / share applications', pas dans le dossier / usr / share / applications.

Vous pouvez bien sûr configurer et compiler manuellement un programme à partir de son code source pour qu'il installe les parties binaires et de données où vous le souhaitez, tout en installant les fichiers de configuration aux emplacements conformes à la FHS, mais c'est quelque chose que je recommanderais uniquement pour utilisateurs avancés. Si vous allez compiler à partir des sources, jetez un œil à checkinstall , un outil qui crée automatiquement des paquets Debian.

Une autre option, qui a été suggérée sur linuxfromscratch , consiste à décompresser le package à un emplacement approprié, puis à créer des liens symboliques vers tous les fichiers installés dans les emplacements FHS correspondants.

Étant donné que dans les commentaires, vous faisiez référence aux jeux: de nombreux jeux qui ne sont pas achetés via Ubuntu Software Center sont fournis sous la forme d'un exécutable d'installation, et ceux-ci peuvent alors bien sûr être installés dans n'importe quel dossier, généralement un sous-dossier de votre répertoire personnel. Les jeux Windows, qui s'exécutent à l'aide de WINE, peuvent également être installés dans le répertoire de votre choix. Pour le vin, il existe une variable d'environnement appelée WINEPREFIX avec laquelle vous pouvez configurer de nombreux dossiers WINE indépendants, chacun comprenant son propre lecteur C: virtuel. Lisez la page de manuel WINE pour plus d'informations.

Même si les jeux / programmes sont fournis sous forme de paquets Debian, vous pouvez consulter le contenu des paquets dans votre gestionnaire d'archives préféré. Si le jeu doit être installé dans / opt, vous pouvez généralement l'installer en toute sécurité dans un dossier différent, car / opt est souvent utilisé comme emplacement d'installation pour les programmes qui n'adhèrent pas à FHS.

soulsource
la source
Correct et digne de votes positifs O
Rinzwind
1
Néanmoins, il n'est pas complet, car je n'ai pas expliqué en détail ce qui serait nécessaire pour qu'un package soit installé à un emplacement arbitraire, quels fichiers il faudrait modifier et quelles variables d'environnement devraient être définies. J'ai juste peur que ça devienne un roman de taille moyenne ...
soulsource
1
Je ne m'embêterais pas. Montez simplement / etc / ailleurs. Il prend 90% de la charge du disque du SSD.
Rinzwind
5

TL; DR

  1. Démarrez le disque USB externe avec la version d'Ubuntu que vous venez d'installer et je suppose que /dev/sdac'est votre SSD et /dev/sdbvotre disque dur.

  2. Créez une partition sur votre disque dur pour contenir toutes les applications que vous souhaitez installer (disons 64 Go) en utilisant gparted et je suppose que ce sera la troisième partition que vous créerez sur votre disque dur ( /dev/sbd3)

  3. exécutez les commandes suivantes:

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  4. sudo nanol' fstabactiver /dev/sda1/etc/pour inclure ce qui suit juste après l' /entrée (le répertoire racine)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  5. redémarrer et tester

La version longue:

Unix / Linux / Ubuntu a été conçu pour être un OS de serveur avec un bureau après coup alors que Windows a été conçu pour être un OS de bureau et le serveur est venu après coup.

Ainsi, la norme de hiérarchie du système de fichiers Linux vous permet d'avoir un nombre illimité de lecteurs / partitions à localiser n'importe où et de les lier au lecteur ou à la partition correcte en toute transparence pour l'utilisateur, tandis que le système d'exploitation Windows est limité à un maximum de 24 lecteurs accessibles / partitions ( C:par Z:le biais de A:et B:sont réservées aux disquettes.)

La plupart des applications dans lesquelles vous installez vous-même sont installées /opt/et /usr/bin, alors installez Ubuntu normalement, puis suivez les étapes ci-dessous où je suppose que /dev/sdac'est votre SSD, /dev/sdbvotre disque dur et /dev/sddvotre clé USB:

  1. Démarrez le disque USB externe avec la version d'Ubuntu que vous venez d'installer.
  2. Créez une partition sur votre disque dur pour contenir toutes les applications que vous souhaitez installer (disons 64 Go) en utilisant gparted et je suppose que ce sera la troisième partition que vous créerez sur votre disque dur ( /dev/sbd3)
  3. Montez cette partition dans un répertoire temporaire:

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    
  4. copier l'existant /optet /usr/biny:

    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  5. sudo nanol' fstabactiver /dev/sda1/etc/pour inclure ce qui suit juste après l' /entrée (le répertoire racine)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  6. redémarrer et tester

  7. Si tout fonctionne correctement, redémarrez à nouveau sur la clé USB et supprimez tout dans le /dev/sda1/optet /dev/sda1/usr/binpour récupérer l'espace disque encore utilisé par des répertoires désormais obsolètes déjà montés ailleurs.

Avertissement: la dernière commande peut également faire planter votre système dans le cas peu probable de /dev/sbd3non-montage en raison d'une panne matérielle

Fabby
la source
Windows a en fait la même prise en charge pour monter des lecteurs sur des chemins non root, depuis environ une décennie maintenant. Et ces lettres de lecteur pourraient également être mappées par utilisateur, donc H: \ pourrait être un répertoire personnel par utilisateur. Pas de grande surprise: la gamme Windows NT s'inspire du VMS, un système multi-utilisateurs. Unix n'a pas non plus été conçu comme un système d'exploitation serveur: AT&T a fait des commutateurs téléphoniques. Et UNIX diffère spécifiquement de son inspiration Multics en étant moins orienté multi-utilisateurs au début - il n'y avait tout simplement pas besoin de cela dans un commutateur téléphonique.
MSalters
@MSalters Wow, je ne connaissais pas le bit de commutation du téléphone AT&T ... Je me souviens de la partie VMS / NT et que M $ a embauché l'ingénieur principal de DEC, et la partie OS / 2 aussi, mais avant cela , c'était un Single- shell de bureau multitâche préventif de l'utilisateur. > :-) Mis à jour!
Fabby
1
Windows prend également en charge les lecteurs non-lettre ( 1:, !:etc.), tout comme certaines versions de DOS (avec d'autres caractères, [:etc.). Windows n'est pas limité à 24 partitions (recherchez des points de montage de volume). Les premières versions de Windows (avant 95) utilisaient le multitâche coopératif, et non préemptif, entre les processus Windows; seules les machines virtuelles DOS étaient multi-tâches préventives (en mode amélioré).
Stephen Kitt
1
J'ai travaillé chez AT&T, dans le groupe UNIX. Il n'a pas commencé sa vie en tant que commutateur téléphonique.
stevegt
@MSalters Unix ne semble avoir rien à voir avec les commutateurs téléphoniques, si ce n'est que la société responsable a développé les deux; et il semble avoir été multi-utilisateur très tôt, au moment où le nom a été inventé. Voir cette réponse sur SE RC.
Peter - Rétablir Monica
2

La solution que j'ai utilisée pour mon Chromebook est de ne pas installer de packages, mais plutôt de télécharger leur homologue .tar.gz.

Ce n'est peut-être pas ce que vous recherchez, mais si vous avez un très petit lecteur et que vous souhaitez séparer votre logiciel essentiel (bureau GNOME, navigateur Web) de votre logiciel supplémentaire (GIMP, IDE, jeux) pour économiser sur un espace local et laissez votre ordinateur fonctionner sans le lecteur externe, c'est la meilleure solution jusqu'à présent IMO.

acerspyro
la source