Как я могу эффективно разделить свою рабочую среду и среду домашнего пользователя?

1

python-virtualenvРанее я использовал для инструментов Python, но теперь я нашел новую удаленную работу, которая требует много встроенных инструментов в моей системе. Вопрос в том, как я могу отделить свою рабочую среду от среды домашнего пользователя?

Например, мне нужно установить, opencvчто требует значительных изменений среды, но я не хочу постоянно сохранять эти изменения в своей системе, я хочу установить их (и все программное обеспечение, необходимое для моей удаленной работы) в другой среде и использовать его там, когда мне нужно. Первое, что приходит мне в голову - это простое использование chroot. Но, может быть, существуют классные практики, которых я не знаю?

Я не очень часто использовал chroot, поэтому и спрашиваю.

Виктор Полевой
источник

Ответы:

2

Я бы предложил любой из следующих инструментов;

докер

или же

LXC

Я все еще изучаю Docker, как я недавно его обнаружил, но это не займет много времени, чтобы понять, что Docker - это инструмент, созданный для разработчиков. Дайте ему крутиться и наслаждайтесь! И обратите внимание, что Docker трясет, когда дело доходит до настройки вещей с помощью переменных среды.

Я использовал инструменты LXC некоторое время, и они довольно хороши, но для разработки они требуют много работы по настройке. И для chroot требуется еще больше работы, мне кажется, они отвлекают вас от разработки. И они не очень портативны.

Также вы можете посмотреть на Vagrant.

Не могу опубликовать много ссылок здесь, так как я новичок, но Vagrant будет очень популярен, если вы введете его в поиске Google, это будет первый или второй результат, который вы увидите.

«Создание и настройка облегченных, воспроизводимых и переносимых сред разработки».

Также обратите внимание, что Vagrant работает с различными средами виртуальных машин или контейнеров. Думайте об этом как об инструменте для создания вашей виртуальной среды разработки с помощью одной команды "vagrant up". И он не ограничивается Linux, он работает (точно так же!) На Linux, Mac OS и Windows.

Не говоря уже о том, что когда вы используете Docker и / или Vagrant, вы можете проверить свой Dockerfile или Vagrantfile в своей системе контроля версий. Таким образом, они становятся частью вашего проекта и меняются вместе с вашим проектом.

Надеюсь, что эти инструменты помогут.

Мэтью О'НС Джордан
источник
2

Докер может работать на вас, но это не лучший инструмент для работы.

Я настоятельно рекомендую вам взглянуть на Vagrant . Это будет делать именно то, что я вам верю, и с ним гораздо легче иметь дело.

В двух словах, у вас есть рабочий стол, а затем вы устанавливаете virtualbox и vagrant.

Возможный рабочий процесс:

  1. Загрузите готовую коробку, максимально соответствующую вашим потребностям
  2. Запуск бродяги с помощью этого поля
  3. SSH в виртуальную машину (коробку)
  4. Делай свое дело
  5. Остановите машину, когда закончите.

Вот некоторые из преимуществ: вы можете добавить скрипт, который будет автоматически запускаться при запуске vagrant, это может настроить вашу среду так, как вы выберете, и убедиться, что она всегда одинакова, Chef / Puppet / Ansible /? может быть использован также с большим эффектом.

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

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

Если вы используете инструмент, называемый упаковщик , вы можете построить бродячую коробку, а также другие типы, включая OVF, Digital Ocean и AWS. Racker также является отличным дополнением к упаковщику. В какой-то момент вы, возможно, захотите развернуть, и это будет гарантировать, что развертываемый образ будет на 100% соответствовать образу, с которым вы работали, на самом деле Packer - это то, что vagrant и многие другие компании используют для создания блуждающих блоков.

http://blog.endpoint.com/2014/03/provisioning-development-environment.html

http://blog.codeship.io/2013/11/07/building-vagrant-machines-with-packer.html

Мэтти
источник
0

Если вы используете Debian, я бы порекомендовал вам использовать debootstrapдля создания chroot. Кроме того, есть инструмент, schrootкоторый позволяет вам создавать произвольное число chroot, управлять разрешениями и делать с ними всякие вещи. К сожалению, он слишком сложен для меня, поэтому я использую только debootstrapодин, а иногда cowbuilder/, pbuilderчтобы воссоздать чистую среду сборки.

andrewsh
источник