Capítulo 7 Aplicações de Usuário

7.1. Então, onde estão todas as aplicações de usuários?
7.2. Onde eu encontro a libc.so.3.0?
7.3. Por que eu estou tendo problemas cuja mensagem de erro mostra “Error: can't find libc.so.4.0”?.
7.4. Por que o ghostscript gera um monte de erros no meu 386/486SX?
7.5. Por que aplicações do SCO/iBCS2 bombardeiam o ``socksys''? (FreeBSD 3.0 e anteriores, apenas).
7.6. Como eu configuro um sistema de INN (Internet News) na minha estação?
7.7. Qual versão do Microsoft FrontPage eu devo usar?
7.8. O FreeBSD suporta Java?
7.9. Por que eu não consigo compilar determinado port na minha estação 3.X-STABLE?
7.10. Onde posso encontrar o arquivo ld.so?
7.11. Eu atualizei meus fontes. E agora, como eu atualizo meus Ports instalados?
7.12. Por que o /bin/sh é tão pequeno? Por que o FreeBSD não usa o bash ou outro interpretador de comandos (shell)?
7.13. Por que o Netscape e o Opera demoram tanto para iniciar?

7.1. Então, onde estão todas as aplicações de usuários?

Por gentileza, dê uma olhada na página do Ports para informações sobre pacotes de programas disponíveis na Coleção de Ports do FreeBSD. A lista atualmente ultrapassa 24,000 aplicações e está crescendo diariamente, então retorne à página e verifique freqüentemente as aplicações, ou entã inscreva-se na lista de discussão freebsd-announce mailing list para atualizações periódicas ou novas adições.

A maioria dos ports devem estar disponíveis para as versões 2.2, 3.x e 4.x, e muitos deles devem funcionar também em sistemas 2.1.x. Cada vez que um lançamento do FreeBSD é produzido, um snapshot da árvore do ports do momento da lançamento também é incluída no diretório ports/.

O FreeBSD também suporta o conceito de “pacote”, que essencialmente nada mais é do que uma distribuição binária compactada com o gzip e com um pouco de inteligência extra embutido nesse pacote, para fazer o trabalho que é requerido para uma instalação customizada. Um pacote pode ser instalado e desinstalado repetidas vezes de forma fácil, sem ter que se conhecer os detalhes horrendos dos arquivos que ele inclui.

Use o menu de instalação de pacotes em /stand/sysinstall (sobre a opção do pos-configuration menu) ou invoque o comando pkg_add(1) nos arquivos de pacotes específicos que voc;ê quer instalar. Os pacotes podem ser identificados normalmente pelo sufixo .tgz e o pessoal da distribuição em CDROM tem um diretório /packages/All no cd que conté esses arquivos. Eles podem também ser baixados pela rede para várias versões do FreeBSD nos seguintes endereços: do (sobre a opção PostConfiguration do menu) ou invoque o comando pkg_add(1)

ou em um sítio espelho mais perto de você.

Note que nem todos os Ports podem estar disponíveis em formato de pacotes, visto que a atualização da Coleção de Ports do FreeBSD é muito freqüente, e novos programas são constantemente adicionados, e outros são atualizados. É sempre bom verificar periodicamente quais pacotes estão disponíveis no servidor FTP mestre do projeto FreeBSD, o ftp.FreeBSD.org.

7.2. Onde eu encontro a libc.so.3.0?

Você está tentando usar um pacote construído para o FreeBSD 2.2 ou para versões posteriores, em um sistema 2.1.X. Por gentileza, dê uma olhada na seção anterior e pegue o port/pacote correto para o seu sistema.

7.3. Por que eu estou tendo problemas cuja mensagem de erro mostra “Error: can't find libc.so.4.0”?.

Acidentalmente você pegou um pacote construído para FreeBSD 4.X ou para o 5.X e está tentando instala-lo no seu FreeBSD 2.X ou 3.X. Por favor, pegue a versão correta dos pacotes.

