Подтвердить что ты не робот

Лучшая настройка для Linux-разработки из Windows?

Какая самая лучшая настройка для разработки приложений Linux с рабочей станции Windows? Прямо сейчас я подключен через SSH к нашему серверу разработки Linux и использую Eclipse, пересылаемый через SSH через PuTTY, в общедоступную версию Xming, работающую на моей рабочей станции Windows. Это работает, но это не здорово; Время отклика Eclipse далеко не мгновенно (заметно хуже, чем Eclipse работает на моей гораздо более медленной рабочей станции Windows), я не могу изменить размер некоторых диалоговых окон, и я не нашел способ изменить конфигурацию моих шрифтов.

Есть ли лучшая настройка?

Изменить: Это для разработки на C/С++.

4b9b3361

Ответ 1

Параметры для Linux в Windows:

Только инструменты

Учитывая, что вы используете Eclipse, я собираюсь предположить, что вы хотите полную IDE, но если вы можете использовать только инструменты GNU/Linux, есть несколько вариантов.

  • cygwin дает вам оболочку bash с большим количеством инструментов, включая сервер X11. Это уже давно и зрело.
  • msys - меньшая, легкая альтернатива cygwin.
  • Утилиты GNU для Win32 - еще одна облегченная альтернатива. Это родные версии инструментов, в отличие от cygwin, которые требуют, чтобы cygwin DLL искажала свои инструменты, думая, что они работают в Linux.

Linux в процессе Windows

Существует несколько пакетов, которые будут запускать Linux как процесс Windows, без моделирования всего ПК, как это делает виртуализация. Они используют Cooperative Linux, a.k.a. coLinux, который ограничен 32-битными системами. У них нет накладных расходов на виртуализацию, и они запускаются быстрее, так как вы не загружаете виртуальный ПК. Это немного больше на стороне эксперимента и может быть не столь стабильным, как некоторые из вариантов виртуализации.

Виртуализация

Программное обеспечение для виртуализации позволяет загружать другую ОС на виртуальном ПК, в котором используется оборудование с операционной системой хоста. Это довольно испробовано. Здесь есть хорошие возможности для съемки снимков вашего виртуального ПК в определенном состоянии, приостановки/возобновления работы виртуального ПК и т.д. Приятно экспериментировать с виртуальным ПК, добавлять несколько пакетов, а затем возвращаться к предыдущему снимку и "начать чистку".

В моем случае...

Похоже, что ваша среда имеет разные характеристики производительности, но вот моя ситуация: я начал с Eclipse на моем ноутбуке Windows (делая Rails-разработку), нашел это вялым и переключился на использование putty в ssh в быстрый Linux-блок. Я делаю свое редактирование с помощью emacs, запущенного на сервере Linux, отображаемого в Windows с помощью Xming. Или я использую собственные emacs в Windows, редактируя файлы, совместно используемые через NFS. Последнее медленнее в моей среде из-за медленных сбережений.

При работе на дому я удаляю X, потому что он слишком медленный с удаленными клиентами, и просто запустите emacs -nw в окне шпатлевки. Затем я использую GNU screen, так что у меня есть несколько "окон", и поэтому я могу легко возобновить то, где я остановился, если мое сетевое соединение истекает.

Ответ 2

Лучший подход, который я нашел, заключается в следующем:

  • сохранить свой код переносимым
  • разработка на рабочем столе
  • проверить любые зависимости ОС (свести к минимуму их насколько возможно)
  • регулярно развертывайте вашу целевую аудиторию, проверяйте и отлаживайте там

Я знаю, что это не прямой ответ, но использование IDE для разработки через X является болезненным для большинства бесплатных инструментов. Единственный способ, с помощью которого я работал продуктивно, это работать, когда я запускал UNIX-подобный на своем рабочем столе, так что X был родным. Если вы собираетесь использовать этот подход, попробуйте коммерческое решение X на рабочем столе.

Кроме того, рассмотрите возможность отладки IDE и выполнения вашей разработки и отладки через SSH, редактор терминалов (например, vi, pico, ee, emacs), make/ ant и gdb.

