Как я могу использовать каталог / home в Mac OS X - PullRequest
43 голосов
/ 01 сентября 2009

У меня есть Mac, на котором я могу запустить версию OS X Leopard (10.5) или Snow Leopard (10.6). Я использую его для веб-разработки / тестирования перед публикацией файлов на моем рабочем хосте.

На производственном хосте корень документа моего сайта находится в домашнем каталоге (например, / home / stimulationpixels / public_html), и я хотел бы продублировать это местоположение на Mac. К сожалению, они являются скрытым и запертым заполнителем на Mac, который выглядит как смонтированный диск, в котором ничего нет, и он находится в папке / home.

По своему опыту я знаю, что неразумно перемещать это и помещать в свой собственный каталог / home, потому что обновления могут привести к его удалению (и, кстати, он не сохраняется в резервной копии TimeMachine).

Итак, вопрос, есть ли способ безопасно использовать / home на Mac, либо Leopard, либо Snow Leopard?

(Примечание: я понимаю, что это очень специфично для Mac, и я буду спрашивать об этом и на форуме Apple. Просто хочу спросить здесь дополнительно, чтобы охватить все основы.)

Обновление: чтобы описать, почему я хочу это сделать, в дополнение к интерфейсному веб-сайту у меня есть ряд сценариев, которые я также хотел бы запустить. Одна из основных целей возможности использования каталога / home (а точнее того же пути от корня сервера) состоит в том, чтобы можно было использовать те же пути вывода на Mac разработки, что и на рабочем сервере. Я знаю, что есть способы обойти это, но я бы предпочел не иметь дело с этим. Настоящая цель состоит в том, чтобы все файлы на Mac для разработки имели тот же путь к файлу из / root в дереве каталогов, что и рабочий сервер.

Другое обновление. Другая причина, о которой я забыл упомянуть ранее, - это настройка путей .htaccess при использовании базовой аутентификации. Поскольку эти пути взяты из корня файловой системы, а не из документа веб-сайта, в конечном итоге они проходят через «/ home», когда это часть дерева.

Ответы [ 4 ]

59 голосов
/ 30 сентября 2009

ПРИМЕЧАНИЕ. С 2015 года я больше не использую и не рекомендую этот метод. Вместо этого я использую Vagrant для настройки виртуальных машин для разработки и тестирования. Это бесплатно, относительно легко, и позволяет лучше соответствовать производственной среде. Он полностью разделяет среду разработки, и вы можете делать столько, сколько вам нужно. Настоятельно рекомендуется . Я оставляю исходный ответ ниже для потомков.


Я нашел ответ здесь на форумах Apple .

Чтобы восстановить каталог /home, отредактируйте файл /etc/auto_master и закомментируйте (или удалите) строку с /home в нем. После этого вам нужно будет перезагрузиться, чтобы изменения вступили в силу (или, для каждого комментария nilbus, попробуйте запустить sudo automount -vc). Это работает с Mac OS X 10.5 (Leopard). Ваш доход может варьироваться для разных версий, но он должен быть похожим.

Как отмечалось в этом сообщении на форуме, вы также должны знать, что Time Machine автоматически исключает каталог /home, а не не создает резервную копию .


Одно предупреждение, обязательно сделайте резервную копию каталога /home вручную перед обновлением системы. Я считаю, что одно из обновлений, которые я сделал (например, с 10.6 до 10.7), без предупреждения стерло то, что я сохранил в /home. Я не уверен на 100%, что это случилось, но это то, что нужно искать.

11 голосов
/ 14 января 2015

Я попробовал это на Yosemite (OS X 10.10.1), sudo automount -vc не работал, мне пришлось использовать sudo umount /home.

Поэтому мой рабочий процесс будет:

# comment out line starting with /home sudo vi "+g/^\/home/s/\//#\//" "+x" /etc/auto_master sudo umount /home # link actual home directory (/Users/<user>) to new 'home' (/home/<user>) ln -s $HOME /home/$USER

8 голосов
/ 29 августа 2014

Собираем все вместе из советов и подсказок выше:

  • edit /etc/auto_master # закомментировать строку с /home в ней.

  • перемонтирование:

    sudo automount -vc

  • сделать мягкую ссылку на директорию mac-ified:

    sudo ln -s $HOME /home/$USER

В этот момент ваши пути должны совпадать с вашими производственными путями. env vars по-прежнему будет указывать на /Users/xxxx, но все, что вы жестко кодируете в пути в вашем .bashrc - или, скажем, в ~/.pip/pip.conf - должно быть по существу эквивалентным. Работал на меня.

re: "Настоящая цель состоит в том, чтобы все файлы на Mac для разработки имели тот же путь к файлу из / root в дереве каталогов, что и рабочий сервер."

На производстве моя работа по развертыванию может произойти в /opt/projects/projname, поэтому я просто позабочусь, чтобы моя учетная запись могла записать в /opt/projects и перейти оттуда. Я бы начал делать что-то вроде этого:

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

С LVM я установлю отдельный раздел для /opt/ и запишу туда данные приложения вместо $HOME. Затем я могу увеличить файловую систему /opt в тех случаях, когда мне нужно больше места на диске для проекта (LVM - ваш друг.)

0 голосов
/ 01 сентября 2009

Почему бы вам просто не запустить MAMP и не использовать каталог сайтов? Вы можете разрабатывать на локальном хосте и просто иметь несколько псевдонимов для своих сайтов. Я не уверен, почему вам конкретно нужно использовать домашний каталог.


EDIT: Хорошо, я думаю, что вы решаете свою проблему неправильно.

Если вас беспокоят пути HTML, начните все с косой черты "/", по умолчанию это будет домашняя директория.

Если это ссылки в вашем PHP, то вам нужно создать глобальный (или аналогичный) и установить его в качестве корня вашего сайта. Затем вы можете ссылаться на все, начиная от глобального, и когда вы перемещаете сайт из dev в производство, все, что вам нужно изменить, - это глобальное.

Попытка обойтись в / home, потому что это больше похоже на рабочий сервер, - плохая идея.

Установите MAMP, создайте глобал где-нибудь высоко в иерархии и начните повторную ссылку. Это будет меньше боли в долгосрочной перспективе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...