Ч.З.В. - 8. Проблемы использования пакетов - Общие вопросы
В8.1: Я получаю много сообщений типа "locale not supported by C library". Это плохо?
В8.2: В моей системе вдруг появилось несколько странных пользователей с такими именами, как "mysql", "pgsql" и "games". Откуда они взялись?
О: Вы использовали Fink для инсталляции пакета, который зависит от другого пакета - passwd. passwd инсталлирует ряд дополнительных пользователей в вашей системе из соображений безопасности -- в системах Unix файлы и процессы принадлежат "владельцам", которые позволяют системным администраторам производить точную настройку системы разрешений и безопасности. Такие программы, как Apache и MySQL, нуждаются во "владельце", и было бы небезопасно позволять этим демонам укрепиться (представьте, что может произойти, если Apache будет поставлена под угрозу и вдруг выдаст разрешение всем файлам системы). Таким образом, пакет passwd производит работу по настройкам дополнительных пользователей для тех пакетов Fink, которые этого требуют.
Может вызвать беспокойство внезапное обнаружение нескольких неожиданных пользователей в вашей области "System Preferences: Users" (в 10.2.x) или "System Preferences: Accounts" (в 10.3.x), но лучше подавить желание удалить их:
- Прежде всего очевидно, что вы выбрали для инсталляции пакет, требующий их использования, значит удалять их нет смысла, не так ли?
- Вообще есть ряд дополнительных пользователей, уже
инсталлированных в Mac OS X, о которых вы могли не знать:
www, daemon, nobody только некоторые из них.
Присутствие этих пользователей являются стандартным условием Unix
для выполнения определенных услуг; пакет passwd
просто добавляет еще пару дополнительных пользователей, которых Apple
не предоставил. Вы можете увидеть пользователей, инсталлированных Apple,
в NetInfo Manager.app или применив команду
niutil -list . /users
- Если вы решили их удалить, будьте крайне осторожны
при выполнении. Использование области "System Preferences:
Users" (в 10.2.x) или "System Preferences:
Accounts" (в 10.3.x) передаст все их файлы
на произвольный счет администратора и у нас есть
сообщения о проблемах, имевших место с разрешения
счета администратора. Это ошибка в связи с System
Preferences, о которой мы сообщили Apple. Более безопасным путем
удаления этих пользователей является их удаление
внутри NetInfo Manager.app или использование инструмента строки
команд
niutil
в Terminal. См. главную страницу относительноniutil
для получения более подробных сведений о NetInfo.
Fink запрашивает разрешение на инсталляцию дополнительных пользователей в вашей системе в процессе инсталляции пакета passwd, и таким образом это не должно быть сюрпризом.
В8.3: Как можно компилировать что-нибудь самостоятельно с применением ПО, инсталлированного с помощью Fink?
О: 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.
В8.4: Не могу запустить ни одно из приложений, инсталлированных при помощи Fink, через меню Applications в Apple X11.
О: Apple X11 не отслеживает настройки среды Fink, а это означает, что меню Applications не имеет правильную настройку PATH для нахождения приложений Fink. Для решения проблемы надо поместить перед именем приложения, инсталлированного при помощи Fink, следующее:
source /opt/sw/bin/init.sh ;
Н-р, если вы хотите запустить GIMP, инсталлированный при помощи Fink, вставьте
source /opt/sw/bin/init.sh ; gimp
в облать Command вашей записи GIMP.
Можно также отредактировать ваш файл .xinitrc (в вашем каталоге пользователя) и добавить:
source /opt/sw/bin/init.sh
после первой строки.
В8.5: Я озадачен опциями X11: Apple X11, XFree86 и т.д. Что надо инсталлировать?
О: Это варианты в XFree86 (основанные на коде XFree8), которые немного различаются между собой. Есть разные опции в Panther и Jaguar.
В Panther можно сделать выбор между следующими опциями:
-
X11 для Apple (на третьем диске). Не забудьте инсталлировать X11 SDK (на диске XCode), если хотите компилировать программы или планируете инсталлировать другие пакеты Fink, относящиеся к X11, на основе исходного кода.
-
4.4.x, построенный через Fink: инсталлируйте пакеты
xfree86
иxfree86-shlibs
-
X.org, построенный через Fink: инсталлируйте пакеты
xorg
иxorg-shlibs
Самые популярные решения в Jaguar и пакеты Fink для их работы:
-
4.2.x, построенный через Fink: инсталлируйте
xfree86-base
иxfree86-rootless
илиxfree86-base-threaded
иxfree86-rootless-threaded
(и соответствующий-shlibs
) -
4.3.x, построенный через Fink: инсталлируйте пакеты
xfree86
иxfree86-shlibs
-
4.2.x из Apple (с допущением, что у вас инсталлированы пакеты User + SDK): пакет
system-xfree86
автоматически создается для текущих версий Fink; НЕ инсталлируйте его. (Надо иметь в виду, что общедоступной бета-версии X11 от Applе для Jaguar больше нет, значит для вас это единственная опция, если у вас она была установлена тогда, когда поставлялась.)
Есть также другие варианты. Более подробно см. в документе Выполнение X11.
В8.6: При попытке запуска приложения получил сообщение "cannot open display:". Что надо сделать?
О: Эта значит, что система не соединяет вас с вашим дисплеем X. Надо убедиться, что вы сделали следующее:
1. Запустить X (Apple X11, XFree86, ...).
2. Убедиться, что настройка переменной величины среды вашего ДИСПЛЕЯ правильная. Если вы используете настройку по умолчанию для X, можно сделать
setenv DISPLAY :0
если вы выполняете tcsh
, либо
export DISPLAY=:0
если вы выполняете bash
.
В8.7: Я не нахожу свою любимую программу в Fink. Как можно предложить новый пакет для внесения в Fink?
О: Поместите запрос в Package Request Tracker на странице проекта Fink.
Имейте в виду, что для этого вам надо иметь SourceForge id.
В8.8: Что это за "виртуальные пакеты" system-*
,
которые иногда представлены, но я вроде как не могу инсталлировать или
удалить их самостоятельно?
О: Пакеты с такими именами, как system-perl
, являются
пакетами-заполнителями. Они не содержат настоящих файлов, а
просто являются для fink механизмом для сообщения сведений о программах,
инсталлированных вручную вне fink.
Начиная с дистрибуции 10.3 большинство заполнителей даже не являются реальными пакетами, которые можно инсталлировать или удалить. Вместо этого они являются "Virtual Packages", пакетными структурами данных, создаваемыми самой программой fink в ответ на предварительно конфигурированный список программ, инсталлированных вручную. По каждому виртуальному пакету fink проверяет определенные файлы в определенных местах и если находит их, считает виртуальный пакет "инсталлированным".
Можно запустить программу fink-virtual-pkgs
(часть
пакета fink) для получения точного списка того, что fink
считает инсталлированным. Добавление флажка --debug
даст много диагностической информации о том, какие именно
файлы fink проверяет.
К сожалению, нет механизма, через который вы можете инсталлировать произвольную программу самостоятельно (вне fink) так, чтобы fink признал ее вместо того, чтобы пытаться инсталлировать свою собственную версию этой программы. Очень сложно в целом иметь способность проверять флажки конфигурации, компиляции, имена маршрута и т.д.
Далее приведены наиболее важные виртуальные пакеты, которые fink определяет (начиная с fink-0.19.2):
- system-perl: [виртуальный пакет, представляющий perl]
Представляет
/usr/bin/perl
, являющийся частью инсталляции OS X по умолчанию. Этот пакет также обеспечиваетsystem-perlXXX
иperlXXX-core
в соответствии в версией X.X.X этого интерпретатора perl. - system-javaXXX: [виртуальный пакет, представляющий Java
X.X.X]
Представляет Java Runtime Environment, часть OS X (и обновление ПО Apple). См. страницу Java Apple для получения более подробной информации.
- system-javaXXX-dev: [виртуальный пакет, представляющий заголовки разработок Java
X.X.X ]
Представляет Java SDK, который должен быть скачан вручную из connect.apple.com (требуется бесплатная регистрация) и инсталлирован. Если вы обновили Java Runtime Environment, ваш SDK возможно не будет обновлен автоматически (и даже может быть удален!). Не забудьте проверить (а также при необходимости скачать и инсталлировать) SDK после инсталляции или обновления Runtime Environment. См. также этот Ч.З.В..
- system-java3d: [виртуальный пакет, представляющий Java3D]
- system-javaai: [виртуальный пакет, представляющий Java
Advanced Imaging]
Представляют расширения Java для трехмерной графики и обработки изображений, которые необходимо скачать вручную из Apple и инсталлировать. См. веб-сайт Apple для получения более подробной информации.
- system-xfree86: [инсталлированный заполнитель для пользователя x11]
- system-xfree86-shlibs: [общие библиотеки инсталлированного заполнителя для пользователя
x11]
Представляют Apple X11/XDarwin, опциональную часть OS X (X11User.pkg). Эти пакеты обеспечивают
x11
иx11-shlibs
, соответственно. Также см. этот Ч.З.В. . - system-xfree86-dev [инструменты разработок инсталлированного
заполнителя для пользователя x11]
Представляет Apple X11/XDarwin SDK, дополнительную часть OS X (X11SDK.pkg). Этот пакет обеспечивает
x11-dev
. См. также этот Ч.З.В. .
Следующий: 9. Проблемы использования пакетов - Специальные пакеты