Лучший подход для вас будет зависеть от вашего языка программирования и типа приложения, которое вы разрабатываете. Если вы используете приложения с графическим интерфейсом, то использование X может быть единственным приемлемым подходом. Если вы занимаетесь разработкой бэк-офиса/демона, то подход SSH и терминалов, вероятно, будет работать, хотя вы, вероятно, захотите получить действительно удобное решение с vi или emacs.

EDIT: только что заметил, что вы занимаетесь разработкой C/С++. Если вы еще этого не сделали, подумайте об использовании платформы кросс-платформы. Используя что-то вроде Qt, APR, ACE, или Poco должно сделать возможным изначально разрабатываются под Windows с шагом развертывания/отладки в вашей среде Linux.

Ответ 3

Легкой настройкой является запуск Eclipse изначально в Windows, но разворачивание кода через общий ресурс Samba на машине Linux (которую вы можете установить как другой диск) (или SSH/SCP, если SMB не является вариантом) и затем запустите его через консоль SSH.

Еще один простой способ настройки - просто разработать на Linux через freenx или аналогичный инструмент вместо полноценного X сеанса, проверьте этот ответ: https://serverfault.com/questions/11367/remote-desktopping-from-windows-to-linux/11372#11372

Другие варианты (виртуализация, Linux, работающие внутри Windows, Cygwin) действительно действительны, но имеют свои недостатки, например, быть более требовательными к машинам, сложнее настроить или не эквивалентны достаточной для реальной среды Linux, но вполне могут стоить ваше время, если у вас есть машина, и сценарий оправдывает их использование.

Выполнение всего на стороне Linux всегда будет иметь некоторые недостатки если ваш компьютер - Windows.

У меня лично есть ящик Linux, где все остальные имеют Windows и сделать Windows-dev внутри виртуальной машины, но это обошлось мне в большом количестве оперативной памяти и некоторых сетевых настройках.

Ответ 4

Для разработки я обычно использую виртуальную машину Linux в своем ящике Windows. Вероятно, он отправит пользователей Linux в ванную комнату, чтобы мыть руки, но я делаю все свое развитие в Visual Studio, и у меня есть настраиваемый плагин Visual Studio, который вызывает g++ через виртуальную машину и выводит вывод в окно вывода VS, С быстрым изменением поля Combo я могу построить и протестировать Windows или Linux.

Ответ 5

Я нахожу coLinux чрезвычайно полезным при разработке в Windows для Linux, в основном это Linux-система, работающая параллельно вашей ОС Windows (т.е. как услугу) и может быть настроен так, чтобы просто отображаться в вашей локальной сети, в основном, как в виртуальной машине. Кроме того, он намного более полно, чем CygWin, и его производительность действительно замечательна - я могу легко запускать нетривиальные вещи под coLinux и все еще запускать симуляторы со скоростью 90+ кадров в секунду.

Кроме того, coLinux можно легко настроить для запуска X11 и оконных менеджеров, таких как gnome/KDE, чтобы вы могли, например, использовать что-то вроде vnc для доступа к вашему рабочему столу Linux.

Cooperative Linux является первым свободным и открытым исходным кодом для оптимального запуска Linux на Microsoft Windows изначально. В более общем плане Cooperative Linux (short-named coLinux) представляет собой порт ядра Linux, который позволяет ему работать совместно с другой операционной системой на одной машине, Например, он позволяет свободно запускать Linux в Windows 2000/XP без использования коммерческого программного обеспечения для виртуализации ПК таких как VMware, таким образом, который намного более оптимален, чем использование любого программного обеспечения для виртуализации ПК общего назначения.

colinux screenshot http://colinux.org/screenshots/network.png

Ответ 6

Cygwin может быть полезно.

Ответ 7

