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

관련 정보