MySQLをサポートするPostfixをインストールしようとしています。 postfixデーモンを起動または実行すると、/usr/local/mysql/lib
パッケージをビルドするとリンクされたディレクトリにある「libmysqlclient.so.18が見つかりません」というメッセージが表示されます。
/usr/local/mysql/lib/libmysqlclient.so.18
シンボリックリンクを追加して/usr/lib
問題を解決しましたが、これは本当に悪い解決策なので、正しい方法で行うことをお勧めします。
フォローするこの文書、その小さなバグを除いて動作します。
私はArch Linux、カーネルバージョン2.6.33を実行しています。
答え1
最も簡単な解決策は、Arch LinuxパッケージからMySQLをインストールすることです。これでライブラリがインストールされ、/usr/lib
すべてがスムーズに動作します。
パッケージングシステムの外部にMySQLをインストールした場合、これは/usr/local/lib
ライブラリの予想位置です。ソースからプログラムをインストールするときに自動的にシンボリックリンクを生成するには、stowまたはxstowを使用することをお勧めします。追跡プログラム。
すべてのプログラムでライブラリを検索できるようにするには、/usr/local/mysql/lib
そのライブラリをのデフォルトライブラリ検索パスに追加します/etc/ld.so.conf
。しかし、/usr/local/lib
したい場合はシンボリックリンクをお勧めします。
Postfixにライブラリを検索させるには、/usr/local/mysql/lib
Postfixを起動するスクリプトを次のように編集します/etc/rc.d/postfix
(Archの正確な場所はわかりません)。 postfixデーモンを起動する前に、次の行を追加してください。
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+:}/usr/local/mysql/lib"
答え2
Arch Linuxでは、最近カスタムビルドからライブラリをインストールするときに同様の問題が発生しました。私の場合は、/usr/local/libにライブラリをインストールしました。このライブラリが必要なアプリケーションを実行すると、同様のランタイムエラーが発生します。ライブラリが見つかりません。 (BSDシステムを使用する方が簡単ではないでしょうか?:-D)
正しい回避策は、新しいデフォルトライブラリディレクトリをランタイムリンカパスに追加することです。 Arch Linuxで、次のように:
/etc/ld.so.conf
したがって、新しいライブラリパスを追加するには
sudo vi /etc/ld.so.conf
次に、パスを新しい行に追加します。
/usr/local/mysql/lib/
私の場合は/usr/local/libを追加したので、/etc/ld.conf.soファイルは次のようになります。
#
# /etc/ld.so.conf
#
include /etc/ld.so.conf.d/*.conf
/usr/local/lib
# End of file
私の使い方が正しいことを確認してください。
sudo ldconfig -v
カスタムライブラリを一覧表示する必要があります。つまり、リンカーによって「発見」された。
この設定ファイルとランタイムリンカの詳細については、
man ldconfig
Arch Linuxは、複数の設定ファイル(/etc/ld.so.conf.d/*.conf)を持つカスタムディレクトリを使用するように設定されているように見えますが、これは私にとって非常に多くのSYSVで完全な過剰です。 /etc/ld.so.conf パスです。