46 votes

Comment puis-je utiliser le répertoire /home sous Mac OS X ?

J'ai un Mac sur lequel je peux exécuter la version Leopard (10.5) ou Snow Leopard (10.6) d'OS X. Je l'utilise pour faire du développement/testing web avant de publier des fichiers sur mon serveur de production. Je l'utilise pour faire du développement/testing web avant de publier les fichiers sur mon hôte de production.

Sur l'hôte de production, la racine de la documentation de mon site se trouve sous le répertoire personnel (par exemple, /home/stimulatingpixels/public_html) et j'aimerais dupliquer cet emplacement sur le Mac. Malheureusement, il y a un emplacement caché et verrouillé sur le Mac qui ressemble à un lecteur monté sans rien dedans, situé dans l'emplacement /home.

Je sais par expérience qu'il n'est pas judicieux de le déplacer et de le déposer dans votre propre répertoire /home car les mises à jour peuvent l'effacer (et il n'est pas stocké dans la sauvegarde TimeMachine, d'ailleurs).

Donc, la question est la suivante : existe-t-il un moyen d'utiliser /home en toute sécurité sur un Mac Leopard ou Snow Leopard ?

(Note : Je réalise que cette question est très spécifique au Mac et je la poserai également dans un forum Apple. Je voulais juste la demander ici en plus pour couvrir toutes les bases).

Mise à jour : Pour aider à décrire pourquoi je veux faire cela, en plus du site web frontal, j'ai une série de scripts que j'aimerais exécuter également. L'un des principaux objectifs de la possibilité d'utiliser le répertoire /home (et plus précisément le même chemin à partir du Root des serveurs) est de pouvoir utiliser les mêmes chemins de sortie sur le mac de développement ainsi que sur le serveur de production. Je sais qu'il existe des moyens de contourner ce problème, mais je préfère ne pas avoir à m'en occuper. Le véritable objectif est de faire en sorte que tous les fichiers du Mac de développement aient le même chemin d'accès à partir de la racine / de l'arborescence des répertoires que le serveur de production.

Autre mise à jour : L'autre raison que j'ai oublié de mentionner plus tôt est la mise en place de chemins .htaccess lors de l'utilisation de l'authentification de base. Puisque ces chemins proviennent du système de fichiers Root au lieu du docroot du site web, ils finissent par passer par "/home" lorsque celui-ci fait partie de l'arbre.

63voto

Alan W. Smith Points 6704

J'ai trouvé une réponse à cette question sur les forums Apple.

( http://discussions.apple.com/thread.jspa?threadID=2073807&tstart=0 )

Afin de récupérer le répertoire /home, éditez le fichier /etc/auto_master et commentez (ou supprimez) la ligne contenant /home. Vous devrez ensuite redémarrer pour que la modification soit prise en compte. Ceci fonctionne avec Mac OS X 10.5 (Leopard). Votre millage peut varier selon les versions, mais il devrait être similaire.

Comme indiqué dans ce message du forum, vous devez également savoir que Time Machine exclut automatiquement le répertoire /home et n'est pas le soutenir.


Une note d'avertissement, assurez-vous de sauvegarder manuellement votre répertoire /home avant d'effectuer une mise à jour du système. Je crois que l'une des mises à jour que j'ai effectuées (de 10.6 à 10.7 par exemple) a effacé sans avertissement tout ce que j'avais stocké dans /home. Je ne suis pas sûr à 100% que c'est ce qui s'est passé, mais c'est une chose à laquelle il faut faire attention.

12voto

KurtB Points 41

Rassembler tout cela à partir des conseils et des astuces ci-dessus :

  • modifier /etc/auto_master # commentez la ligne avec /home en elle.

  • Remontage :

    sudo automount -vc

  • créer un lien logiciel vers le répertoire mac-ifié :

    sudo ln -s $HOME /home/$USER

À ce moment-là, vos chemins devraient correspondre à ceux de votre production. env vars pointera toujours vers /Users/xxxx mais tout ce qui est codé en dur dans un chemin d'accès dans votre système de gestion de l'information. .bashrc ou dire, en ~/.pip/pip.conf devraient être essentiellement équivalents. Cela a fonctionné pour moi.

re : "Le véritable objectif est que tous les fichiers du Mac de développement aient le même chemin de fichier depuis la racine / de l'arborescence des répertoires que le serveur de production."

En production, mon travail de développement peut se faire dans /opt/projects/projname donc je vais m'assurer que mon compte peut écrire dans /opt/sites et partir de là. Je commencerais par faire quelque chose comme ça :

sudo mkdir /opt/projects sudo chown $USER /opt/projects mkdir /opt/projects/projname cd /opt/projects/projects/projname

J'utilise /opt/ au lieu de $HOME au cas où j'aurais besoin de plus d'espace disque pour mes projets. Ensuite, je peux augmenter le /opt système de fichiers (LVM est votre ami).

0voto

boulder_ruby Points 6257

Je pense que beaucoup de personnes visitent cette question avec une question apparemment différente : comment changer mon répertoire personnel (~) sur Mac ?

Vous n'avez pas besoin d'utiliser le terminal pour le faire. Il suffit d'aller dans Préférences, Utilisateurs et groupes, de faire un geste droit sur votre nom d'utilisateur et d'aller dans Options avancées. Maintenant, changez votre répertoire personnel. J'ai changé le mien en "/" où il doit être. Maintenant, vous devez redémarrer pour que les changements soient pris en compte.

-2voto

Evernoob Points 3646

Pourquoi ne pas simplement exécuter MAMP et utiliser le répertoire Sites ? Vous pouvez développer hors de localhost et avoir juste un tas d'alias pour vos sites. Je ne vois pas pourquoi vous avez spécifiquement besoin d'utiliser le répertoire personnel.


EDIT : Ok, je pense que tu t'y prends de la mauvaise façon pour résoudre ton problème.

Si ce sont les chemins d'accès HTML qui vous inquiètent, commencez tout par une barre oblique "/", qui renverra par défaut au répertoire personnel.

Si ce sont les références dans votre PHP, alors vous devez créer un global (ou similaire) et le définir comme la racine de votre site. Ensuite, vous pouvez tout référencer à partir du global et lorsque vous déplacez le site du stade de développement au stade de production, tout ce que vous devez changer est le global.

Essayer d'une manière détournée de développer à partir de /home parce que cela ressemble plus au serveur de production est une mauvaise idée.

Installez MAMP, créez le global quelque part en haut de la hiérarchie et commencez à faire des références. Ce sera moins pénible à la longue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X