<chapt id="compat">Questões sobre compatibilidade.

<sect id="arches">Em quais arquiteturas de hardware o &debian; roda?

<p>O &debian; inclui os códigos-fonte completos para todos os programas
inclusos, portanto, eles devem rodar em qualquer sistema que seja suportado
pelo kernel Linux; veja a <url id="http://www.linuxdoc.org/FAQ/Linux-FAQ/"
name="FAQ do Linux"> para detalhes.

<!-- XXX update for new distros -->
<p>A versão atual do &debian; , a &release;, contém uma completa distribuição
binária para as seguintes arquiteturas:

<p><em>i386</em>: essa cobre os PCs baseados em Intel e processadores
compatíveis, incluindo Intel 386, 486, Pentium, Pentium Pro, Pentium II (tanto
Klamath quanto Celeron), e Pentium III, e os processadores compatíveis da
AMD, Cyrix e outros, compatíveis com estes.

<p><em>m68k</em>: essa cobre as máquinas Amiga e Atari que possuem processadores
Motorola 680x0 (para x>=2); com MMU.

<p><em>alpha</em>: sistemas Alpha da Compaq/Digital.

<p><em>sparc</em>: essa cobre os sistemas SPARC da Sun e a maioria dos sistemas
UltraSPARC.

<p><em>powerpc</em>: essa cobre algumas máquinas IBM/Motorola PowerPC, incluindo
máquinas CHRP, PowerMac e PReP.

<p><em>arm</em>: máquinas ARM e StrongARM.

<p>O desenvolvimento de distribuições binárias do Debian para as arquiteturas
Sparc64 (UltraSPARC nativo) e MIPS estão em andamento.

<p>Para informações adicionais na carga (boot), particionamento do drive,
habilitando dispositivos PCMCIA (PC Card) e questões similares, por favor, siga
as instruções contidas no Manual de Instalação, o qual está disponível no
nosso site web em <url id="http://www.br.debian.org/releases/stable/i386/install">.

<sect id="otherdistribs">Quão compatível é o Debian com outras distribuições de Linux?

<p>Desenvolvedores Debian se comunicam com outros criadores de distribuições
Linux para manter compatibilidade binária entre as distribuições.
A maior parte dos produtos comerciais para Linux roda tão bem no Debian
quanto no sistema sobre o qual foram construídos.

<p>O &debian; adere à
<url id="http://www.pathname.com/fhs/" name="Estrutura de Sistema de Arquivos
do Linux (Linux File System Structure)">.
Apesar disso, existe espaço para interpretações em algumas das regras dentro
desse padrão, então podem existir diferenças entre um sistema Debian e outros
sistemas Linux. A mais nova versão desse padrão FSSTND é chamada de FHS e
planejamos mudar para ela em pouco tempo.

<sect id="otherunices">Quão compatível, em nível de código fonte, o Debian é em
relação a outros sistemas Unix?
	
<p>Para a maior parte dos aplicativos, o código fonte do Linux é compatível com
outros sistemas Unix. Ele tem suporte a praticamente tudo o que está disponível
em sistemas Unix System V e derivados livres e comerciais do BSD. No mundo
Unix, porém, essa afirmação praticamente não tem valor, pois não há como
prová-la. Na área de desenvolvimento de software é necessário haver
compatibilidade completa ao invés de compatibilidade na "maioria"
dos casos. Por causa disso, anos atrás surgiu a necessidade de padrões, e hoje
em dia o POSIX.1 (IEEE Standard 1003.1-1990) é um dos principais padrões para
compatibilidade em nível de código fonte entre sistemas operacionais estilo
Unix.

<p>O Linux pretende aderir ao POSIX.1, mas os padrões POSIX custam muito dinheiro
e o certificado POSIX.1 (e FIPS 151-2) é realmente caro; isso dificulta o
trabalho de conformidade completa com o POSIX por parte dos desenvolvedores
do Linux. Os custos da certificação fazem com que seja improvável que a Debian
receba um certificado de conformidade oficial mesmo que ela passe completamente
pelo conjunto de validação. (O conjunto de validação agora está disponível
livremente, portanto espera-se que mais pessoas trabalhem em questões acerca
do POSIX.1.)

<!-- <p><strong>(The authors would very much like to give you a pointer to
an on-line document that described that standard, but the IEEE is another
one of those organizations that gets away with declaring standards and then
requiring that people PAY to find out what they are.  This makes about as
much sense as having to find out the significance of various colored lights
on traffic signals.)</strong> -->

<p>A Unifix GmbH (Braunschweig, Alemanha) desenvolveu um sistema Linux que
recebeu certificação de conformidade ao FIPS 151-2 (um superconjunto do
POSIX.1). Essa tecnologia esteve disponível na distribuição da própria
Unifix, chamada Unifix Linux 2.0, e no Linux-FT da Lasermoon.
<!-- I had to comment this out for obvious reasons... SVD
 <url name="Linux-FT" url="http://www.lasermoon.co.uk/linux-ft/linux-ft.html">.
