P.M.F. - 8. Package Usage Problems - General
P.8.1: Me aparecen muchos mensajes con "locale not supported by C library". ¿Es malo esto?
R.: It's not bad, it just means that the program will use the default English messages, date formats, etc. The program will function normally otherwise. The Running X11 document has details.
P.8.2: De repente han aparecido una cantidad de usuarios desconocidos en mi sistema, con nombres como "mysql", "pgsql" y "games". ¿De dónde salieron?
R.: You have used Fink to install a package which is dependent on another package, passwd. passwd installs a number of extra users on your system for security reasons -- on Unix systems, files and processes belong to "owners", which allows system administrators to fine-tune the permissions and security of the system. Programs such as Apache and MySQL need an "owner", and it is insecure to assign these daemons to root (imagine what would happen if Apache were to be compromised and suddenly had write permission to all files on the system). Thus, the passwd package takes the work out of setting up these extra users for Fink packages that require this.
It can be alarming to suddenly discover a number of unexpected users in your "System Preferences: Users" pane, but suppress the urge to delete them:
- First of all, you have obviously chosen to install a package which requires their use, so deleting the user doesn't make much sense, does it?
- There are in fact a number of extra users already installed on
Mac OS X that you may not have known about: www, daemon, nobody, are
just a few of them. The presence of these extra users is a standard
Unix convention for running certain services; the passwd package
simply adds a couple of extra that Apple did not provide. You can
see these Apple-installed users in NetInfo Manager.app, or by
running
niutil -list . /users
- If you do decide to delete these users, be very careful of how
you go about it. Using the "System Preferences: Users" pane will
assign all of their files to a random administrator account, and
there have been reports of havoc played with the administrator
account's permissions. This is a bug with System Preferences, and
has been submitted to Apple. A safer way to remove these users from
your system is to do so from within NetInfo Manager.app or use the
command line tool
niutil
in Terminal. Read the man page forniutil
for more information about NetInfo.
Fink does request permission to install these additional users on your system during the installation of the passwd package, so this should not have come as a surprise.
P.8.3: Cómo puedo compilar algo usando el software instalado por 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: No puedo correr ninguna de las aplicaciones instaladas con Fink desde el menú de Aplicaciones de las X11 de Apple.
R.: Apple X11 doesn't keep track of the Fink environment settings, which means that the Applications menu doesn't have the PATH set correctly to find your Fink applications. The solution is to preface the name of a Fink-installed application with
source /opt/sw/bin/init.sh ;
For example, if you want to run a Fink-installed GIMP, then put
source /opt/sw/bin/init.sh ; gimp
in the Command field of your GIMP entry.
You can also edit your .xinitrc file (in your user directory) and add:
source /opt/sw/bin/init.sh
after the first line.
P.8.5: Estoy confundido con todas las opciones de las X11: X11 de Apple, XFree86, etc. ¿Cuál de ellas debería instalar?
R.: All are variants on XFree86 (they're all based on the XFree86 code), but have some slight differences between them. Apple's X11, which is a modification of XFree86-4.2.1, and XFree86-4.3 are faster than standard XFree86-4.2.1.1, but the latter is more stable. There is also a modification of 4.2.1.1 with threading support added, which is required by a few packages.
Currently, under Panther, Apple's X11 (on the third disk) is the only choice. Don't forget to install the X11 SDK (on the XCode disk) if you want to compile programs.
Under Jaguar, the most popular choices, and the Fink packages to make them work are:
-
4.2.x built via Fink: install
xfree86-base
andxfree86-rootless
orxfree86-base-threaded
andxfree86-rootless-threaded
(and the respective-shlibs
) -
4.3.x built via Fink: install the
xfree86
andxfree86-shlibs
packages -
4.2.x from Apple (User+SDK packages installed): install the
system-xfree86
package
There are other options, as well. There is a more extensive treatment in the Running X11 document.
P.8.6: Cuando intento correr una aplicación, me sale un mensaje diciendo: "cannot open display". ¿Qué debo hacer?
R.: This error means that the system isn't connecting with your X display. Make sure you do the following:
1. Start X (Apple's X11, XFree86, ...).
2. Make sure your DISPLAY environment variable is set correctly. If you are using the default setup for X, you can do this with
setenv DISPLAY :0
if you are running tcsh
, or
export DISPLAY=:0
if you're running bash
.
P.8.7: No encuentro a mi programa favorito en Fink. ¿Cómo sugiero que se incluya un nuevo paquete en Fink?
R.: Make the request on the Package Request Tracker on the Fink project page.
Note that you must have a SourceForge id to do so.
P.8.8: ¿Qué son todos estos system-* "virtual packages" que a veces están presentes, pero que yo mismo no puedo instalarlos ni sacarlos?
R.:
Packages with names like system-perl
are
placeholder packages. These do not contain actual files, but
merely serve as a mechanism for fink to know about programs
that have been installed manually outside of fink.
Starting with the 10.3 distribution, most placeholders aren't even real packages that you can install and remove. Instead, they are "Virtual Packages", package data structures generated by the fink program itself in response to a preconfigured list of manually installed programs. For each virtual package, fink checks for certain files in certain locations, and if they are found, considers that virtual package "installed".
You can run the program fink-virtual-pkgs
(part of the fink package) to get a listing of exactly what
fink thinks is installed. Adding the --debug
flag will give lots of diagnostic information about exactly
what files fink is checking.
Unfortunately, there is no mechanism by which you can install an arbitrary program yourself (outside of fink) and have fink recognize that program rather than trying to install its own version of it. It's just too difficult in the general case to be able to check configure and compiler flags, pathnames, etc.
Here are the most important virtual packages that fink defines (as of fink-0.19.2):
- system-perl: [virtual package representing perl]
Represents
/usr/bin/perl
, which is part of the default OS X installation. This package also providessystem-perlXXX
andperlXXX-core
according to the version X.X.X of that perl interpreter. - system-javaXXX: [virtual package representing Java X.X.X]
Represents the Java Runtime Environment, which is part of OS X (and Apple's Software Update). See Apple's Java page for more information.
- system-javaXXX-dev: [virtual package representing Java X.X.X development headers]
Represents the Java SDK, which must be manually downloaded from connect.apple.com (free registration required) and installed. If you have updated your Java Runtime Environment, your SDK may not be updated automatically (and may even be deleted!). Remember to check for (and download and install if necessary) the SDK after installing or upgrading your Runtime Environment. See also this FAQ entry.
- system-java3d: [virtual package representing Java3D]
- system-javaai: [virtual package representing Java Advanced Imaging]
Represent Java extensions for 3D graphics and image processing, which must be manually downloaded from Apple and installed. See Apple' webpage for more information.
- system-xfree86: [placeholder for user installed x11]
- system-xfree86-shlibs: [placeholder for user installed x11 shared libraries]
Represent Apple's X11/XDarwin, an optional part of OS X (X11User.pkg). These packages provide
x11
andx11-shlibs
, respectively. See also this FAQ entry. - system-xfree86-dev [placeholder for user installed x11 development tools]
Represents Apple's X11/XDarwin SDK, an optional part of OS X (X11SDK.pkg). This package provides
x11-dev
. See also this FAQ entry.