Vamos dividir.
Primeiro, poucas notas sobre como apt-get install(e a maioria dos outros apt-getargumentos também) funcionam:
Você pode inserir vários nomes de pacotes:
sudo apt-get install foobar spamegg
Na verdade, os nomes dos pacotes são man 7 regexpadrões ERE (Expressão regular estendida) (verificação ); portanto, um nome de pacote foo.barsignifica qualquer nome de pacote que tenha uma subcadeia que comece com fooe termine barcom qualquer caractere único entre fooe bar. Provável f.*rsignifica qualquer nome de pacote que contenha uma subcadeia que possua fe rcom qualquer número de caracteres, isto é, qualquer coisa no meio. Para fazer a correspondência completa do nome do pacote, use os tokens de início e término, por exemplo ^foo.bar$. Se você deseja que qualquer token Regex seja tratado literalmente, precisa escapar do token com, \por exemplo, para tratar foo.barliteralmente, é necessário:
sudo apt-get install 'foo\.bar'
Aqui, a citação única é para impedir a interpretação do shell como um padrão globbing, não necessário neste caso, mas seria necessário, por exemplo, para o padrão, foo.*barse você tiver um arquivo no diretório atual chamado, por exemplo foo.bar.
Há um problema na consideração do nome do pacote. Se houver algum pacote correspondente ao padrão, o padrão será tratado literalmente e nenhuma interpretação do Regex será feita. Por exemplo, para um padrão de pacote g++, ele corresponderá ao pacote g++literalmente, independentemente do token Regex +. Se não houver um pacote nomeado g++nos repositórios definidos, ele será tratado como um padrão ERE.
Agora, você deu o comando:
sudo apt-get install g++ 5.0
Isso significa:
Você deseja instalar dois pacotes fornecidos por padrões, a saber g++e5.0
g++corresponde ao meta-pacote literal, g++como mencionado acima
A parte restante,, 5.0possui um token Regex, .ou seja , qualquer caractere único. Portanto, isso corresponderá a qualquer nome de pacote que contenha 5<any_character>0. Portanto, todos os pacotes que possuem a correspondência foram selecionados para instalação e, presumivelmente virtualbox-5.0, também foram selecionados no processo.
Presumivelmente, você deseja instalar a g++versão 5, o que faria o seguinte ( já mencionado nesta resposta ); O meta-pacote g++-5,, irá se referir ao último pacote menor disponível da g++versão 5:
sudo apt-get install g++-5
Para procurar pacotes, nos repositórios configurados, use apt-cache(usa o ERE como apt-get):
apt-cache search 'g\+\+-[0-9]+'
Se você não deseja regexá-lo, use lesspara rolar a lista um pouco maior:
apt-cache search g++ | less
Antes de instalar qualquer coisa que você não tenha certeza, não use a opção -y( --assume-yes) e teste-a primeiro com -s( --simulate/ --dry-run):
sudo apt-get install --dry-run foobar
apt-getsolicitará confirmação do usuário, para que você possa inserirne evitar a instalação do VirtualBox ... O repositório do Ubuntu também é verificado, para que não haja nenhum pacote de malware que você possa instalar em primeiro lugar. Se você adicionar PPAs aleatórios, isso pode acontecer, mas é porque você disse ao Ubuntu para instalar aplicativos de uma fonte não confiável.