Fink

Perguntas frequentes - 8. Problemas no uso de pacotes - Geral

P.8.1: Estou recebendo várias mensagens como "locale not supported by C library" ("local não suportado por biblioteca C"). Isso é ruim?

R.: Não é ruim, apenas significa que o programa usará por padrão as mensagens em inglês, formatos de data etc. O programa funcionará normalmente. O documento Executando o X11 tem mais detalhes.

P.8.2: Surgiram de repente vários usuários estranhos no meu sistema com nomes como "mysql", "pgsql" e "games". De onde eles vieram?

R.: Você usou o Fink para instalar um pacote que depende de outro pacote, o passwd. O passwd instala vários usuários extras no seu sistema por razões de segurança -- em sistemas Unix, arquivos e processos pertencem a "proprietários", o que permite que administradores de sistema façam ajustes finos nas permissões e segurança do sistema. Programas como o Apache e o MySQL precisam de um "proprietário" e não é seguro atribuir-lhes o usuário root (imagine o que aconteceria se o Apache fosse comprometido e subitamente tivesse acesso de escrita a todos os arquivos do sistema). Por conseguinte, o pacote passwd faz o trabalho de configurar esses usuários extras para os pacotes do Fink que os necessitam.

Pode ser alarmante descobrir repentinamente vários usuários não esperados no painel "Preferências do Sistema: Contas", mas evite removê-los:

  • Em primeiro lugar, você obviamente escolheu instalar um pacote que requer os usuários, então eliminá-los não faz muito sentido, faz?
  • Na verdade há vários usuários extras já instalados no Mac OS X que você talvez nem conheça: www, daemon, nobody são alguns deles. A presença desses usuários extras é uma convenção padrão do Unix para a execução de certos serviços; o pacote passwd simplesmente adiciona alguns outros usuários extras que não foram fornecidos pela Apple. Você pode ver os usuários instalados pela Apple no aplicativo NetInfo Manager.app ou através do comando niutil -list . /users
  • Caso você decida remover esses usuários, tenha muito cuidado em como proceder. Usar o painel "Preferências do Sistema: Contas" fará com que todos os arquivos desses usuários sejam atribuídos a uma conta de administrador aleatória e tem havido relatos de grandes confusões devidas às permissões das contas de administradores. Há um erro no Preferências do Sistema que já foi relatado à Apple. Uma forma mais segura de remover esses usuários do sistema é fazê-lo através do NetInfo Manager.app ou usar a ferramenta de linha de comando niutil no Terminal. Leia o manual do niutil para mais informações sobre o NetInfo.

O Fink de fato solicita permissão para instalar esses usuários adicionais em seu sistema durante a instalação do pacote passwd, portanto eles não deveriam ser de todo uma surpresa.

P.8.3: Como faço para compilar algo usando softwares instalados pelo Fink?

R.: When compiling something yourself outside of Fink, the compiler and linker need to be told where to find the Fink-installed libraries and headers. It is also necessary to tell the compiler to use the appropriate target architecture. For a package that uses standard configure/make process, you need to set some environment variables:

-bash-

export CFLAGS=-I/opt/sw/include 
export LDFLAGS=-L/opt/sw/lib 
export CXXFLAGS=$CFLAGS 
export CPPFLAGS=$CXXFLAGS 
export ACLOCAL_FLAGS="-I /opt/sw/share/aclocal"
export PKG_CONFIG_PATH="/opt/sw/lib/pkgconfig"
export PATH=/opt/sw/var/lib/fink/path-prefix-clang:$PATH
export MACOSX_DEPLOYMENT_TARGET=10.9

-tcsh-

setenv CFLAGS -I/opt/sw/include 
setenv LDFLAGS -L/opt/sw/lib 
setenv CXXFLAGS $CFLAGS 
setenv CPPFLAGS $CXXFLAGS 
setenv ACLOCAL_FLAGS "-I /opt/sw/share/aclocal"
setenv PKG_CONFIG_PATH "/opt/sw/lib/pkgconfig"
setenv PATH /opt/sw/var/lib/fink/path-prefix-clang:$PATH
setenv MACOSX_DEPLOYMENT_TARGET 10.9

(assuming that the build system is running OS 10.9 or later)

It is often easiest just to add these to your startup files (e.g. .cshrc | .profile) so they are set automatically. If a package does not use these variables, you may need to add the "-I/opt/sw/include" (for headers) and "-L/opt/sw/lib" (for libraries) to the compile lines yourself. Some packages may use similar non-standard variables such as EXTRA_CFLAGS or --with-qt-dir= configure options. "./configure --help" will usually give you a list of the extra configure options.

In addition, you may need to install the development headers (e.g. foo-1.0-1-dev) for the library packages that you are using, if they aren't already installed.

