Capítulo 5. Software disponível no sistema Debian

# Capítulo 5. Software disponível no sistema Debian

## 5.1. Que tipos de aplicações e software de desenvolvimento estão disponíveis para Debian GNU/Linux?

Como a maioria das distribuições Linux, Debian GNU/Linux disponibiliza:

- a maioria das aplicações GNU para desenvolvimento de software, manipulação de ficheiros, e processamento de texto, incluindo gcc, g++, make, texinfo, Emacs, a shell Bash e vários utilitários Unix actualizados,

- Perl, Python, Tcl/Tk e vários programas relacionados, módulos e bibliotecas para cada um deles,

- TeX (LaTeX) e Lyx, dvips, Ghostscript,

- o sistema de janelas Xorg, que disponibiliza uma interface em rede gráfica de utilizador para Linux, e inúmeras aplicações X incluindo os ambientes de trabalho GNOME, KDE e Xfce,

- um conjunto completo de aplicações de rede, incluindo servidores para protocolos de Internet como HTTP (WWW), FTP, NNTP (noticias), SMTP e POP (mail) e DNS (servidores de nomes); bases de dados relacionais como PostgreSQL, MySQL; também disponibilizados estão navegadores web incluindo os vários produtos da Mozilla,

- um completo conjunto de aplicações de escritório, incluindo o conjunto de produtividade LibreOffice, o Gnumeric e outras folhas de cálculo, editores WYSIWYG, calendários.

Mais de 63879 pacotes, que vão desde servidores e leitores de notícias a suporte de som, programas e FAX, programas de base de dados e folha de cálculo, programas de processamento de imagem, comunicações, rede, e utilitários de mail. Servidores web,e até programas de rádio amador estão incluídos na distribuição. Outros conjuntos de software 1082 estão disponíveis como pacotes Debian, mas não são formalmente parte de Debian devido a restrições de licença.

## 5.2. Quem escreveu todo esse software?

Para cada pacote os autores dos programas são creditados no ficheiro `/usr/share/doc/PACOTE/copyright`, onde PACOTE deve para ser substituído pelo nome do pacote.

Os Maintainers que empacotam este software para o sistema Debian GNU/Linux estão listados no ficheiro de controle Debian (veja Secção 7.4, “O que é um ficheiro de controle Debian?”) que vem com cada pacote. O registo de alterações Debian, em `/usr/share/doc/PACKAGE/changelog.Debian.gz`, menciona as pessoas que também trabalharam no empacotamento Debian.

## 5.3. Como posso obter a lista actual de programas que foram empacotados para Debian?

Uma lista completa está disponível a partir de qualquer Debian mirrors, no ficheiro `indices/Maintainers`. Esse ficheiro inclui os nomes dos pacotes e os nomes e e-mails dos seus respectivos responsáveis.

Em WWW interface para pacotes Debian há um sumário conveniente dos pacotes em cerca de trinta "secções" do arquivo Debian.

## 5.4. Como posso instalar um ambiente de desenvolvedor para compilar pacotes?

Se você deseja compilar pacotes no seu sistema Debian irá precisar de ter uma ambiente de desenvolvimento básico, incluindo um compilador de C/C++ e alguns outros pacotes essenciais. De modo a instalar este ambiente você só precisa de instalar o pacote `build-essential`. Este é um meta-pacote ou pacote marcador-de-posição que depende das ferramentas de desenvolvimento standard que são precisas para compilar um pacote Debian.

Algum software pode, no entanto, precisar de software adicional para ser re-compilado, incluindo cabeçalhos de bibliotecas ou ferramentas adicionais como autoconf ou gettext. Debian fornece muitas das ferramentas necessárias para compilar outro software como pacotes Debian.

Descobrir qual software é precisamente o requerido é difícil, no entanto, a menos que você esteja a planear em recompilar pacotes Debian. Esta última tarefa é bastante fácil de fazer, pois os pacotes oficiais têm de incluir uma lista do software adicional (para além dos pacotes em `build-essential`) precisos para compilar o pacote, isto é conhecido como `Build-Dependencies`. Para instalar todos os pacotes necessários para compilar um determinado pacote fonte e então compilar o referido pacote fonte basta você correr:

    # apt-get build-dep foo
    # apt-get source --build foo

Note que se você quer compilar os kernels de Linux distribuídos por Debian, você vai querer também instalar o pacote `kernel-package`. Para mais informação veja Secção 10.2, “Que ferramentas Debian fornece para compilar kernels personalizados?”.

## 5.5. O que está a falar em Debian GNU/Linux?

Existe uma lista de pacotes que ainda precisam de ser empacotados para Debian, o Work-Needing and Prospective Packages list.

Para mais detalhes sobre adicionar coisas em falta, veja Capítulo 13, Contribuir para o Projecto Debian.

## 5.6. Porque é que Me aparecem mensagens "ld: cannot find -lfoo" ao compilar programas? Porque não existem nenhuns ficheiros libfoo.so nos pacotes binários de Debian?