7.4. Por que o ghostscript gera um monte de erros no meu 386/486SX?

Deixe-me adivinhar. Você não tem um co-processador matemático, certo? Será necessário adicionar um co-processador matemático alternativo ao seu kernel; você pode fazer isso adicionando a seguinte linha no arquivo de configuração do seu kernel, e depois recompilá-lo:

options GPL_MATH_EMULATE

Nota: Quando você fizer isto, será necessário remover a opção MATH_EMULATE

7.5. Por que aplicações do SCO/iBCS2 bombardeiam o ``socksys''? (FreeBSD 3.0 e anteriores, apenas).

Primeiro, é necessário editar o arquivo /etc/sysconfig (ou /etc/rc.conf, veja o rc.conf(5)) e modificar a última seção, alterando para YES a seguinte variável:

# Set to YES if you want ibcs2 (SCO) emulation loaded at startup
ibcs2=NO

Essa alteração fará o sistema carregar os módulos de kernel do ibcs2 na inicialização.

Depois, será necessário alterar o /compat/ibcs2/dev para parecer com:

lrwxr-xr-x  1 root  wheel         9 Oct 15 22:20 X0R@ -> /dev/null
lrwxr-xr-x  1 root  wheel         7 Oct 15 22:20 nfsd@ -> socksys
-rw-rw-r--  1 root  wheel         0 Oct 28 12:02 null
lrwxr-xr-x  1 root  wheel         9 Oct 15 22:20 socksys@ -> /dev/null
crw-rw-rw-  1 root  wheel   41,   1 Oct 15 22:14 spx

É necessário que o socksys aponte para /dev/null (veja null(4)) para fingir o processo de abertura e fechamento do device. O código mais recente (-CURRENT) se encarregará dos outros detalhes. Essa maneira de trabalhar o socksys é bem mais limpa do que a forma que era usada anteriormente. Se você quer que o driver spx fique disponível para um socket X local, defina a opção SPX_HACK no kernel do FreeBSD quando você o recompilar.

7.6. Como eu configuro um sistema de INN (Internet News) na minha estação?

Depois de instalar o pacote news/inn ou o port, um excelente lugar para iniciar é Dave Barr's INN Page onde voçe encontrará o FAQ do INN.

7.7. Qual versão do Microsoft FrontPage eu devo usar?

Use os Ports, Luke! Uma versão previamente corrigida do Apache,apache13-fp, está disponível na árvore do Ports.

7.8. O FreeBSD suporta Java?

7.9. Por que eu não consigo compilar determinado port na minha estação 3.X-STABLE?

Caso esteja usando uma versão do FreeBSD significativamente mais velha do que o -CURRENT ou o -STABLE, será necessário usar o kit de atualização dos Ports, disponível em http://www.FreeBSD.org/ports/. Caso esteja atualizado mas ainda assim você tem dificuldades, é provável que alguém disponibilizou uma versão do programa que funciona perfeitamente no -CURRENT mas que não compila corretamente no -STABLE. Por gentileza, envie um Relatório de Problemas com o comando send-pr(1) porque a coleção de Ports deve funcionar tanto no -STABLE quanto no -CURRENT.

7.10. Onde posso encontrar o arquivo ld.so?

Algumas aplicações cujo formato binário é o a.out, como o Netscape Navigator, necessitam das bibliotecas a.out. Uma versão do FreeBSD nativamente construído com bibliotecas ELF não instala as bibliotecas a.out por padrão. Você terá problemas por não ter o /usr/libexec/ld.so, se esse for o caso do seu sistema. Estas bibliotecas estão disponíveis embutidas na distribuição compat22. Utilize o sysinstall(8) para instalá-los. Pode-se instalá-lo apartir do código fonte do FreeBSD:

# cd /usr/src/lib/compat/compat22
# make install clean

Se quiser instalar as bibliotecas mais recentes do compat22 sempre que executar o make world, edite /etc/make.conf para incluir COMPAT22=YES. Bibliotecas de compatibilidade antigas raramente sofrem mudanças , as vezes nunca, então geralmente não é necessário.