P.8.4: Não consigo rodar nenhuma dos meus aplicativos instalados via Fink quando uso o menu Applications (Aplicativos) do X11 da Apple.

R.: O X11 da Apple não considera as configurações de ambiente do Fink, o que significa que o menu Applications (Aplicativos) não possui o PATH configurado corretamente para achar os aplicativos do Fink. A solução é colocar, no começo do nome de um aplicativo instalado pelo Fink, o texto

source /opt/sw/bin/init.sh ;

Por exemplo, caso queira rodar um GIMP instalado pelo Fink, coloque

source /opt/sw/bin/init.sh ; gimp

no campo Command (Comando) da sua opção GIMP.

Você também pode editar seu arquivo .xinitrc (no seu diretório de usuário) e adicionar:

source /opt/sw/bin/init.sh

após a primeira linha.

P.8.5: Estou perplexo com as opções de X11: X11 da Apple, XFree86 etc. Qual devo instalar?

R.: Todas são variantes do XFree86 (são baseadas no código do XFree86) mas possuem algumas pequenas diferenças entre elas. Há opções diferentes para o Panther e para o Jaguar.

No Panther você pode escolher dentre:

  • X11 da Apple (no terceiro disco). Não se esqueça de instalar o X11 SDK (no disco do Xcode) caso queira compilar programas ou pretenda instalar, via código fonte, outros pacotes do Fink relacionados ao X11.

  • 4.4.x compilado via Fink: instale os pacotes xfree86 e xfree86-shlibs

  • X.org compilado via Fink: instale os pacotes xorg e xorg-shlibs

No Jaguar, as escolhas mais populares e pacotes do Fink associados são:

  • 4.2.x compilado via Fink: install os pacotes xfree86-base e xfree86-rootless ou xfree86-base-threaded e xfree86-rootless-threaded (e -shlibs respectivos)

  • 4.3.x compilado via Fink: instale os pacotes xfree86 e xfree86-shlibs

  • 4.2.x da Apple (suponto que você tenha os pacotes User + SDK instalados):o pacote system-xfree86 é automaticamente gerado pelas versões atuais do Fink; NÃO o instale. (Note que que o beta público do X11 da Apple para o Jaguar não está mais disponível, então esta é a única opção para você que já o tem instalado a partir do momento em que estava disponível.)

Também há outras opções. Um tratamento mais extensivo deste tema está disponível no documento Executando o X11.

P.8.6: Quando tento rodar um aplicativo, recebo uma mensagem que diz "cannot open display:" ("não foi possível abrir o display:"). O que preciso fazer?

R.: Este erro significa que o sistema não está se conectado ao display do X. Faça o seguinte:

1. Inicie o X (X11 da Apple, XFree86, ...).

2. Assegure-se de que sua variável de ambiente DISPLAY esteja definida corretamente. Se você está usando a configuração padrão do X, você pode fazê-lo com

export DISPLAY=:0

caso esteja usando o bash ou

setenv DISPLAY :0

caso esteja usando otcsh.

P.8.7: Não estou vendo meu programa favorito no Fink. Como faço para sugerir que um novo pacote seja incluído no Fink?

R.: Faça a requisição no Package Request Tracker na página do projeto Fink.

Note que você precisa ter uma conta no SourceForge para fazê-lo.

P.8.8: O que são esses "pacotes virtuais" system-* que às vezes estão presentes mas que não consigo eu mesmo instalar ou remover?

R.: Pacotes com nomes como system-perl são pacotes sinalizadores. Eles não contêm arquivos em si mas servem meramente como um mecanismo para que o fink saiba sobre os programas que foram instalados manualmente fora do Fink.

A maior parte desses pacotes sinalizadores não são de fato pacotes que você possa instalar ou remover, mas sim "pacotes virtuais", que são estruturas de dados de pacotes gerados pelo programa fink em resposta a uma lista pré-configurada com os programas instalados manualmente. Para cada pacote virtual, o fink procura por certos arquivos e certos locais e, caso estejam presentes, considera o pacote virtual como "instalado".

Você pode rodar o programa fink-virtual-pkgs (faz parte do pacote fink) para obter uma lista de exatamente quais pacotes o fink crê que estejam instalados. Adicionar a opção --debug mostra várias informações de diagnóstico sobre exatamente quais arquivos o fink está verificando.

Infelizmente, não há um mecanismo pelo qual você mesmo possa instalar um programa arbitrário (fora do fink) e fazer com que o fink reconheça esse programa além de você mesmo instalá-lo. É muito difícil, no caso geral, fazer o fink verificar as opções de configuração e compilação, caminhos de arquivos etc.

Abaixo listamos os pacotes virtuais mais importantes definidos pelo fink:

Próximo: 9. Problemas no uso de pacotes - Pacotes específicos