Восстановите sqlite3 на Mac OS X для Google Chrome

Я был достаточно глуп скомпилировать sqlite3 из источника и установки это к /usr, переопределяющая библиотека по умолчанию.
Это сделанное, Google Chrome больше не запускается, отказывая с этим выводом:

Dyld Error Message:
  Library not loaded: /usr/lib/libsqlite3.dylib
  Referenced from: /System/Library/Frameworks/Security.framework/Versions/A/Security
  Reason: no suitable image found.  Did find:
    /usr/lib/libsqlite3.dylib: mach-o, but wrong architecture
    /usr/local/lib/libsqlite3.dylib: mach-o, but wrong architecture
    /usr/lib/libsqlite3.dylib: mach-o, but wrong architecture

Я могу так или иначе вернуться sqlite3 к исходной версии я имел, или так или иначе еще устраните проблему?

2
задан 01.03.2011, 07:38

3 ответа

Я смог зафиксировать это путем компиляции sqlite3 для i386 и x86_64 и размещение его в /usr:

./configure --prefix=/usr --disable-dependency-tracking CFLAGS="-arch i386 -arch x86_64"
3
ответ дан 08.12.2019, 06:29

При изменении soemthing в/usr, Вы изменили код, предоставленный Apple, таким образом, необходимо будет переустановить ОС. Однако, поскольку это - большой chnage, я попытался бы сначала восстановить mysql от Вашего резервного копирования :). Если не затем получают комбинацию OSX verstion обновление от Apple. Иначе перейдите к DVD OSX, можно восстановить несколько файлов путем рассмотрения содержания пакета - однако, мой OSX испорчен и и не имейте корректного имени пакета.

Для этого конкретного случая Вы могли перекомпилировать, как @gaearon говорит, но необходимо получить правильную версию и предположить, что Apple не сделала никаких изменений.

В целом я добавил бы новые библиотеки с помощью штрейкбрехера диспетчера пакетов, macports и т.д., поскольку они помещают вещи вне системных областей Apple и соглашения с любыми причудами OSX. Если Вы компилируете свое собственное использование/usr/local

0
ответ дан 08.12.2019, 06:29

В моей системе libsqlite3.dylib был установлен как часть пакета BaseSystem и обновлен 10.6.5 и 10.6.7 пакетами.

$ grep -rl libsqlite3.dylib /var/db/receipts/
/var/db/receipts/com.apple.pkg.BaseSystem.bom
/var/db/receipts/com.apple.pkg.update.os.10.6.5.patch.bom
/var/db/receipts/com.apple.pkg.update.os.10.6.7.patch.bom

Можно извлечь просто те файлы из исходных .pkg файлов с помощью чего-то как Пацифист, pkgutil или установщик. Для меня не было сразу очевидно, как извлечь единственный файл из .pkg файла с инструментами командной строки. Это довольно просто с Пацифистом; документы здесь.

1
ответ дан 08.12.2019, 06:29

Теги

Похожие вопросы