![apt-get을 사용하여 설치 중 종속성 문제 해결](https://linux55.com/image/160368/apt-get%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%84%A4%EC%B9%98%20%EC%A4%91%20%EC%A2%85%EC%86%8D%EC%84%B1%20%EB%AC%B8%EC%A0%9C%20%ED%95%B4%EA%B2%B0.png)
간단히 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을 설치했는데 우분투는 더 이상 모든 것을 해독할 수 없습니다. 어쩌면 이전 버전의 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
---맥 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]
설치하지 마세요[이메일 보호됨]하지만! 이전 설치를 제거하더라도 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를 추가해야 합니다.[이메일 보호됨].bash_profile에 추가합니다(쉘 초기화 시 로드된 경우).