A Política Debian requer que tais links simbólicos (para libfoo.so.x.y.z ou semelhante) sejam colocados em pacotes de desenvolvimento separados. Esses são geralmente chamados libfoo-dev ou libfooX-dev (assumindo que o pacote de biblioteca é chamado libfooX, e X é um número inteiro).

## 5.7. (Como) Debian suporta Java?

Várias implementações livres da tecnologia Java está disponível em pacotes Debian, fornecendo ambos Kits de Desenvolvimento Java como também Ambientes Runtime. Você pode escrever, depurar e correr programas Java usando Debian.

Correr um aplicativo Java requer um navegador web com a capacidade de o reconhecer e o executar. Vários navegadores web disponíveis em Debian, como o Mozilla ou o Konqueror, suportam plug-ins Java que permitem correr aplicativos Java neles.

Por favor consulte o Debian Java FAQ para mais informação.

## 5.8. Com é que Eu verifico que estou a usar um sistema Debian, e qual versão é?

De modo a certificar-se que o seu sistema foi instalado a partir de discos Debian base reais, use o comando

    lsb_release -a

. Este irá mostrar o nome da distribuição (no campo Distributor ID) e a versão do sistema (nos campos Release e Codename). O seguinte é um exemplo corrido num sistema Debian:

    $ lsb_release -a
    No LSB modules are available.
    Distributor ID: Debian
    Description:    Debian GNU/Linux 7.4 (wheezy)
    Release:    7.4
    Codename:   wheezy

Você também pode verificar a existência do ficheiro `/etc/debian_version`, que contém uma única linha que fornece o número de versão do lançamento, como definido pelo pacote `base-files`.

No entanto, os utilizadores devem ter em conta que o sistema Debian consiste de muitas partes, cada uma das quais pode ser actualizada (quase sempre) independentemente. Cada "lançamento" de Debian contém conteúdos bem definidos e que não mudam. As actualizações estão disponíveis separadamente. Para uma descrição de uma-linha do estado de instalação do pacote `foo`, use o comando `dpkg --list foo`. Para uma descrição mais detalhada, use:

    dpkg --status foo

Para ver as versões do todos os pacotes instalado, corra:

    dpkg -l

Note que a existência do programa `dpkg` mostra que deverá ser capaz de instalar pacotes Debian no seu sistema. No entanto, como o programa foi portado para muitos outros sistemas operativos e arquitecturas, isto não é mais um método de confiança para determinar se um sistema é Debian GNU/Linux.

## 5.9. Como é que Debian suporta linguagens não-Inglês?

- Debian GNU/Linux é distribuído com mapas de teclados para quase duas dúzias de teclados, e com utilitários (no pacote `kbd`) para instalar, visualizar e modificar as tabelas.

  A instalação pede ao utilizador para especificar o teclado a usar.

- Praticamente todo o software em Debian suporta UTF-8 como conjunto de caracteres. Os conjuntos de caracteres antigos, como ISO-8859-1 ou ISO-8859-2, devem ser considerados obsoletos.

- Actualmente, o suporte para manuais em Alemão, Espanhol, Francês, Húngaro, Italiano, Japonês, Coreano, Holandês, Polaco, Português, Russo, Turco, e Chinês é disponibilizado pelos pacotes `manpages-LANG` (onde LANG é o código de país ISO de duas letras). Para aceder a um manual NLS, o utilizador tem de definir a variável de shell LC_MESSAGES para a string apropriada.

  Por exemplo, no caso dos manuais em linguagem Italiana, LC_MESSAGES precisa de ser definido para 'italian'. o programa man ira então procurar por manuais em Italiano sob `/usr/share/man/it/`.

## 5.10. Eu tenho um dispositivo que requer firmware não-livre. O que devo fazer?

Firmware refere-se a software embebido que controla dispositivos eletrónicos. Muitos dispositivos requerem firmware para operar. Historicamente, o firmware seria compilado para a ROM ou memória Flash do dispositivo, mas cada vez mais, uma imagem de firmware tem de ser carregada na RAM do dispositivo por uma driver de dispositivo durante a inicialização do dispositivo.

Alguns dispositivos requerem firmware não-livre para funcionar corretamente. E pode existir actualizações de firmware no futuro.

No lançamento 11 de Debian (bullseye) e anteriores, Debian não incluía firmware não-livre nas imagens oficiais e instaladores live. A partir de Debian 12, todos os binários de firmware não-livre empacotados que Debian pode distribuir foram movidos para um novo componente no arquivo Debian, chamado `non-free-firmware`. Se você está a actualizar a partir de um lançamento mais antigo de Debian e precisa destes binários de firmware, certifique-se que o seu sources.list usa este novo componente:

    http://deb.debian.org/debian trixie main non-free-firmware contrib non-free

Para mais informação por favor consulte Informação de Firmware na Debian Wiki.

## 5.11. Eu tenho uma placa de rede sem fios que não funciona com Linux. Que devo fazer?

Compre uma que funcione :)

Em alternativa, use o `ndiswrapper` para usar uma driver para Windows (se tiver uma) no seu sistema Linux. Veja Debian Wiki ndiswrapper page para mais informação.

Capítulo 4. Problemas de compatibilidade |  | Capítulo 6. Os arquivos Debian