apt-getを使用したインストール中の依存関係のトラブルシューティング

apt-getを使用したインストール中の依存関係のトラブルシューティング

単にRuby 2.3でrvmを更新したいと思います。

rvm install ruby-2.3.0

しかし、いくつかの依存関係の問題が発生しました。

Error running 'requirements_debian_libs_remove libssl-dev',
please read /home/john/.rvm/log/1568069021_ruby-2.3.0/package_remove_libssl-dev.log

ログファイルによると、問題はmariadbにあります。

tail -n 100 /home/john/.rvm/log/1568069021_ruby-2.3.0/package_remove_libssl-dev.log

The following packages have unmet dependencies:
 mariadb-server : Depends: mariadb-server-10.1 (= 1:10.1.41+maria-1~bionic) but 1:10.1.40-0ubuntu0.18.04.1 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

私は成功せずに依存関係の問題を解決しようとしました。

sudo apt --fix-broken install

dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
dpkg: regarding .../mariadb-server-core-10.1_1%3a10.1.41+maria-1~bionic_amd64.deb containing mariadb-server-core-10.1:
 mariadb-server-10.1 conflicts with mysql-server-core-5.5
  mariadb-server-core-10.1 provides mysql-server-core-5.5 and is to be installed.

dpkg: error processing archive /var/cache/apt/archives/mariadb-server-core-10.1_1%3a10.1.41+maria-1~bionic_amd64.deb (--unpack):
 conflicting packages - not installing mariadb-server-core-10.1
dpkg: regarding .../mariadb-client-core-10.1_1%3a10.1.41+maria-1~bionic_amd64.deb containing mariadb-client-core-10.1:
 mariadb-client-10.1 conflicts with mysql-client-core-5.5
  mariadb-client-core-10.1 provides mysql-client-core-5.5 and is to be installed.

dpkg: error processing archive /var/cache/apt/archives/mariadb-client-core-10.1_1%3a10.1.41+maria-1~bionic_amd64.deb (--unpack):
 conflicting packages - not installing mariadb-client-core-10.1
dpkg: regarding .../mariadb-client-10.1_1%3a10.1.41+maria-1~bionic_amd64.deb containing mariadb-client-10.1:
 mariadb-client-core-10.1 conflicts with mysql-client-5.5
  mariadb-client-10.1 provides mysql-client-5.5 and is to be installed.

dpkg: error processing archive /var/cache/apt/archives/mariadb-client-10.1_1%3a10.1.41+maria-1~bionic_amd64.deb (--unpack):
 conflicting packages - not installing mariadb-client-10.1
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 /var/cache/apt/archives/mariadb-server-10.1_1%3a10.1.41+maria-1~bionic_amd64.deb
 /var/cache/apt/archives/mariadb-server-core-10.1_1%3a10.1.41+maria-1~bionic_amd64.deb
 /var/cache/apt/archives/mariadb-client-core-10.1_1%3a10.1.41+maria-1~bionic_amd64.deb
 /var/cache/apt/archives/mariadb-client-10.1_1%3a10.1.41+maria-1~bionic_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

そのため、mariadbを手動で削除しようとしましたが、依存関係エラーが引き続き発生しました。

$ sudo apt-get purge mariadb-server-core-10.1

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 mariadb-server : Depends: mariadb-server-10.1 (= 1:10.1.41+maria-1~bionic) but 1:10.1.40-0ubuntu0.18.04.1 is to be installed
 mariadb-server-10.1 : Depends: mariadb-server-core-10.1 (>= 1:10.1.40-0ubuntu0.18.04.1) but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

これは私のローカルコンピュータなので、アイテムを削除するように求められません。ただし、Ruby 2.3をインストールできないか、Ruby 2.3をインストールするためにmariadbをアンインストールすることはできません。ここで解決策は何ですか?

ベストアンサー1

明らかに、いくつかのバージョンのMariaDBといくつかのバージョンのMySQLをインストールしましたが、Ubuntuはもはやすべてを復号化できません。たぶん古いバージョンのMySQLデータベースを持っていて、最新バージョンのサーバーを実行しようとしているかもしれません。サーバーがどのような混乱を経験しているかはわかりません。しかし、この問題を解決するためにMySQLからすべてを削除しました。

PKGS="mysql-server mariadb-client mariadb-server-10.0 mariadb-common"
sudo apt-get check
sudo apt remove $PKGS
sudo apt purge $PKGS
sudo apt autoremove
sudo apt-get --purge remove "mysql*"
sudo rm -rf /etc/mysql/ 
sudo updatedb
locate mysql
sudo rm -rf /etc/apparmor.d/abstractions/mysql
sudo rm -rf /etc/apparmor.d/cache/usr.sbin.mysqld
 sudo rm -rf /etc/default/mysql
