Драйверы Microsoft ODBC, не полностью установленные и никакой путь к unistall их

Я загрузил этот debian пакет:

curl https://packages.microsoft.com/ubuntu/16.04/prod/pool/main/m/msodbcsql/msodbcsql_13.1.4.0-1_amd64.deb -o msodbcsql_13.1.4.0-1_amd64.deb 

Затем я выполнил следующую команду:

sudo ACCEPT_EULA=Y dpkg -i msodbcsql_13.1.4.0-1_amd64.deb

И я возвратил следующие сообщения:

Selecting previously unselected package msodbcsql.
(Reading database ... 255078 files and directories currently installed.)
Preparing to unpack msodbcsql_13.1.4.0-1_amd64.deb ...
Unpacking msodbcsql (13.1.4.0-1) ...
dpkg: dependency problems prevent configuration of msodbcsql:
 msodbcsql depends on unixodbc (>= 2.3.1); however:
  Package unixodbc is not installed.

dpkg: error processing package msodbcsql (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 msodbcsql

Таким образом, я понял, что должен был установить unixodbc, таким образом, я сделал sudo apt-get install unixodbc получение следующего вывода:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies.
 unixodbc : Depends: libodbc1 (>= 2.3.1) but it is not going to be installed
            Depends: odbcinst1debian2 (>= 2.3.1) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

В этой точке я начал пытаться удалить "половину установленного" пакета, и я попробовал несколько разных подходов:

Это sudo dpkg -r msodbcsql дает:

(Reading database ... 255091 files and directories currently installed.)
Removing msodbcsql (13.1.4.0-1) ...
dpkg: error processing package msodbcsql (--remove):
 subprocess installed post-removal script returned error exit status 127
Errors were encountered while processing:
 msodbcsql

Это sudo apt-get autoremove дает:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED
  msodbcsql
0 to upgrade, 0 to newly install, 1 to remove and 10 not to upgrade.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
(Reading database ... 255077 files and directories currently installed.)
Removing msodbcsql (13.1.4.0-1) ...
dpkg: error processing package msodbcsql (--remove):
 subprocess installed post-removal script returned error exit status 127
Errors were encountered while processing:
 msodbcsql
E: Sub-process /usr/bin/dpkg returned an error code (1)

Это sudo apt-get --purge remove && sudo apt-get autoclean дает:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED
  msodbcsql
0 to upgrade, 0 to newly install, 1 to remove and 10 not to upgrade.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
(Reading database ... 255077 files and directories currently installed.)
Removing msodbcsql (13.1.4.0-1) ...
dpkg: error processing package msodbcsql (--remove):
 subprocess installed post-removal script returned error exit status 127
Errors were encountered while processing:
 msodbcsql
E: Sub-process /usr/bin/dpkg returned an error code (1)

Это sudo apt-get -f install дает:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED
  msodbcsql
0 to upgrade, 0 to newly install, 1 to remove and 10 not to upgrade.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
(Reading database ... 255077 files and directories currently installed.)
Removing msodbcsql (13.1.4.0-1) ...
dpkg: error processing package msodbcsql (--remove):
 subprocess installed post-removal script returned error exit status 127
Errors were encountered while processing:
 msodbcsql
E: Sub-process /usr/bin/dpkg returned an error code (1)

Я также попытался искать некоторые подстановочные знаки с sudo find / -name *msodbc* в файловой системе, чтобы надеяться найти огромный двоичный файл и удалить его вручную, но ничто интересное появился.

Я немного обеспокоен этим удалением, поскольку все предыдущие попытки, кажется, отдают то же сообщение об ошибке / код, и я не нахожу способ или удалить ту "половину установленного" пакета или диагностировать проблему.

Есть ли какой-либо файл журнала, я мог взглянуть или что-либо еще, что я мог сделать для удаления того пакета?

Мои детали Ubuntu:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:    16.04
Codename:   xenial
$ uname -a
Linux oe-laptop 4.10.0-37-generic #41~16.04.1-Ubuntu SMP Fri Oct 6 22:42:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
1
задан 11 October 2017 в 17:08

2 ответа

Обычно при установке пакета с dpkg -i мы выполнили бы с:

sudo apt install -f

В зависимости от того, требуются ли зависимости, и гарантировать, что необходимые зависимости установлены, но в Вашем случае, Вы пытались удалить пакет, который не был настроен право во-первых. Так использование:

sudo apt update 
sudo dpkg --configure -a

сделал две вещи (1): обновите индексные записи диспетчера пакетов, (2): исправьте любые конфигурации мисс, которые Вы вызвали при попытке установить и удалить. sudo apt update привычка, за которой я обычно следую для решения вопросов о зависимостях, и последняя команда добилась цели.

3
ответ дан 3 December 2019 в 06:53

Проблема, с которой Вы столкнулись, состоит в том, что dpkg не разрешает зависимости. Это было составлено тем, что Вы, казалось, не прочитали или не следовали сообщению, Вы получили "Попытку, 'склонную - получают установку-f'".

Обычно sudo apt-get -f install твердость проблема как склонная будет разрешать и устанавливать зависимости. Это имело бы в Вашем случае как проблема wsa решенный после ручной установки зависимостей.

, Если бы у Вас должна была быть проблема с sudo apt-get -f install, необходимо было бы вырыть глубже и зависимости от твердости вручную.

Поэтому при установке .deb таким образом Вы были бы:

sudo dpkg -i foo.deb
sudo apt-get -f install #this command will install dependencies
sudo dpkg -i foo.deb

Вы получали сообщения об ошибках, поскольку Вы пытались удалить пакет, который не был полностью установлен из-за недостающих зависимостей, и Вы разрешили проблему путем установки зависимостей вручную.

я рад, что Вы решили свою проблему, но в следующий раз, не пугайте, читайте сообщения.

В будущем, если при всем возможном применении ppa и/или читают сначала.

<час>

Также проверяют подробные инструкции в Установка Microsoft ODBC Driver для SQL Server на Linux и странице macOS , сохраняемой Microsoft:

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install unixodbc-dev

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

1
ответ дан 3 December 2019 в 06:53

Другие вопросы по тегам:

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