Див. Невідповідність версій між Mariadb та Ubuntu Debian Repositories
У офіційних сховищах 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
ПРИМІТКА: Оновіть до 5.5.34, щоб відображати поточну версію станом на 2014.01.28 [RealPariah]
Після встановлення потрібно тримати пакунки, поки номери версій не синхронізуються.
Після встановлення MariaDB, і поки існує проблема з номером версії, "apt-get dist-upgrade" спробує видалити MariaDB, щоб встановити "оновлені" пакети libmysqlclient та mysql. Щоб цього не сталося, ви можете утримувати їх, щоб apt не намагався оновити їх. Для цього відкрийте термінал, увімкніть root із `sudo -s`, а потім введіть наступне:
echo libmysqlclient18 hold | dpkg --set-selections
echo mysql-common hold | dpkg --set-selections
Затримки не дозволять вам оновити MariaDB, тому, коли ви хочете видалити затримки, відкрийте термінал, станьте root з '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, підписавшись на електронну пошту про нові випуски на MariaDB.org . За даними сайту, це а low-traffic announce-only list
.
Крім того, коли версії пакунків знову синхронізуються, вам слід перестати бачити повідомлення про те, що утримуватимуться лише два пакети, які утримуються, але що всі пакунки з 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
. Це ідентифікує пакет, що займається пакетом, та дозволяє іншим файлам уподобань фіксації легко розміщувати до цього файлу після того, як в порядку обробки.
sudo apt-get update && sudo apt-get -f install mariadb-server-5.5"=5.5.33a+maria-1~saucy"
Переконайтеся , що ви галочка всіх прапорців під Updates вкладки Sources Software . Щоб перевірити його виконання:sudo software-properties-gtk
відкрийте джерела програмного забезпечення . Якщо ви отримали помилку / повідомлення в команді, яку я згадав вище, опублікуйте це у своєму запитанні.