Capítulo 4. Problemas de compatibilidade

Índice

4.1. Em quais arquitecturas/sistemas de hardware Debian GNU/Linux corre?
4.2. Quais kernels Debian GNU/Linux corre?
4.3. Quanto é compatível Debian com outras distribuições de Linux?
4.4. Quanto compatível é Debian em código fonte com outros sistemas Unix?
4.5. Posso usar pacotes Debian (ficheiros ".deb") no meu sistema Linux Red Hat/Slackware/...? Posso usar pacotes Red Hat (ficheiros ".rpm") no meu sistema Debian GNU/Linux?
4.6. Como devo Eu instalar um programa não-Debian?

4.1. Em quais arquitecturas/sistemas de hardware Debian GNU/Linux corre?

Debian GNU/Linux inclui o código fonte completo para todos os programas incluídos, portanto deverá funcionar em todos os sistemas que são suportados pelo kernel Linux, veja o Linux FAQ para detalhes.

O actual lançamento Debian GNU/Linux, 11, contém uma distribuição binária, completa para as seguintes arquitecturas.

  • amd64: isto cobre sistemas baseados em AMD 64bit CPUs com extensão AMD64 e todos os CPUs Intel coma extensão EM64T, e um espaço de utilizador de 64bit comum.

  • arm64: suporta os dispositivos com motor 64-bit ARM mais recentes.

  • armel: máquinas little-endian ARM.

  • armhf: uma alternativa para armel para máquinas ARMv7 com hard-float.

  • i386: isto cobre sistemas baseados em Intel e processadores compatíveis, incluindo os 386, 486, Pentium, Pentium Pro, Pentium II (ambos Klamath e Celeron), e Pentium III da Intel, e a maioria dos processadores compatíveis da AMD, Cyrix e outros.

  • ia64: Computadores Intel IA-64 ("Itanium").

  • mips: sistemas SGI's big-endian MIPS, Indy e Indigo2; mipsel: máquinas little-endian MIPS, Digital DECstations.

  • powerpc: isto cobre algumas máquinas IBM/Motorola PowerPC, incluindo os modelos Apple Macintosh PowerMac, e as máquinas de arquitectura aberta CHRP e PReP.

  • ppc64el: porte para 64-bit little-endian PowerPC, suporta vários processadores recentes PowerPC/POWER.

  • s390x: porte de 64-bit para máquinas IBM System z, substituiu s390.

O desenvolvimento de distribuições binárias de Debian para hurd-i386 (para kernel GNU Hurd em PCs i386 32-bit), mipsel64 (para MIPS 64 bit em modo little-endian), powerpcspe (porte para hardware "Signal Processing Engine"), sparc64 (para processadores SPARC 64 bit), sh (para processadores Hitachi SuperH), e x32 (para CPUs amd64/x86_64 que usam ponteiros de 32-bit) está presentemente em andamento.

O suporte para a arquitectura m68k foi abandonado no lançamento Etch (Debian 4.0), porque não obedecia aos critérios definidos pelos Gestores de Lançamentos de Debian. Esta arquitectura cobre Amigas e ATARIs que têm um processador Motorola 680x0 para x>=2; com MMU. No entanto, o porte ainda está activo e disponível para instalação mesmo que não faça parte deste lançamento stable oficial e poderá ser reativado em lançamentos futuros.

Suporte para hppa (máquinas Hewlett-Packard's PA-RISC) e alpha (sistemas Compaq/Digital's Alpha) foram abandonados no lançamento Squeeze (Debian 6.0) por razões semelhantes. O arm foi abandonado também neste lançamento, pois foi substituído pela arquitectura armel.

O suporte para o porte de 32-bit s390 (s390) foi descontinuado e substituído pelo s390x em Jessie (Debian 8). Adicionalmente, os portes para IA-64 e Sparc foram removidos deste lançamento devido a insuficiente suporte de desenvolvimento.

Para mais informação sobre os portes disponíveis veja páginas de portes no sítio web.

Para mais informação sobre arrancar sistema, particionar o seu disco, activar dispositivos PCMCIA (PC Card) e dificuldades semelhantes, por favor siga as instruções fornecidas no Manual de Instalação, o qual está disponível a partir do nosso site WWW em https://www.debian.org/releases/stable/installmanual.

4.2. Quais kernels Debian GNU/Linux corre?

Para além de Linux, Debian fornece uma distribuição binária completa para os seguintes kernels de sistema operativo:

  • FreeBSD: disponibilizado através dos portes kfreebsd-amd64 e kfreebsd-i386, para PCs de 64-bit e 32-bit respetivamente. Estes portes foram lançados a primeira vez em Debian 6.0 Squeeze como uma previsão tecnológica. No entanto, não fizeram parte do lançamento de Debian 8 Jessie.

Adicionalmente a estes, há trabalho em progresso nas seguintes adaptações:

  • avr32, porte para a arquitectura RISC de 32 bit da Atmel.

  • hurd-i386, um porte para PC de 32-bit. Este porte irá usar GNU Hurd, o novo sistema operativo que está a ser completado pelo grupo GNU,

  • sh, porte para processadores SuperH da Hitachi

Existiram tentativas de portar a distribuição para o kernel NetBSD, fornecendo netbsd-i386 (para PCs de 32-bit) e netbsd-alpha (para máquinas Alpha) mas estes portes nunca foram lançados e estão actualmente abandonados.

Para mais informação sobre os portes disponíveis veja páginas de portes no sítio web.

4.3. Quanto é compatível Debian com outras distribuições de Linux?

