O que um fileon which getconfte dá? A que /usr/libexec/conf/defaultlink está?
21712 David Schwartz
O que você instalou?
Ramhound
Respostas:
1
Sua CPU é de 64 bits. Seu kernel é de 64 bits. Outra coisa é de 32 bits, mas é difícil dizer o que. Talvez o getconfque vem primeiro no seu caminho seja de 32 bits. Procure /usr/libexec/getconfpor pistas.
Atualização : parece que você tem um espaço de usuário principalmente de 32 bits. Talvez alguém tenha instalado um sistema operacional de 64 bits para obter suporte para mais de 4 GB de memória física. Talvez você tenha alguns executáveis de 64 bits. Mas agora é óbvio que você tem um ambiente misto.
OK. Gostaria de saber como sua plataforma decide qual configuração segmentar então.
David Schwartz
de / usr / lib? Não estou usando BSD ...
Marqin
Uso do Fedora / Redhat /usr/libexec. Eu acho que o Gentoo usa /etc/make.conf.
21712 David Schwartz
1
Tente archse ele imprime x86_64, você tem 64 bits. Você recebe 32 por LONG_BIT porque alguns aplicativos usados são de 32 bits; no seu caso, um gcc é compilado como 32 bits.
Portanto, seu Arch é realmente de 64 bits e você pode executar aplicativos de 64 bits, mas você instalou um gcc de 32 bits.
Arch me dá "x86_64". Como verificar se meu gcc é de 32 bits? Eu descobri apenas que meu PHP é de 32 bits.
Marqin
file $(which gcc)execute isso em um terminal. Se ele imprimir algo parecido com isto: /usr/bin/gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, strippedvocê tem um gcc de 64 bits. Caso contrário, provavelmente é de 32 bits, veja o que está escrito por trás do ELF.
Pierre Geier
"/ usr / bin / gcc: executável LSB de ELF de 32 bits, Intel 80386" Então, de 32 bits.
Marqin 13/04
Lá você conseguiu. Algo na sua gentoobox está realmente configurado incorretamente. E muitos aplicativos são usados apenas gccpara compilar, mesmo que você tenha o x86_86-pc-linux-gnu-gcc. Algumas informações sobre o seu sistema Gentoo seriam úteis. Você está executando um kernel de 64 bits, mas instalou aplicativos de 32 bits. Então, alguém mudou o CHOST ou seu kernel não foi construído no sistema com o atual gcc de 32 bits instalado. Ou foi instalado lá, mas compilado de forma cruzada. @DavidSchwartz Sim, mas é realmente incomum com o Gentoo.
Pierre Geier
O kernel de 64 bits e o espaço do usuário de 32 bits não são necessariamente uma configuração incorreta.
21712 David Schwartz
0
Não me lembro se você precisa de acesso root para poder ler o make.conf no Gentoo, mas tente
grep CHOST /etc/make.conf
Se você pegar
CHOST="x86_64-pc-linux-gnu"
Em seguida, seu sistema está configurado para compilar e instalar pacotes de 64 bits. Caso contrário, se você receber
CHOST="i686-pc-linux-gnu"
Em seguida, seu sistema está configurado para 32 bits.
Se você não conseguir, poderá precisar de privilégios de root. Dado o seu unamepensamento, eu esperaria que seu sistema fosse de 64 bits.
Eu tenho CHOST = "i686-pc-linux-gnu" então por que arch, uname -me uname -r mostram que é de 64 bits?
Marqin 13/04
11
Ok, então você tem uma CPU de 64 bits, kernel de 64 bits e ambiente de desenvolvimento de 32 bits e plataforma de destino. É possível que alguém tenha instalado um kernel de 64 bits em um espaço de usuário de 32 bits, talvez para obter suporte para mais de 4 GB de memória física. Talvez para permitir que executáveis de 64 bits funcionem.
David Schwartz
@ Marqin Eu suspeito fortemente que David esteja lá, seu sistema está configurado para 32 bits, mas alguém instalou um kernel de 64 bits. Presumivelmente, para que toda a memória esteja disponível para o sistema operacional, mas também garanta que não haja problemas de compatibilidade de 64 bits (que são bastante raros de qualquer maneira).
file
onwhich getconf
te dá? A que/usr/libexec/conf/default
link está?Respostas:
Sua CPU é de 64 bits. Seu kernel é de 64 bits. Outra coisa é de 32 bits, mas é difícil dizer o que. Talvez o
getconf
que vem primeiro no seu caminho seja de 32 bits. Procure/usr/libexec/getconf
por pistas.Atualização : parece que você tem um espaço de usuário principalmente de 32 bits. Talvez alguém tenha instalado um sistema operacional de 64 bits para obter suporte para mais de 4 GB de memória física. Talvez você tenha alguns executáveis de 64 bits. Mas agora é óbvio que você tem um ambiente misto.
fonte
/usr/libexec
. Eu acho que o Gentoo usa/etc/make.conf
.Tente
arch
se ele imprime x86_64, você tem 64 bits. Você recebe 32 por LONG_BIT porque alguns aplicativos usados são de 32 bits; no seu caso, um gcc é compilado como 32 bits.Portanto, seu Arch é realmente de 64 bits e você pode executar aplicativos de 64 bits, mas você instalou um gcc de 32 bits.
fonte
file $(which gcc)
execute isso em um terminal. Se ele imprimir algo parecido com isto:/usr/bin/gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
você tem um gcc de 64 bits. Caso contrário, provavelmente é de 32 bits, veja o que está escrito por trás do ELF.gcc
para compilar, mesmo que você tenha o x86_86-pc-linux-gnu-gcc. Algumas informações sobre o seu sistema Gentoo seriam úteis. Você está executando um kernel de 64 bits, mas instalou aplicativos de 32 bits. Então, alguém mudou o CHOST ou seu kernel não foi construído no sistema com o atual gcc de 32 bits instalado. Ou foi instalado lá, mas compilado de forma cruzada. @DavidSchwartz Sim, mas é realmente incomum com o Gentoo.Não me lembro se você precisa de acesso root para poder ler o make.conf no Gentoo, mas tente
Se você pegar
Em seguida, seu sistema está configurado para compilar e instalar pacotes de 64 bits. Caso contrário, se você receber
Em seguida, seu sistema está configurado para 32 bits.
Se você não conseguir, poderá precisar de privilégios de root. Dado o seu
uname
pensamento, eu esperaria que seu sistema fosse de 64 bits.fonte