Fink

Ч.З.В. - 8. Проблемы использования пакетов - Общие вопросы

В8.1: Я получаю много сообщений типа "locale not supported by C library". Это плохо?

О: Ничего страшного, просто это значит, что программа будет использовать сообщения, форматы дат и т.д. по умолчанию на английском языке. Программа будет работать нормально, но иным образом. См. документ "Выполнение X11" в .

В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):

Следующий: 9. Проблемы использования пакетов - Специальные пакеты