1

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

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

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

3 ответа3

1

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

докер

или же

LXC

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

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

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

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

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

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

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

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

1

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

Я настоятельно рекомендую вам взглянуть на 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 чтобы воссоздать чистую среду сборки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .