태그 보관물: mariadb

mariadb

Apt가보고 할 때 MariaDB 설치하기 MariaDB에 종속성이 없거나 패키지가 손상되었습니다. if you are using the

이 깨끗한 Ubuntu 설치에 MariaDB를 설치하기 위해 모든 것을 시도했지만이 오류가 계속 발생합니다.

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
mariadb-server : Depends: mariadb-server-5.5 (= 5.5.33a+maria-1~saucy)
but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

http://www.unixmen.com/install-lemp-server-nginx-mysql-mariadb-php-ubuntu-13-10-server/ 에서이 안내서를 따라 설치했습니다
.

또한 13.10 https://downloads.mariadb.org/mariadb/repositories/ 에 대한 MariaDB 다운로드 페이지의 “공식”안내서를 따랐습니다.

그러나 아무것도 작동하지 않는 것 같습니다.

편집 1

나는 시도 모두 어떻게 PPA를 추가 한 후 충족되지 않은 종속성을 해결하는 방법은 무엇입니까? MariaDB를 설치하는 방법? 그러나 여전히 위에 게시 한 오류가 발생합니다.

거의 설치되지 않은 새로운 우분투 설치입니다.

편집 2

모든 확인란은 업데이트의 티켓입니다. 나는 달렸다 :

sudo apt-get update && sudo apt-get -f install mariadb-server-5.5"=5.5.33a+maria-1~saucy"

그리고 그것은 나 에게이 오류를 주었다 :

The following packages have unmet dependencies:
mariadb-server-5.5 : Depends: mariadb-client-5.5 (>= 5.5.33a+maria-1~saucy)
but it is not going to be installed
Depends: mariadb-server-core-5.5 (>= 5.5.33a+maria-1~saucy)
but it is not going to be installed
E: Unable to correct problems, you have held broken packages.



답변

Mariadb와 Ubuntu Debian 리포지토리의 버전 불일치 참조

mysql-common 또는 libmysqlclient의 버전 번호가 공식 우분투 또는 데비안 리포지토리에서 MariaDB 리포지토리보다 높은 경우는 드물지만 발생했습니다. 배포 리포지토리의 MySQL 버전에는 있지만 MariaDB 리포지토리의 MariaDB 버전에서는 이미 수정 된 버그에 대한 중요한 버그 수정 릴리스로 인해 발생했습니다.

MariaDB를 설치하려고 할 때 위에서 설명한 상황이 존재하면 다음과 같은 오류가 발생합니다.

The following packages have unmet dependencies:
mariadb-server : Depends: mariadb-server-5.5 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

이 문제를 해결하는 방법은 설치할 두 패키지의 정확한 버전을 지정하는 것입니다. 이렇게하려면 먼저 영향을받는 패키지의 전체 버전 번호를 확인하십시오. 이렇게하는 쉬운 방법은 ‘apt-cache show’입니다.

apt-cache show mysql-common | grep Version
apt-cache show libmysqlclient18 | grep Version

버전 번호가 다음과 같이 표시되므로이 글을 쓰는 시점의 상황입니다.

Version: 5.5.34-0ubuntu0.13.10.1
Version: 5.5.34+maria-1~saucy

MariaDB 페이지는 두 가지 솔루션을 제공합니다.

첫 번째 해결책 : 패키지 버전 지정

위의 각각에 대해 버전 목록이 제공됩니다. MariaDB 리포지토리의 버전 문자열에는 “mariadb”가 있으며 원하는 것입니다. 버전 번호가 있으면 다음과 같이 버전 번호를 명시 적으로 지정하여 MariaDB를 설치할 수 있습니다.

apt-get install mariadb-server-5.5 mariadb-client-5.5 \
libmysqlclient18=<version-number> \
mysql-common=<version-number>

어느

apt-get install mariadb-server-5.5 mariadb-client-5.5 \
 libmysqlclient18=5.5.34+maria-1~saucy \
 mysql-common=5.5.34+maria-1~saucy

참고 : 2014.01.28 기준으로 현재 버전을 반영하려면 5.5.34로 업데이트하십시오. [RealPariah]
설치 후 버전 번호가 다시 동기화 될 때까지 패키지를 보류해야합니다.

MariaDB가 설치되고 버전 번호 문제가있는 한, ‘apt-get dist-upgrade’는 “업그레이드 된”libmysqlclient 및 mysql-common 패키지를 설치하기 위해 MariaDB를 제거하려고 시도합니다. 이 문제가 발생하지 않도록 apt가 업그레이드를 시도하지 않도록 유지할 수 있습니다. 그렇게하려면 터미널을 열고`sudo -s`를 사용하여 루트가 된 후 다음을 입력하십시오.

echo libmysqlclient18 hold | dpkg --set-selections
echo mysql-common hold | dpkg --set-selections

보류는 MariaDB를 업그레이드하지 못하게하므로 보류를 제거하려면 터미널을 열고 ‘sudo -s’로 루트가 된 후 다음을 입력하십시오.

echo libmysqlclient18 install | dpkg --set-selections
echo mysql-common install | dpkg --set-selections

그런 다음 MariaDB를 정상적으로 업그레이드 할 수 있습니다 (예 :`sudo apt-get update; sudo apt-get upgrade`).

버전 번호가 언제 다시 일치하는지 어떻게 알 수 있습니까?

MariaDB.org 에서 새 릴리스에 대한 전자 우편 경고에 등록하여 MariaDB 버전 번호를 추적 할 수 있습니다 . 사이트에 따르면 low-traffic announce-only list.

또한 패키지 버전이 다시 동기화되면 보류 된 패키지 2 개만 유지되지만 모든 mariadb 패키지는 유지된다는 메시지가 표시되지 않아야합니다.

The following packages have been kept back:
libmariadbclient18 libmysqlclient18 linux-generic linux-headers-generic
linux-image-generic mariadb-client-5.5 mariadb-client-core-5.5
mariadb-server mariadb-server-5.5 mariadb-server-core-5.5 mysql-common

이는 패키지 번호가 다시 동기화되었음을 나타내며 시냅스 또는 유사한 도구로도 확인할 수 있습니다.

두 번째 솔루션 : MariaDB 리포지토리 고정

사용할 수있는 또 다른 작업은 사용하는 MariaDB 리포지토리를 고정하는 것입니다. `/ etc / apt / preferences.d /`아래에 다음 내용으로 파일을 생성하면됩니다 :

Package: *
Pin: origin <mirror-domain>
Pin-Priority: 1000

교체 <mirror-domain>사용하는 MariaDB 미러의 도메인 이름으로. 예를 들면 다음과 같습니다 ftp.osuosl.org. 핀 파일이 있으면 MariaDB 리포지토리의 패키지가 시스템 리포지토리의 패키지보다 우선합니다.

시스템 설정 >> 소프트웨어 및 업데이트 에서 사용중인 미러 이름을 찾 거나 Ubuntu, Synaptic >> 설정 >> 리포지토리 또는 다른 버전을 사용하는 경우 또는 cat /etc/apt/sources.list.

Pin-Priority이 경우 필요에보다 커야 또는 1000과 동일 할causes a version to be installed even if this constitutes a downgrade of the package

man 5 apt_preferences다른 경우의 옵션에 대한 자세한 내용은 참조하십시오 .

고정 환경 설정 파일 이름 지정

Note that the file in the /etc/apt/preferences.d directory are parsed in alphanumeric ascending order and need to obey the following naming convention:

The files have either no or "pref" as filename extension and only contain alphanumeric, hyphen (-), undescore (_), and period (.) characters. Otherwise APT will print a notice that it has ignored a file...

(출처 : man 5 apt_preferences)

이름 자체는 중요하지 않지만 좋은 이름은 다음과 같습니다 50_mariadb. 이것은 관련된 패키지를 식별하고 처리 순서에서이 파일 다음에 다른 고정 환경 설정 파일을 쉽게 배치 할 수있게합니다.


답변

우분투 14.10에서 비슷한 문제가 MySQL에서 Maria DB로 업그레이드되었습니다. 즉, 나는 붙어있을 것입니다

 libmysqlclient18:amd64 10.0.16+maria-1~utopic (Multi-Arch: no) is not co-installable with libmysqlclient18 which has multiple installed instances

이러한 제안을 따르지 않으면 다음이 크게 도움이 되었습니다. JournalXtra 로 우분투 서버에서 MySQL을 MariaDB 로 바꾸는 방법.

/ var / lib / dpkg / status를 편집하고 다음과 같이 libmysqlclient18의 두 인스턴스를 제거하십시오.

Package: libmysqlclient18
Status: deinstall ok config-files
Priority: optional
Section: libs
Installed-Size: 3392
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Multi-Arch: same
Source: mysql-5.5
Version: 5.5.40-0ubuntu1
Config-Version: 5.5.40-0ubuntu1
Depends: mysql-common (>= 5.5.40-0ubuntu1), libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), zlib1g (>= 1:1.1.4)
Pre-Depends: multiarch-support
Description: MySQL database client library

MySQL은 빠르고 안정적이며 진정한 다중 사용자, 다중 스레드 SQL 데이터베이스 서버입니다. SQL (Structured Query Language)은 세계에서 가장 많이 사용되는 데이터베이스 쿼리 언어입니다. MySQL의 주요 목표는 속도, 견고성 및 사용 편의성입니다. . 이 패키지에는 클라이언트 라이브러리가 포함되어 있습니다. 홈페이지 : http://dev.mysql.com/
Original-Maintainer : 데비안 MySQL 관리자

나중에 MariaDB를 원활하게 설치할 수있었습니다.

sudo apt-get install mariadb-server

참고 :이 솔루션이 작동하기 전에 libmariadbclient18 및 libmysqlclient18을 제거하려고 여러 번 시도한 후에 여기에 왔습니다. 다른 수리를 시도하기 전에 손상된 패키지로보고되어이 두 가지가 제거 될 때까지 과거의 apt-get 문제를 해결할 수 없었습니다.


답변