Como posso separar meu ambiente de desenvolvedor de trabalho e o ambiente de usuário doméstico de forma eficaz?

1

Eu usei python-virtualenv anteriormente para ferramentas python, mas agora encontrei um novo trabalho remoto que precisa de muitas ferramentas nativas para serem instaladas em meu sistema. A questão é como separar meu ambiente de desenvolvimento de trabalho e o ambiente de usuário doméstico?

Por exemplo, eu preciso instalar o opencv , que precisa de muitas mudanças no ambiente, mas não quero manter essas alterações no meu sistema o tempo todo, quero configurá-lo (e todo o software necessário para o meu trabalho remoto) em outro ambiente e usá-lo lá quando eu precisar. A primeira coisa que vem à minha mente é simples usando chroot . Mas talvez existam algumas práticas legais que eu não conheço?

Eu não usei muito chroot por isso estou perguntando.

    
por Victor Polevoy 10.10.2014 / 13:06

3 respostas

1

Eu sugeriria qualquer uma das seguintes ferramentas:

Docker

ou

LXC

Eu ainda estou aprendendo o Docker como descobri recentemente, mas não demora muito para perceber que o Docker é uma ferramenta criada para desenvolvedores. Dê um giro e divirta-se! E observe que o Docker se empolga quando se trata de configurar as coisas através de variáveis de ambiente.

Eu usei ferramentas LXC por enquanto e elas estão bem, mas para desenvolvimento elas requerem muito trabalho de configuração. E chroots requerem ainda mais trabalho, para mim eles tiram o foco de desenvolvimento. E eles não são muito portáteis.

Você também pode querer dar uma olhada no Vagrant.

Não posso postar muitos links aqui já que sou novo, mas o Vagrant é tão popular se você digitar em uma pesquisa no google será o primeiro ou o segundo resultado que você vê.

"Crie e configure ambientes de desenvolvimento leves, reproduzíveis e portáteis."

Observe também que o Vagrant trabalha com vários Virtual Machine ou Container Environments. Pense nisso como uma ferramenta para criar seu ambiente de desenvolvimento virtual com um comando "vagrant up". E não se limita ao Linux, funciona (exatamente o mesmo!) No Linux, Mac OS e Windows.

Sem mencionar quando você faz o docker e / ou o vagrant você pode verificar o Dockerfile ou o Vagrantfile no seu sistema de controle de versão. Então, eles se tornam parte do seu projeto e mudam com o seu projeto.

Espero que essas ferramentas ajudem.

    
por 10.10.2014 / 14:33
1

O Docker pode funcionar para você, mas essa não é a melhor ferramenta para o trabalho.

Eu sugiro strongmente que você olhe para Vagrant . Ele fará exatamente o que você acredita e muito mais fácil de lidar.

Em suma, você tem sua área de trabalho e, em seguida, instala o virtualbox e o vagrant.

Workkflow possível:

  1. Faça o download de uma caixa pré-criada que corresponda o mais próximo possível às suas necessidades
  2. Startup vagrant usando esta caixa
  3. SSH na máquina virtual (caixa)
  4. Faça o seu trabalho
  5. Pare a máquina quando terminar.

Algumas das vantagens disso é que você pode adicionar um script que será executado automaticamente quando você iniciar o vagrant, isso pode configurar seu ambiente como você escolhe e garantir que seja sempre idêntico a cada vez, Chef / Puppet / Ansible /? pode ser usado também com grande efeito.

Se você não deseja manter muitas máquinas virtuais, você pode excluí-las e, quando precisar delas, poderá simplesmente fazer o download da caixa novamente e executar o script.

Outro ponto positivo sobre isso ao desenvolver é que, se algo der errado, você pode simplesmente desligar o sistema e trazê-lo de volta novamente e ele estará limpo e fresco. As pastas compartilhadas também são configuradas automaticamente para que você possa soltar o que quiser no diretório raiz do vagrant no host e ele estará localizado em / vagrant na máquina virtual.

Se você usa uma ferramenta chamada packer , você pode construir a caixa do vagrant e também outros tipos, incluindo OVF, Oceano Digital, e AWS. Racker é um ótimo complemento para empacotador também. Em algum momento você pode querer implantar e isso irá garantir que a imagem que está sendo implantada irá corresponder 100% da imagem que você está trabalhando, de fato Packer é o que vagabundo e muitas outras empresas usam para construir caixas vagantes. p>

link

link

    
por 10.10.2014 / 15:29
0

Se você usa Debian, eu recomendo que você use debootstrap para criar chroots. Além disso, existe uma ferramenta chamada schroot que permite criar um número arbitrário de chroots, gerenciar permissões e fazer todo tipo de coisas com eles. Infelizmente, ele é avançado demais para mim, por isso estou usando apenas debootstrap sozinho e, às vezes, cowbuilder / pbuilder para recriar um ambiente de criação limpo.

    
por 10.10.2014 / 13:29