Смешанная среда Windows и * nix - проблема с локальным суффиксом - PullRequest
0 голосов
/ 15 ноября 2009

Глупый вопрос - заранее извиняюсь.

У меня смешанная среда разработки для Windows и Linux, а сервером является Linux (Ubuntu). Допустим, сервер называется «myserver».

Я работаю как в Windows, так и в * nix (Ubuntu и OS X) со ссылками на myserver как «myserver.local» в * nix и «myserver» в Windows.

У меня есть ссылки на общий код (например, строки подключения MySQL, ссылки на удаленное соединение HTTP и т. Д.), Которые я должен изменить в зависимости от того, в какой папке я работаю, а это чокнутый. Я не могу понять, как заставить Windows использовать псевдоним myserver.local для myserver и сделать мир лучше.

Есть идеи?

Большое спасибо, Ned

Ответы [ 3 ]

1 голос
/ 15 ноября 2009

где-то в / system32 находится файл с именем hosts, в который вы можете вводить имена хостов, которые вам нравятся, эти имена будут учитываться распознавателем. Должен исправить вашу проблему.

0 голосов
/ 15 ноября 2009

Альтернативный ответ:

Однажды у меня были похожие проблемы, и я устал от необходимости постоянно переконфигурировать мое приложение. Мое решение там было похоже на то, что предлагает bonince:

Идея состоит в том, чтобы ваше приложение настраивалось по-разному в зависимости от того, где оно находится. Я бы не рекомендовал «нюхать». Я бы предпочел что-то более «официальное» и «конкретное». Иными словами, на обоих компьютерах должны быть найдены некоторые данные, но с разным содержимым. На ум приходят две возможности:

  • Переменные среды. Они устарели в Java, но отлично работают под Linux и Windows. Если у вас есть доступ к сценариям запуска, вы можете установить все, что захотите, и запросить значения в Java.

  • Свойства / файлы конфигурации вне самого проекта. Я использовал каталоги с именами / local (linux) и C: \ Local (Windows) для хранения фрагментов конфигурации, которые я хотел бы привязать к конкретному хосту. Домашний каталог также отлично работает для такого рода вещей; У каждого хоста есть такой, и Java обычно знает, как / где его найти.

0 голосов
/ 15 ноября 2009

В Windows есть файл hosts, который можно изменить, чтобы myserver.local разрешить до 127.0.0.1, точно так же, как в Linux. Это просто спрятано в Windows\System32\drivers\etc\HOSTS. Но если вы всегда хотите использовать локальный сервер для своих ссылок, почему бы просто не написать localhost?

В целом, вы должны стремиться держать настройки развертывания отдельно от своего приложения, а не делиться ими. Конечно, это зависит от того, на каком языке / платформе вы говорите, но в моем случае с использованием Python я использую скрипт для вызова приложения, например:

hostname= socket.gethostname()

if hostname=='devbox':
   def dbfactory():
       return MySQLdb.connect(db= 'myapp', user= 'foo', passwd= 'bar')
   myapp= mymodule.Application(dbfactory, debug= True)

elif hostname=='www':
   def dbfactory():
       return MySQLdb.connect(db= 'myapplive', unix_socket= '/usr/local/var/mysql/socket', user= 'baz')
   myapp= mymodule.Application(dbfactory, debug= False)

else:
    raise NotImplementedError('No known deployment config for machine %r' % hostname)

myapp.run()
...