Também veja as páginas de ERRATAS para o 3.1-RELEASE e 3.2-RELEASE.

7.11. Eu atualizei meus fontes. E agora, como eu atualizo meus Ports instalados?

FreeBSD não inclui uma ferramenta de atualização do ports, mas existem algumas ferramentas que tornam o processo de atualização dos Ports uma tarefa, digamos, fácil. É possível ainda instalar algumas ferramentas adicionais que facilitam o gerenciamento dos Ports instalados

O comando pkg_version(1) pode gerar um script que atualizará os ports instalados para as últimas versões da árvore de Ports.

# pkg_version -c > /tmp/myscript

O script de saída deve ser editado manualmente antes de ser usado. As versões mais recentes do pkg_version(1) forçam a edição do arquivo, colocando um exit(1) no começo do script.

A saída do script deve ser salva pois ela gera informações sobre os pacotes que são dependências dos que estão sendo atualizados. Tais dependências podem precisar ser atualizadas ou não, dependendo de cada uma delas. Os casos comuns onde as dependências precisam ser atualizadas é quando a versão das bibliotecas compartilhadas foram alteradas, portanto o port que usava aquela biblioteca precisa ser atualizado para que a nova versão seja usada.

Caso tenha espaço o bastante em disco , pode ser interessante usar a ferramenta portupgrade para automatizar o processo de atualização das aplicações instalados por meio de ports ou pacotes. Posto que ele foi programado em Ruby, o portupgrade é um candidato improvável à se tornar parte da árvore principal do FreeBSD. Mas isso não evita que qualquer pessoa use o programa. Alias, ele é uma ótima ferramenta. Ele está disponível em sysutils/portupgrade.

Se a estação fica constantemente conectada, é interessante usar o sistema periodic(8) para gerar um relatório semanal sobre as versões do Ports que podem ser atualizadas. Pra configurar o sistema para isso, insira a linha weekly_status_pkg_enable="YES" no /etc/periodic.conf.

7.12. Por que o /bin/sh é tão pequeno? Por que o FreeBSD não usa o bash ou outro interpretador de comandos (shell)?

Porque o POSIX diz que é assim que deve ser um interpretador de comandos (shell)?

A reposta mais complicada: muitas pessoas precisam escrever scripts shell que sejam portáveis através de muitos sistemas. É por isso que o POSIX especifica o interpretador de comandos (shell) e comandos utilitários com tanto detalhe. A maioria dos scripts são escritos para o interpretador de comandos Bourne (Bourne shell), e várias interfaces importantes de programação (make(1), system(3), popen(3) e análogos em linguagens de alto-nível como Perl e Tcl) o usam como interpretador de comandos (shell) padrão. Por ser tão amplamente utilizado é importante que o interpretador de comandos (shell) Bourne seja rápido para carregar, seja determinístico em seu comportamento, e que tenha uma pequena alocação de memória.

A implementação atual é o nosso melhor esforço para encontrar a maior parte destes requerimentos simultaneamente. Como forma de manter o /bin/sh do menor tamanho possível, não incluímos muitas das características convenientes que outros interpretadores de comando (shell) possuem. É por isso que a Coleção de Ports disponibiliza outros interpretadores de comandos (shell) com características mais abrangentes, como o bash, o csh, o tcsh, e o zsh. (Você pode comparar a utilização de memória entre todos esses interpretadores de comandos (shell), analisando as colunas “VSZ” e “RSS” na saída do comando ps -u.)

7.13. Por que o Netscape e o Opera demoram tanto para iniciar?

A resposta tradicional é que o DNS no seu computador está mal configurado. O Netscape e o Opera fazem verificação de DNS ao iniciar, e por isso não se tornarão disponíveis até que obtenham uma resposta do servidor DNS ou até que eles determinem que a estação não está conectada na rede.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <[email protected]>.
Para perguntas sobre esta documentação, envie e-mail para <[email protected]>.