sudo rm -rf /etc/systemd/system/mysqld.service
sudo rm -rf /home/dan/.mysql_history
sudo rm -rf /var/cache/apt/archives/libmysqlclient18_1%3a10.1.41+maria-1~bionic_amd64.deb
sudo rm -rf /var/cache/apt/archives/libmysqlclient20_5.7.27-0ubuntu0.18.04.1_amd64.deb
 sudo rm -rf /var/cache/apt/archives/mysql-client-5.7_5.7.27-0ubuntu0.18.04.1_amd64.deb
sudo rm -rf /var/cache/apt/archives/mysql-client-core-5.7_5.7.27-0ubuntu0.18.04.1_amd64.deb
sudo rm -rf /var/cache/apt/archives/mysql-common_1%3a10.1.41+maria-1~bionic_all.deb
sudo rm -rf /var/cache/apt/archives/mysql-server-5.7_5.7.27-0ubuntu0.18.04.1_amd64.deb
sudo rm -rf /var/cache/apt/archives/mysql-server-core-5.7_5.7.27-0ubuntu0.18.04.1_amd64.deb
 sudo rm -rf /var/cache/apt/archives/mysql-server_5.7.27-0ubuntu0.18.04.1_all.deb
sudo rm -rf /var/lib/mysqld
sudo rm -rf /var/lib/systemd/deb-systemd-helper-enabled/mysql.service
sudo rm -rf /var/lib/systemd/deb-systemd-helper-enabled/mysqld.service

現在、私のシステムにMariaDBやMySQLの兆候はありません。これで、MariaDB 10.1をきれいにインストールできます。

$ apt-cache policy software-properties-common
software-properties-common:
  Installed: 0.96.24.32.11

パッケージ管理システムで使用されるMariaDBリポジトリ公開鍵:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

UbuntuにMariaDB 10.1リポジトリを追加します。

sudo sh -c "echo 'deb https://mirrors.evowise.com/mariadb/repo/10.1/ubuntu '$(lsb_release -cs)' main' > /etc/apt/sources.list.d/MariaDB101.list"

次にmariadbをインストールします。

sudo apt-get update
sudo apt-get install mariadb-server mariadb-client

---Mac OSXソリューション---

以前の答えはLinux、特にUbuntuに関するものでした。 mysql / mariadb互換性の問題に苦しんでいる人のために問題をそのまま維持するために、OSXソリューションも提供しました。

$ brew list --versions mariadb
mariadb 10.3.12

$ brew uninstall mariadb
Uninstalling /usr/local/Cellar/mariadb/10.3.12... (658 files, 174.4MB)

$ brew doctor

$ brew cleanup # should you have some broken symlinks somewhere

$ brew info mariadb
Conflicts with:
  mariadb-connector-c  
  mysql 
  mytop  
  percona-server

$ brew list --versions mariadb-connector-c 
$ brew list --versions mysql
$ brew list --versions mytop
$ brew list --versions percona-server

$ brew search mariadb
[email protected] [email protected] [email protected]

インストールしないでください[Eメール保護]しかし!以前のインストールを削除しても、Brew はユーザー作成データが削除されないように、次のインストール中に datadir を保持します。このマシンのMySQLデータベース(Homebrewインストールまたは他のMySQLインストール)に重要なデータがないと確信している場合は、datadirおよびmy.cnf構成の削除を続行してください。

rm -rf /usr/local/var/mysql
rm -rf /usr/local/etc/my.cnf
rmdir /usr/local/etc/my.cnf.d
rm -rf /usr/local/etc/my.cnf.default
rm -rf /usr/local/etc/my.cnf.default.default

これで、以前のバージョンをインストールできます。

$ brew install [email protected]  


A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

MySQL is configured to only allow connections from localhost by default

To connect:
    mysql -uroot

[email protected] is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have [email protected] first in your PATH run:
  echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile

For compilers to find [email protected] you may need to set:
  export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
  export CPPFLAGS="-I/usr/local/opt/[email protected]/include"

For pkg-config to find [email protected] you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/share/pkgconfig"


To have launchd start [email protected] now and restart at login:
  brew services start [email protected]
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/[email protected]/bin/mysql.server start

インストールに関する結論をお読みください! $PATH を追加する必要があります。[Eメール保護].bash_profileに追加します(シェルの初期化時にロードされた場合)。

おすすめ記事