Решение проблем с зависимостями во время установки с помощью apt-get

Можно попробовать инструмент sed, как показано :Основная идея заключается в том, что в качестве первого шага мы поглощаем файл в пространстве шаблонов.

Затем мы распределяем первые 6 элементов, затем распечатываем эту часть и перемещаем эту линию в конец пространства шаблона (после отпиливания напечатанной части ).

Промойте и повторите описанный выше процесс для теперь ведущей линии в пространстве шаблона.

Этот процесс останавливается, когда в пространстве шаблона остается только последняя часть последней строки, и в этот момент мы просто позволим sedраспечатать ее после удаление ведущей новой строки.

Части представляют собой 6 полей csv, а общее количество полей в каждой строке равно целое число, кратное 6, и каждая строка имеет одинаковое количество полей.

sed -e '
   $!{
      s/$/,/
      N;s/^/\n/;D
   }

   s/^\([^,]*,\n\{0,1\}\)\{6\}/&\n/
   s/\n\n/\n/
   s/,\n/\n/

   P

   y/\n_/_\n/
   s/^[^_]*_//
   s/^\([^_]*\)_\(.*\)/_\2_\1/
   y/\n_/_\n/

   /\n.*\n/D
   s/.*\n//
' yourfile.csv

Результаты

A1,B1,C1,D1,E1,F1
G1,H1,I1,J1,K1,L1
A2,B2,C2,D2,E2,F2
G2,H2,I2,J2,K2,L2
1
10.09.2019, 01:55
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

добавить репозиторий MariaDB 10.1 в Ubuntu:

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 OS X---

Итак, мой предыдущий ответ касался 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
mariadb@10.1 mariadb@10.2 mariadb@10.3

Пока НЕ ​​устанавливайте mariadb@10.1! Даже после того, как вы удалите предыдущую установку, brew оставит каталог данных в покое во время следующей установки, чтобы убедиться, что он не удалит данные, созданные пользователем -. Если вы уверены, что у вас нет важных данных в вашей базе данных MySQL на этом компьютере (либо из установленного Homebrew -, либо из другой установки MySQL ), тогда да, удалите оба каталога данных и 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 mariadb@10.1  


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

mariadb@10.1 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 mariadb@10.1 first in your PATH run:
  echo 'export PATH="/usr/local/opt/mariadb@10.1/bin:$PATH"' >> ~/.bash_profile

For compilers to find mariadb@10.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/mariadb@10.1/lib"
  export CPPFLAGS="-I/usr/local/opt/mariadb@10.1/include"

For pkg-config to find mariadb@10.1 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/mariadb@10.1/share/pkgconfig"


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

Прочтите заключительные замечания по установке! вам нужно будет добавить $PATH к mariadb@10.1 в ваш профиль.bash _(, если он загружается при инициализации оболочки ).

1
27.01.2020, 23:40

Теги

Похожие вопросы