Os desenvolvedores de Debian comunicaram com outros criadores de distribuições Linux num esforço de manterem a compatibilidade de binários por entre distribuições Linux. [1] A maioria dos produtos Linux comerciais tão bem sob Debian como correm no sistema no qual foram compilados.

Debian GNU/Linux adere ao Linux Filesystem Hierarchy Standard. No entanto, existe lugar para interpretação em algumas das regras dentro deste standard, assim podem haver pequenas diferenças entre um sistema Debian e outros sistemas Linux.

4.4. Quanto compatível é Debian em código fonte com outros sistemas Unix?

Para a maioria das aplicações o código fonte de Linux é compatível com outros sistemas Unix. Suporta quase tudo que está disponível em sistemas System V Unix e os sistemas livres e comerciais derivados do BSD. No entanto, no negócio do Unix tal afirmação quase não tem valor porque não há modo de o provar. Na área de desenvolvimento de software é requerida completa compatibilidade em vez de compatibilidade "na maioria" dos casos. Assim anos atrás surgiu a necessidade de standards, e nos dias de hoje POSIX.1 (IEEE Standard 1003.1-1990) é um dos maiores standards para compatibilidade de código fonte em sistemas operativos do tipo Unix.

Linux pretende aderir ao POSIX.1, mas os standards de POSIX custam dinheiro real e a certificação POSIX.1 (e FIPS 151-2) é muito cara; isto torna mais difícil para os desenvolvedores de Linux trabalharem numa conformidade completa de POSIX. Os custos da certificação fazem com seja improvável que Debian obtenha uma certificação de conformidade oficial mesmo que passe completamente a suite de validação. (A suite de validação está agora livremente disponível, assim espera-se que mais pessoas trabalhem nos problemas do POSIX.1.)

Unifix GmbH (Braunschweig, Germany) desenvolveu um sistema Linux que foi certificado para conformidade com FIPS 151-2 (um superconjunto de POSIX.1). Esta tecnologia esteve disponível na distribuição própria da Unifix chamada Unifix Linux 2.0 e em Lasermoon's Linux-FT.

4.5. Posso usar pacotes Debian (ficheiros ".deb") no meu sistema Linux Red Hat/Slackware/...? Posso usar pacotes Red Hat (ficheiros ".rpm") no meu sistema Debian GNU/Linux?

Diferentes distribuições de Linux usam formatos diferentes de pacotes e diferentes programas de gestão de pacotes.

Você provavelmente pode:

Está disponível um programa para desempacotar um pacote Debian numa máquina Linux que foi compilado de uma distribuição 'alienígena', e irá geralmente funcionar, no sentido que os ficheiros serão desempacotados. A conversa é provavelmente também verdade, isto é, um programa para desempacotar um pacote de Red Hat ou Slackware numa máquina baseada em Debian GNU/Linux irá provavelmente ter sucesso ao desempacotar o pacote e colocar a maioria dos ficheiros nos seus directórios de destino. Isto é fortemente uma consequência da existência do (e da ampla adesão a) Linux Filesystem Hierarchy Standard. O pacote Alien é usado para conversão entre diferentes formatos de pacotes.

Você provavelmente não vai querer:

A maioria dos gestores de pacotes escrevem ficheiros administrativos quando são usados para desempacotar um arquivo. Estes ficheiros administrativos não são geralmente standarizados, Assim, o efeito de desempacote um pacote Debian numa máquina 'estrangeira' irá ter efeitos imprevisíveis (e certamente não úteis) na gestão de pacotes desse sistema. Do mesmo modo, utilitários de outras distribuições pode ter sucesso ao desempacotar os seus arquivos em sistemas Debian, mas irão provavelmente fazer com que o sistema de gestão de pacotes Debian falhar quando chegar a hora de actualizar ou remover alguns pacotes, ou até mesmo ao reportar exactamente que pacotes estão presentes num sistema.

Um modo melhor:

O Linux File System Standard (e assim Debian GNU/Linux) requer que os sub-directórios sob /usr/local/ estejam inteiramente sob a descrição dos utilizadores. Assim sendo, os utilizadores podem desempacotar pacotes 'estrangeiros' neste directório, e depois gerir a sua configuração, actualizar e remover individualmente.

4.6. Como devo Eu instalar um programa não-Debian?

Os ficheiros sob o directório /usr/local/ não estão sob o controlo do sistema de gestão de pacotes Debian. Assim, é uma boa prática colocar o código fonte para o seu programa em /usr/local/src/. Por exemplo, você pode extrair os ficheiros para um pacote chamado "foo.tar" para o directório /usr/local/src/foo. Após os compilar, coloque os binários em /usr/local/bin/, as bibliotecas em /usr/local/lib/, e os ficheiros de configuração em /usr/local/etc/.

Se os seus programas e/ou ficheiros precisam mesmo de ser colocados em algum outro directório, você pode mesmo assim armazena-los em /usr/local/, e criar os links simbólicos apropriados desde a localização necessária para a sua localização em /usr/local/, ex, você pode criar o link

ln -s /usr/local/bin/foo /usr/bin/foo

Em qualquer caso, se você obter um pacote cujo copyright permite redistribuição, você deve considerar criar um pacote Debian a partir dele, e envia-lo para o sistema Debian. As guias para se tornar um desenvolvedor de pacotes estão incluídas no manual Debian Policy (veja Secção 12.1, “Que outra documentação existe para o sistema Debian?”).



[1] A Linux Standard Base é uma especificação para permitir que um mesmo pacote binário seja usado em várias distribuições. Após Jessie (Debian 8) ser lançada, Debian abandonou o objectivo da compatibilidade LSB. Veja a Julho 3, 2015 mensagem de Didier Raboud e a discussão seguinte para informação básica.