Duas instalações do Ubuntu em um disco rígido

0

Estou tentando instalar duas versões diferentes do Xubuntu (16.10 e 14.04.5 LTS) na mesma máquina, mas o Grub não está mostrando o outro Xubuntu como uma opção no menu. A principal razão para isso é que eu preciso usar PHP 5.9 para o trabalho, mas projetos pessoais eu uso o PHP 7. Eu não tenho certeza se isso importa, mas ambas as instalações estão usando crypt-luks e eu tentei criar uma inicialização separada para cada uma delas, assim como elas compartilhando a mesma partição de inicialização (mesmo resultado). Infelizmente esta máquina (XPS 15) só tem espaço para um SSD PCI. Eu também tenho arranque seguro e UEFI em.

Do que eu posso reunir

Não sou especialista em Ubuntu, mas o uso há alguns anos no típico sistema operacional dual (único Ubuntu). O que eu acho que está acontecendo é que os-prober está detectando apenas o Windows (quando eu executo o update-grub)

#os-prober 
/dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi

Outras soluções Eu também estou interessado em outras idéias. Eu realmente não quero usar a caixa virtual se eu puder ajudar (já estive lá antes). O Docker é outra opção, mas fazer com que as ferramentas CLI QA do editor (NetBeans) que funcionam no contêiner provavelmente não funcionem. A outra coisa que eu poderia fazer é ter um segundo sistema operacional rodando em um USB, mas isso seria um último recurso (eu preferiria nenhum cabo).

    
por Jeremy Sells 14.01.2017 / 12:57

1 resposta

0

Seria muito difícil depurar seu problema de inicialização duplo (triplo?) sem mais informações. Mesmo assim, parece que seria uma grande sobrecarga ter que trocar de sistema operacional apenas para alterar as versões do php.

Então, como você está aberto a outras soluções, posso dar-lhe uma que eu uso bastante hoje em dia. Note que eu não sou um desenvolvedor php, mas isso deve funcionar da mesma forma que outras linguagens.

O Gerenciador de Pacotes Nix

Atualmente, quando preciso ter várias versões de algum idioma / ferramenta instalada, uso nix .

O Nix é um gerenciador de pacotes poderoso, não vou entrar em muita profundidade aqui, apenas saiba que ele permite que você use com facilidade e segurança várias versões de bibliotecas / ferramentas etc ... Você pode instalá-lo executando:

$ curl https://nixos.org/nix/install | sh

Geralmente não é uma boa ideia colocar um script no shell, você pode revisar o script e depois baixá-lo e lançá-lo manualmente indo até link .

Uma vez instalado, existem duas maneiras rápidas de começar.

Listar versões

Primeiro, vamos ver quais versões estão disponíveis:

$ nix-env --query --available --attr-path php
nixpkgs.php56  php-5.6.29
nixpkgs.php    php-7-0.14
nixpkgs.php71  php-7.1.0

Este comando lista todas as php versões atualmente disponíveis (note: isto procura o padrão nixpkgs channel que você obtém após a instalação, eu não vou entrar em detalhes aqui sobre o que é um nixpkgs channel , apenas pense nisso como um conjunto conhecido de pacotes). Há um ponteiro curto para este comando, nix-env -qaP php .

Como você pode ver, existem 3 versões. Agora, como fazemos uso deles?

Instalar em um shell temporário

Geralmente, é como eu alterno entre as versões das ferramentas. O Nix vem com um comando interno chamado nix-shell , que permite instalar um pacote (ou pacotes) e executá-lo dentro de um shell. Para executar o php5.6:

$ nix-shell --packages php56

Isso fará o download do php56 (e suas dependências) e estará disponível dentro do shell que acaba de ser lançado:

[nix-shell:~]$ php --version
PHP 5.6.29 (cli) (built: Dec  8 2016 06:32:02) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

Se você executar exit você será retirado do nix-shell e voltará ao seu shell original, execute php lá e você verá que ele não existe mais (tecnicamente ele ainda existe no repositório nix em seu sistema, mas isso não é algo que você precisa se preocupar apenas para isso), a menos que você já tenha instalado no sistema.

Agora, você pode fazer o mesmo para o php7:

$ nix-shell --packages php

Acho que esta é a maneira mais flexível de saltar entre as versões.

Instale no Nix User Store

Outra maneira é instalar no repositório de usuários usando o comando nix-env .

$ nix-env --install --attr nixpkgs.php56

Agora php 5 deve estar disponível e, no seu caminho, não há necessidade de nix-shell aqui:

$ php --version
PHP 5.6.29 (cli) (built: Dec  8 2016 06:32:02) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

Para instalar o php 7:

$ nix-env --install --attr nixpkgs.php
replacing old ‘php-5.6.29’
installing ‘php-7.0.14’
...

Como você pode ver, ele remove automaticamente a versão anterior. Para remover manualmente, execute nix-env -e php . Finalmente, você pode listar os pacotes instalados no repositório de usuários executando nix-env -qa .

Isso dificilmente toca a superfície do que o nix pode fazer, se isso é de alguma forma útil eu sugiro mergulhar um pouco mais, já que, dependendo de suas necessidades (outras ferramentas, gerenciamento de pacotes php etc ...), provavelmente são maneiras ainda melhores de alcançar o que você deseja.

    
por 15.01.2017 / 00:02