Currently Unifix merges its patches into the Linux kernel, gcc and other
tools; so it is expected that their fixes towards POSIX.1 conformance will
be available in Debian (and other distributions).
-->

<!-- TODO: explain better how to unpack .debs onto non-Debian systems -->
<sect id="otherpackages">Posso usar pacotes Debian (arquivos ".deb") em meu sistema
Red Hat/Slackware/...? Posso usar pacotes Red Hat (arquivos ".rpm")
em meu sistema &debian;?

<p>Diferentes distribuições Linux usam diferentes formatos de pacotes e
programas de gerenciamento de pacotes.

<taglist>
<tag><strong>Você provavelmente pode:</strong>
  <item>Existe um programa para descompactar um pacote Debian num computador com
  outra distribuição do Linux, e normalmente irá funcionar no sentido de que os
  arquivos vão ser descompactados. A recíproca provavelmente também é verdadeira,
  ou seja, um programa para descompactar um pacote do Red Hat ou Slackware num
  computador baseado no Debian Linux provavelmente conseguirá descompactar o pacote
  e colocar a maior parte dos arquivos nos lugares corretos. Isso é conseqüência
  da existência do (e grande conformidade com o) Padrão de Hierarquia para o
  Sistema de Arquivos do Linux (Linux File System Standard).

<tag><strong>Você provavelmente não quer:</strong>
  <item>a maior parte dos
  gerenciadores de pacotes escrevem arquivos de administração quando são usados
  para descompactar um arquivo. Esses arquivos de administração geralmente não
  são padronizados. Portanto, o efeito de descompactar um pacote Debian em um
  computador "estranho" irá gerar efeitos imprevisíveis (certamente
  improdutivos) no gerenciador de pacotes daquele sistema. Do mesmo modo,
  utilitários de outras distribuições podem conseguir descompactar seus arquivos
  em sistemas Debian, mas provavelmente farão o sistema de gerenciamento de
  pacotes da Debian falhar quando chegar a hora de atualizar ou remover alguns
  pacotes, ou simplesmente listar exatamente quais pacotes estão presentes em
  um sistema.

<tag><strong>Uma maneira melhor:</strong>
  <item>o Padrão de Hierarquia para o
  Sistema de Arquivos do Linux (e portanto &debian;) exige que
  subdiretórios sob <file>/usr/local/</file> fiquem completamente sob a
  responsabilidade do usuário. Portanto, os usuários podem descompactar pacotes
  "estranhos" dentro desse diretório, e gerenciar sua própria configuração,
  atualização e remoção individualmente.
</taglist>

<!-- It would be useful to document all the ways in which Debian and Red Hat
systems differ.  I believe such a document would do a lot to dispell
fears of using a Unix system. SGK -->

<sect id="a.out">O Debian pode rodar meus antiqüíssimos programas "a.out"?

<p>Você ainda tem um programa assim? :-)

<p>Para <em>executar</em> um programa cujo binário esteja em formato
<tt>a.out</tt> (isto é, QMAGIC ou ZMAGIC),

<list>
  <item>Assegure-se que seu kernel tenha suporte a <tt>a.out</tt>, seja diretamente
  (CONFIG_BINFMT_AOUT=y) ou como módulo (CONFIG_BINFMT_AOUT=m).
  (O pacote kernel-image do Debian possui o módulo <tt>binfmt_aout</tt>)

  <p>Se seu kernel suporta binários <tt>a.out</tt> por módulo, garanta que o
  módulo <tt>binfmt_aout</tt> esteja carregado. Você pode fazer isso
  durante a inicialização incluindo a linha <tt>binfmt_aout</tt> no arquivo
  <tt>/etc/modules</tt>.  Você pode fazer isso a partir da linha
  de comando executando o comando <tt>insmod NOMEDIR/binfmt_aout.o</tt> onde
  <tt>NOMEDIR</tt> é o nome do diretório onde os módulos que foram
  construídos para a versão da kernel sendo rodada estão
  armazenados.  Em um sistema com a versão 2.0.36 da kernel,
  <tt>NOMEDIR</tt> provavelmente é <tt>/lib/modules/2.2.17/fs/</tt>.

  <item>Instale o pacote <package>libc4</package>, encontrado em versões anteriores
  a versão 2.0 (porque naquele momento nós removemos o pacote).
  Você pode querer dar uma olhada num CD-ROM antigo do Debian (o Debian 1.3.1 ainda
  tinha esse pacote), ou veja <url id="ftp://archive.debian.org/debian-archive/">
  na internet.

  <item>Se o programa que você quer executar for um cliente X em <tt>a.out</tt>,
  então instale o pacote <package>xcompat</package> (veja acima sobre a disponibilidade).
</list>

<p>Se você possui um aplicativo comercial em <tt>a.out</tt>, este seria um bom
momento para pedir que enviem uma atualização em <tt>ELF</tt>.

<sect id="libc5">O Debian consegue rodar meus antigos programas em libc5?