Есть несколько решений, я бы рекомендовал № 1

  • Вы можете использовать такой инструмент, как Vagrant. Vagrant - это инструмент для создания и управления средами виртуальных машин в одном рабочем процессе. Благодаря простому в использовании документообороту и сосредоточению внимания на автоматизации, Vagrant снижает время разработки среды разработки, увеличивает паритет производительности. Таким образом, вы кодируете на своем ПК с Windows и компилируете/запускаете приложение в системе Linux с помощью Vagrant. Бродяга бесплатно! Аналогичный инструмент: Docker. Для этой установки вы можете использовать любую IDE, я бы порекомендовал VSCode ее очень удобно для C/С++ с intellisense, но Eclipse тоже должен работать.

  • Виртуальная машина (VM), использующая вкус Linux в качестве гостевой операционной системы внутри Windows. Начните с VirtualBox, который является бесплатным.

  • Веб-инструмент, такой как Nitrous.io, который прекращен, но вы можете разместить свою собственную версию Nitrous IDE под названием Nitrous Solo с открытым исходным кодом, которая позволяет вам разместить собственный экземпляр Nitrous IDE в предпочитаемом вами облачном провайдере.

  • В Windows 10 предусмотрено Подсистема Windows для Linux, попробуйте использовать это для компиляции и запуска вашего проекта. Для этого требуется 64-разрядная версия обновления для Windows 10 или позже (сборка 1607 +).

  • Cygwin/MinGW являются популярными инструментами bash для Windows, они могут компилировать и/или запускать ваше приложение.

Ответ 8

Вы можете попробовать другие X-серверы в Windows, такие как xwin32 и hummingbird. Обратите внимание, что это коммерческие реализации.

Другим решением является установка сервера VM на вашем компьютере Windows и установка Linux на виртуальную машину. Опции включают VMware (не бесплатно) и Microsoft Virtual PC (скачать бесплатно). VMware намного приятнее, чем VirtualPC (поддержка 64-разрядных версий, больше стимулов для поддержки клиентских ОС Linux и т.д.). Также может быть

Ответ 9

Я сделал то, что вы хотите сделать по одной и той же причине: полный контроль над выходом (у вас проблемы с шрифтом с вашим текущим решением) и гораздо медленнее Windows-машина, чем в удаленном окне разработки Linux.

Большинство ответов являются фиктивными: наличие "среды разработки Linux" - это не просто "наличие среды IDE". Это о том, что вся сила Un * x у вас под рукой.

Является ли это локальным или удаленным сервером Linux? проблемы с полосой пропускания? Потому что в локальной сети даже старая локальная сеть 100 Мбит/с FreeNX летает. Как загружается на этот Linux-сервер?

Настройте бесплатный FreeNX в системе Linux, установите бесплатный клиент FreeNX на компьютере и бинго Windows, у вас есть среда разработки Linux под рукой.

FreeNX намного эффективнее, чем VNC, это ночной день (VNC на самом деле довольно плох, он хорош, даже сравнивается с Windows Remote Desktop... Но FreeNX летает).

Что касается скорости, давно я создал свою основную рабочую станцию ​​Linux (это был Pentium 4/2GB памяти в те дни), на которой я развивался полный рабочий день с использованием IntelliJ IDEA (другой IDE), чтобы обслуживать полный X сеанс (в комплекте с оконным менеджером и т.д.), который другой разработчик отображал удаленно, чтобы... запустить другой экземпляр IntelliJ (и получить доступ ко всем Un * x niceties). Это было в локальной сети 100 Мбит/с, и было похоже, что приложение было локальным для другого разработчика.

В любом случае, на сегодняшнем оборудовании я не могу представить, как это не могло бы работать: теперь у меня есть Core 2 Duo/4 ГБ оперативной памяти в качестве основного рабочего стола и Gigabit LAN.

Такая установка работала отлично 4 года назад, она отлично работала бы сегодня.

Теперь, если вы скажете мне, что у вас проблемы с полосой пропускания или что у машины Linux, на которой установлена ​​ваша учетная запись, находится под большой нагрузкой или что она не в локальной сети, тогда все может быть по-другому...

