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 doniutil
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
exfree86-shlibs
-
X.org compilado via Fink: instale os pacotes
xorg
exorg-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
exfree86-rootless
ouxfree86-base-threaded
exfree86-rootless-threaded
(e-shlibs
respectivos) -
4.3.x compilado via Fink: instale os pacotes
xfree86
exfree86-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:
- system-perl: [pacote virtual representando o perl]
Representa
/usr/bin/perl
, o qual é parte da instalação padrão do OS X. Este pacote também provêsystem-perlXXX
eperlXXX-core
conforme a versão X.X.X do interpretador do perl. - system-javaXXX: [pacote virtual representando o Java X.X.X]
Representa o Java Runtime Environment que é parte do OS X (e da Atualização de Software da Apple). Veja a página da Apple sobre Java para mais informações.
- system-javaXXX-dev: [virtual package representing Java X.X.X development headers]
Representa o Java SDK, o qual deve ser baixado manualmente de connect.apple.com (é necessário registrar-se gratuitamente) e instalado. Caso você tenha atualizado seu Java Runtime Environment, pode ser que seu SDK não seja atualizado automaticamente (e talvez até mesmo removido!). Lembre-se de verificar (e baixar/instalar se necessário) o SDK após instalar ou atualizar seu Runtime Environment. Veja também esta pergunta do FAQ.
- system-java3d: [pacote virtual representando o Java3D]
- system-javaai: [pacote virtual representando o Java Advanced Imaging]
Representa as extensões do Java para gráficos 3D e processamento de imagens, as quais precisam ser baixadas da Apple e instaladas manualmente. Veja a página da Apple para mais informações.
- system-xfree86: [sinalizador para o X11 instalado pelo usuário]
- system-xfree86-shlibs: [sinalizador para as bibliotecas compartilhadas do X11 instaladas pelo usuário]
Representa o X11/Darwin da Apple, uma parte opcional do OS X (X11User.pkg). Estes pacotes proveem
x11
ex11-shlib
respectivamente. Veja também esta pergunta. - system-xfree86-dev [sinalizador para as ferramentas de desenvolvimento do X11 instaladas pelo usuário]
Representa o SDK do X11 da Apple/XDarwin, uma parte opcional do OS X (X11SDK.pkg). Este pacote provê
x11-dev
Veja também esta pergunta.
Próximo: 9. Problemas no uso de pacotes - Pacotes específicos