Posso compartilhar /usr/local entre várias distribuições Linux?

Posso compartilhar /usr/local entre várias distribuições Linux?

Experimentei o Ubuntu 12.04 e com base no meu entendimento fiz as seguintes partições:

  • Troca de 2 GB (tenho 2 GB de RAM)
  • 1GB /boot, já que instalarei diferentes versões do kernel (estou iniciando o desenvolvimento do kernel)
  • 35 GB/var
  • 40 GB/usr/local
  • 407 GB/home
  • 15 GB /(raiz)

Agora quero instalar o OpenSUSE 12.2 junto com o Ubuntu 12.04. Posso compartilhar /vare /usr/localentre os dois sistemas operacionais? Eu sei que são duas distros diferentes com pacotes diferentes, mas existe alguma maneira de compartilhar o espaço em disco? Para que ambos os sistemas operacionais possam ter os seus próprios /usr/localna mesma partição ou algo parecido?

Responder1

Você pode compartilhar /usr/local. Às vezes, as duas distribuições terão diferentes versões de bibliotecas disponíveis, então pode ser necessário instalar algumas bibliotecas de um lado ou de outro ou em /usr/localsi. O fardo de instalar uma ou outra biblioteca extra provavelmente será compensado pela não necessidade de manter duas instalações de cada programa no formato /usr/local.

Se houver programas que você deseja ativar apenas /usr/localpara um dos sistemas, você poderá fazer um acordo diferente: não compartilhe /usr/local, mas compartilhe umarrumarrepositório e faça links simbólicos em /usr/localambos os sistemas.

Você não precisa criar /usr/localuma partição separada para compartilhá-la. Você pode armazená-lo na partição de um sistema, montá-lo onde quiser no outro sistema e criar um link simbólico.

Você não pode compartilhar /var. Existem pequenas diferenças na forma como os diretórios são organizados e cada distribuição possui seus próprios IDs de usuário. Você pode compartilhar partes /var, por exemplo, o spool de correio.

35 GB /varé enorme. Você não precisa disso para um sistema básico. Se você for colocar muitos dados lá (por exemplo, porque é onde está a raiz do seu servidor web), dimensione o sistema de arquivos de acordo com seus dados. Não faz sentido separar /vara partição raiz, então combine-as. Você não menciona /usrna sua lista: isso também não precisa ser separado da partição raiz. Basta criar uma partição de sistema para cada sistema operacional, além de um arquivo /home. Você precisa de mais de 15 GB para a partição do sistema, a menos que seja muito conservador nos programas que instalará. Faça uma partição de sistema de 50 GB e você ficará bem.

Não há necessidade de uma /bootpartição separada, a menos que você tenha requisitos adicionais, como criptografar a partição do sistema.

Responder2

Além dos links simbólicos, você também pode usar bind mounts: http://docs.1h.com/Bind_mounts

Basicamente, você pode ter uma partição com um sistema de arquivos (semelhante à configuração do Anthon). Neste caso, supondo que você tenha o sistema de arquivos montado, /mnt/localvocê faria apenas mount --bind /mnt/local/ubuntu /usr/localna instalação do Ubuntu e mount --bind /mnt/local/suse /usr/localna instalação do Suse.

Um benefício de fazer isso é que você pode fazer isso em um diretório existente sem destruir/mover o diretório /usr/localreal ./usr/local

Aqui está um exemplo:

# mkdir foo
# touch foo/nowyouseeme
# mkdir bar
# touch bar/nowyoudont
# ls foo
nowyouseeme
# mount --bind ./bar ./foo
# ls foo
nowyoudont
# umount foo
# ls foo
nowyouseeme

Responder3

/usr/local(ou seja, software compilado/instalado localmente) deve funcionar bem,contanto que as bibliotecas do sistema usadas por tudo o que existe sejam compatíveis. Isso significa que você pode se safar com distribuições "para uso em desktop" totalmente contemporâneas. Se você tentar misturar e combinar, digamos que Fedora e RHEL/CentOS fazemtodoscom base na distribuição com as bibliotecas mais antigas (RHEL/CentOS neste caso), já que as bibliotecas base ( glibcprincipalmente) são razoavelmente compatíveis com versões anteriores. Vocêvaiencontrar problemas com C++ (o tempo de execução do C++ tende a mudar bastante entre as versões), algumas bibliotecas gráficas alteram as interfaces quer queira quer não. Qualquer coisa relacionada ao ambiente de desktop (seja KDE ou Gnome ou qualquer outro) provavelmente está fora de questão.

Responder4

Como configurar múltiplas instalações em uma máquina é algo que depende do seu estilo de trabalhar com essas instalações. Outra coisa a ter em mente é que, a menos que você faça algum trabalho bacana em uma máquina virtual usando partições reais, essas duas instalações não funcionarão ao mesmo tempo.

Na minha experiência, a /homepartição deve ser compartilhável sem muitos problemas. Quaisquer usuários feitos especificamente para aplicativos ( dovecot, fetchmail), mas qualquer um dos sistemas normalmente não possui diretórios reais /homecomo os 'usuários normais'. Eu compartilho nomes de login entre diferentes versões do Ubuntu, mas isso às vezes causa problemas ao voltar para uma instalação mais antiga, porque os arquivos de configuração em seu diretório inicial foram convertidos automaticamente. Para resolver esses problemas, tenho o mesmo login com diferentes diretórios iniciais em /home, mas com o mesmo ID de usuário e ID de grupo para compartilhar os dados. Você sempre pode fazer um link entre subdiretórios específicos (por exemplo, aqueles com sua música) para os quais não há risco de atualizações incompatíveis/irreversíveis.

Não tenho uma partição separada desde que trabalhei em um PDP 11/70 em meados dos anos 80, então não sei por que seu amigo recomendou isso. Além disso, vários programas serão instalados por padrão /usr/localse você instalar a partir do código-fonte e, por exemplo, pipinstalações para módulos python fizerem o mesmo. Para evitar problemas aí eu faria /mnt/localem cada máquina montar a partição designada para /usr/locallá, criar diretórios ubuntue susenessa partição e soft link ( ln -s /usr/local /mnt/local/ubuntu) para cada resp. máquina. Dessa forma, você compartilha o espaço nessa partição sem correr o risco de sobrescrever acidentalmente. Você sempre pode criar links posteriormente entre coisas que deseja compartilhar explicitamente.

Uma coisa adicional que posso recomendar é manter algum tipo de log do que você instalou para cada instalação (eu uso o emacs no modo changelog com um arquivo para cada combinação máquina-distro-revisão), para que você possa refazer a instalação se atualizar e você não precisa se lembrar de quais coisas extras você instalou. Hoje em dia tenho um setupnewsystemscript que faz todas as coisas extras para mim, inclusive colocar /etcsob controle de revisão após a instalaçãomercurial

informação relacionada