Как молодые разработчики, которым нужна мощная система Un * x, делают это в компании, с которой я консультируюсь в настоящее время (у этого есть только настольные компьютеры Windows)? Большинство из них приносят свой блестящий MacBook Pro и используют его для разработки;)

Ответ 10

Я тоже использую xming и испытываю те же проблемы с Eclipse. По-видимому, ни переход на cygwin не делает его достаточно быстрым. В конце концов я переключился на разработку в vim через xming. Мне не нужно столько времени, сколько я боялся привыкнуть ко всем комбинациям клавиш, и производительность абсолютно гладкая. Фактически, теперь иногда я использую vim даже при работе изначально.

Ответ 11

Либо виртуальная машина с основанной на Linux файловой системой, либо локальная копия некоторой интегрированной среды Toolchain-agnostic (например, Notepad ++, с проверкой, выполняемой через MinGW или CygWin, насколько это возможно), или просто пишите в Notepad ++ и сохраняйте загрузка на ваш компьютер и тестирование там, что я и делаю.

Ответ 12

Вы можете взглянуть на настройку svn-сервера в окне linux и затем использовать что-то вроде TeamCity для сборки на commit. Вы можете написать свой код локально и выполнить фиксацию, когда хотите ее скомпилировать.

Ответ 13

Вы можете попробовать использовать любой из дистрибутивов linux для Windows, даже в Windows-магазине есть ubuntu, SUSE и т.д. для Windows, и это может помочь уменьшить ваши усилия по кодированию. Этот linux-дистрибутив содержит оболочку Linux, ядро ​​и т.д., Поэтому вам не понадобится linux-система при отладке или тестировании вашего кода.

Вы также можете использовать Visual Studio Code, который намного лучше и быстрее по сравнению с eclipse и даже поддерживается в Linux и Mac.

Отметьте этот для дистрибутива ubuntu в хранилище Windows.

Linux-дистрибутивы также могут быть загружены из других источников, но Microsoft настоятельно рекомендует использовать один из Windows-Store.

Ответ 14

Я не знаю, есть ли более современный маршрут, но стандартным способом в свое время было запустить X Windows в Microsoft Windows, таким образом, вы можете запускать любое количество приложений на своей машине Ubuntu и управлять ими и отображать их в Microsoft Windows

Отметьте Проверить вне.

Ответ 15

Использовать Linux! Обычно у меня другая проблема: разработка win под linux. Нет причин для этого: я уже почти всегда выигрываю на виртуальной коробке. Linux поставляется с большим количеством инструментов для разработки.

Проблема заключается в следующем:

это графический интерфейс?  - Если нет, у вас не будет проблем, как только ваш код STD/portable.  (X позволяет вам простую вещь, но для приятного приложения сегодня вам нужно немного больше.)  - Если да, тогда у вас будет много проблем, когда вы действительно загрузите код  на рабочей платформе.

Предполагается, что он переносится/заменяется между linux и windows?  - если нет, просто развивайтесь на родной ОС. Путь меньше боли. У вас есть Eclipse для обоих  платформ. Даже если вы подумаете, что для переноса кода на более поздний этап,  просто выполните работу для первой.

Я разработал пару графических приложений под Linux, которые на самом деле прямо сейчас используется только под окнами. Мой рецепт: GTK/GNOME. Я сделал это с cygwin и mingw. Но я полагаю, что Qt имеет такую ​​же удобную среду. Мой код выиграл без изменений! [ok.. пара касаний путей файлов... но была ошибкой..]

Нет никакого способа развиваться под победой и надеяться, что вы будете работать на Linux, если вы не уверены не использовать никакие win libs. То есть: в графическом приложении практически нет шансов. Или много проверка... Или вы не будете использовать какое-либо средство выигрыша. Забудьте Visual Studio.

Проверьте, действительно ли вино и страницы винных бутылок.

Если проблема другая, например: использование средств совместного использования команд или svn или что-то еще. Что не является проблемой разработки кода, но немного больше на стороне организации.

Нижняя линия: Легче переносить бесплатный код на выигрыш, а затем проприетарный код на свободном рынке.

бис F