MySQLクライアントライブラリをインストールする必要がありますが、RPMはそれをインストールしません。

MySQLクライアントライブラリをインストールする必要がありますが、RPMはそれをインストールしません。

同じ名前のPerl Mod用のMySQLクライアントライブラリをインストールしようとしていますが、実行すると

sudo rpm --install -v --allfiles MySQL-client-5.5.16-1.linux2.6.i386.rpm

rpm データベースを照会すると、インストールされたパッケージが表示されますが、lib ファイルは存在しません。

 rpm -qa | grep -i mysql
 MySQL-client-5.5.16-1.linux2.6
 ll /usr/lib/mysql
 total 4.0K
 4.0K drwxr-xr-x 3 root root 4.0K Oct 11 09:49 plugin/

/usr/lib でこのファイルが見つかりません。

ls -ld /usr/lib/*mysql*
drwxr-xr-x 3 root root 4.0K Oct 11 09:49 /usr/lib/mysql
perlstation:~\ ->

これはrpm -qil MySQL-clientの結果です。

    rpm -qil MySQL-client
Name        : MySQL-client                 Relocations: (not relocatable)
Version     : 5.5.16                            Vendor: Oracle and/or its affiliates
Release     : 1.linux2.6                    Build Date: Fri 09 Sep 2011 11:27:55 AM CDT
Install Date: Tue 11 Oct 2011 02:38:14 PM CDT      Build Host: loki32
Group       : Applications/Databases        Source RPM: MySQL-5.5.16-1.linux2.6.src.rpm
Size        : 53026574                         License: Copyright (c) 2000, 2011,    Oracle and/or its affiliates. All rights reserved. Under GPL license as shown in the Description field.
Signature   : DSA/SHA1, Wed 14 Sep 2011 03:13:49 AM CDT, Key ID 8c718d3b5072e1f5
Packager    : MySQL Build Team <[email protected]>
URL         : http://www.mysql.com/
Summary     : MySQL - Client
Description :
This package contains the standard MySQL clients and administration tools.

For a description of MySQL see the base MySQL RPM or http://www.mysql.com/
/usr/bin/msql2mysql
/usr/bin/mysql
/usr/bin/mysql_find_rows
/usr/bin/mysql_waitpid
/usr/bin/mysqlaccess
/usr/bin/mysqlaccess.conf
/usr/bin/mysqladmin
/usr/bin/mysqlbinlog
/usr/bin/mysqlcheck
/usr/bin/mysqldump
/usr/bin/mysqlimport
/usr/bin/mysqlshow
/usr/bin/mysqlslap
/usr/share/man/man1/msql2mysql.1.gz
/usr/share/man/man1/mysql.1.gz
/usr/share/man/man1/mysql_find_rows.1.gz
/usr/share/man/man1/mysql_waitpid.1.gz
/usr/share/man/man1/mysqlaccess.1.gz
/usr/share/man/man1/mysqladmin.1.gz
/usr/share/man/man1/mysqlbinlog.1.gz
/usr/share/man/man1/mysqlcheck.1.gz
/usr/share/man/man1/mysqldump.1.gz
/usr/share/man/man1/mysqlimport.1.gz
/usr/share/man/man1/mysqlshow.1.gz
/usr/share/man/man1/mysqlslap.1.gz
perlstation:~\ ->

私はここで迷っています。

答え1

あなたは何を見ると予想していますか/usr/lib/mysql?このディレクトリにはプラグインだけが含まれているようです。 MySQLクライアントライブラリはおそらくパッケージではなく依存ライブラリパッケージに/usr/lib/libmysqlclient.so.*配置する必要があります。より一般的には、すべての動的ライブラリファイル名は。MySQL-clientMySQL-clientlib.so

答え2

常にパッケージの依存関係を確認する必要がありますrpm。 mysql-clientパッケージがインストールされているのと同じディレクトリに別のパッケージをダウンロードしましたか?依存関係の解決自体を提供しないため、rpmrpmのインストールを簡素化するには、yumなどのツールを使用する必要があります。この場合は、パッケージの依存関係を直接解決するか、ホストでyumを設定し、yumに依存関係を解決してrpmを介してインストールすることをお勧めします。

上記の場合、ファイルはインストールされていないと判断されますが、rpmはそのファイルがインストールされているパッケージにあると主張します。再確認する方法は簡単です。

rpm -ql MySQL-client-5.5.16-1 | xargs ls -ld

すべてのファイルが表示されると、rpmは正しいことを確認し、クライアントパッケージにすべてのファイルがあります。そうでなければ、何かが間違っています。おそらくmysql-clientパッケージが実際にインストールされていますが、一部の不良ユーザーですか? / processこれらのファイルはインストール場所から削除されましたか? 。これは可能かもしれません。この目的のために、rpmはそのまま保証されません。 MySQLクライアントパッケージをパッケージ化して再インストールすることをお勧めしrpmdbます。erase必要に応じて必要なすべての依存関係解決を実行します。

また、これはRPMとは関係ありませんが、Perlでmysqlを使用したい場合は、必ずしもDBI / DBD :: MySQL Perlパッケージに頼る必要はありませんが、代わりにスタンドアロンTsucchiのNet ::を使用できます。 mysqlライブラリにバインドする必要がなく、mysqlのインストールに依存しないMySQL perlパッケージ。 githubでこのパッケージをフォーク/レプリケートすると、Perlで非対話式にmysqlを使用でき、興味がある場合はmysqlシェルとして使用できる小さなスクリプトがあります。フォークされたストレージは次の場所にあります。https://github.com/mnikhil-git/p5-Net-MySQL

関連情報