<p>Sim. Basta instalar as bibliotecas <package>libc5</package> necessárias, da seção
<tt>oldlibs</tt> (contendo pacotes antigos incluídos para compatibilidade com
aplicativos antigos).

<sect id="libc5-compile">O Debian pode ser usado para compilar programas em libc5?

<p>Sim.  Instale os pacotes <package>libc5-altdev</package> e <package>altgcc</package>
(da seção <tt>oldlibs</tt>). Você pode achar os programas <prgn>gcc</prgn> e
<prgn>g++</prgn> compilados em libc5 no diretório <tt>/usr/i486-linuxlibc1/bin</tt>.
Coloque-os em sua variável $PATH para que o <prgn>make</prgn> e outros programas
o executem primeiro.

<p>Se você precisa compilar clientes X em libc5, instale os pacotes
<package>xlib6</package> e <package>xlib6-altdev</package>.

<p>Esteja ciente de que o ambiente libc5 não é mais totalmente suportado por nossos
outros pacotes.

<sect id="non-debian-programs">Como devo instalar um pacote não-Debian?
	
<p>Arquivos sob o diretório <tt>/usr/local/</tt> não estão sob controle do
sistema de gerenciamentos de pacotes Debian. Assim sendo, é boa prática
colocar o código fonte de seu programa em /usr/local/src/. Por exemplo,
você pode extrair os arquivos de um pacote chamado "foo.tar" dentro do
diretório <tt>/usr/local/src/foo</tt>. Depois de compilá-lo, coloque os
binários em <tt>/usr/local/bin/</tt>, as bibliotecas em
<tt>/usr/local/lib</tt>, e os arquivos de configuração em
<tt>/usr/local/etc</tt>.

<p>Se seus programas e/ou arquivos realmente precisam ser colocados em algum
outro diretório, você ainda pode mantê-los em <tt>/usr/local/</tt> e fazer
as ligações simbólicas apropriadas a partir do lugar necessário para sua
localização em <tt>/usr/local/</tt>.  Por exemplo, você pode fazer a ligação
<example>ln -s /usr/local/bin/foo /usr/bin/foo</example>

<p>De qualquer modo, se você obtiver um pacote cujo copyright permita
redistribuição, você deve pensar em fazer um pacote Debian a partir dele,
e enviá-lo para o sistema Debian. Guias sobre como se tornar um desenvolvedor
de pacotes estão incluídos no Debian Policy manual (veja <ref id="debiandocs">).

<sect id="xlib6">Por que aparece "Can't find libX11.so.6" ("Impossível encontrar
libX11.so.6") quando tento rodar <tt>foo</tt>?

<p>Essa mensagem de erro pode significar que o programa está ligado à versão
<tt>libc5</tt> das bibliotecas do X11. Nesse caso você precisa instalar o
pacote <package>xlib6</package>, da seção <tt>oldlibs</tt>.

<p>Você pode obter mensagens de erro semelhantes que se referem ao arquivo
libXpm.so.4, nesse caso, você precisa instalar a versão libc5 da biblioteca XPM,
do pacote <package>xpm4.7</package>, também na seção <tt>oldlibs</tt>.

<sect id="termcap">Por que não consigo compilar programas que exigem a libtermcap?
	
<p>A Debian usa o banco de dados <tt>terminfo</tt> e a biblioteca de rotas de
interfaces de terminal <tt>ncurses</tt>, ao invés do banco de dados
<tt>termcap</tt> e a biblioteca <tt>termcap</tt>. Os usuários que compilam
programas que necessitam de algum conhecimento da interface de terminal
devem substituir referências a <tt>libtermcap</tt> por referências a
<tt>libncurses</tt>.

<p>Para dar suporte a binários que já foram ligados à biblioteca <tt>termcap</tt>
e para os quais você não possui o código fonte, a Debian oferece um pacote
chamado <tt>termcap-compat</tt>. Ele possui os arquivos <tt>libtermcap.so.2</tt>
e <tt>/etc/termcap</tt>. Instale esse pacote caso o programa falhe com a
mensagem de erro "can't load library 'libtermcap.so.2'"
("impossível carregar biblioteca 'libtermcap.so.2'"), ou
caso ele reclame da falta do arquivo <tt>/etc/termcap</tt>.

<sect id="accelx">Por que não consigo instalar o AccelX?
	
<p>O AccelX usa a biblioteca <tt>termcap</tt> para a instalação. Veja
<ref id="termcap"> acima.

<sect id="motifnls">Por que minhas velhas aplicações XFree 2.1 Motif travam?

<p>Você precisa instalar o pacote <package>motifnls</package>, que provê os
arquivos de configuração do XFree-2.1 necessários para permitir aplicativos Motif
compilados sobre o XFree-2.1 rodar sobre o XFree-3.1.

<p>Sem esses arquivos, Alguns aplicativos Motif compilados em outras máquinas (como o
Netscape) podem travar quando tentarem copiar ou colar de um ou para um campo texto,
e podem também exibir outros problemas.