Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Knoppix

Модераторы: Warderer, Модераторы разделов

Ответить
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение жучара »

Друзья! Устанавливаю пакет.

Shell

user@astra:~/Desktop/mesa$ sudo dpkg -i libegl1-mesa-dev_10.5.9-2astra2_amd64.deb 1>/dev/null
dpkg: ошибка при обработке параметра libegl1-mesa-dev_10.5.9-2astra2_amd64.deb (--install):
попытка перезаписать «/usr/lib/x86_64-linux-gnu/libEGL.so», который уже имеется в пакете nvidia-drivers-astra-smolensk-1.5 1.0
При обработке следующих пакетов произошли ошибки:
libegl1-mesa-dev_10.5.9-2astra2_amd64.deb
user@astra:~/Desktop/mesa$
То есть видно, да, один файлик /usr/lib/x86_64-linux-gnu/libEGL.so хочет записать другим таким же. Не пойдёт. Вообще перезапись файлов каких-либо не нужна.

Shell

user@astra:~/Desktop/mesa$ dpkg --force-help
Параметры игнорирования dpkg позволяют управлять поведением при
обнаружении ошибок:
предупредить и продолжить работу: --force-<ошибка>,<ошибка>,…
прекратить работу и выдать ошибку: --refuse-<ошибка>,<ошибка>,…
| --no-force-<ошибка>,…
Возможные ошибки:
[!] all Установить все параметры игнорирования
[*] downgrade Заменить пакет на пакеты с меньшей версией
configure-any Настроить любой пакет, который может помочь этому
hold Обработать несущественные пакеты, даже когда они зафиксированы
not-root Попытаться выполнить установку/удаление даже не имея прав суперпользователя
bad-path В PATH отсутствуют важные программы, возможны проблемы
bad-verify Установить пакет, даже если он не пройдёт аутентификацию
bad-version Обрабатывать пакеты даже с ошибочными версиями
overwrite Перезаписывать файл из одного пакета файлом другого пакета
То есть видно, что я могу использовать такие команды:

Shell

dpkg --force-overwrite -i libegl1-mesa-dev_10.5.9-2astra2_amd64.deb
Но в этом случае предупредит и перезапишет, что мне НЕ НАДО
++++++++++++++++++++++++++++++++++++++++++++++++++++++

Shell

dpkg --no-force-overwrite -i libegl1-mesa-dev_10.5.9-2astra2_amd64.deb
А в этом случае предупредит и прекратит работу. Тоже не надо.

Есть ли нужное мне решение? Спасибо, кто откликнется.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение SLEDopit »

Вы хотите установить в систему одновременно два пакета с одинаковым файлом?

Обычно такие пакеты объявляют конфликтующими и не ставят вместе друг с другом.

Если вы абсолютно уверены в своих действиях, то, на мой взгляд, самый простой способ -- перепаковать deb архив, удалив из него проблемный файл. Например так.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20792
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение Bizdelnick »

Видимо один из пакетов криво собран, предполагаю что nvidia-drivers-astra-smolensk-1.5. Такие вещи должны разруливаться через alternatives, но разрабы астры, видимо, не в курсе.
SLEDopit писал(а):
22.04.2018 23:37
Если вы абсолютно уверены в своих действиях, то, на мой взгляд, самый простой способ -- перепаковать deb архив, удалив из него проблемный файл.
Лично я абсолютно уверен, что так делать не надо. Но можно снести астровский пакет с дровами nvidia и на замену ему пересобрать дебиановский. А можно просто снести и этим ограничиться.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение жучара »

Bizdelnick, я собираю (уже собрал) из исходников пакет
https://packages.debian.org/wheezy/evince

При ./configure нужно было устанавливать такой пакет.

Только вот беда, этот пакет не отображается при

Shell

dpkg -l | grep evince
Может, так и надо, я не знаю.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение жучара »

Люди, у вас что со временем?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение жучара »

Bizdelnick, да там натурально какой-то левый файл libEGL.so. Ну посудите сами:

Shell

user@astra:~/Desktop/ghgh/tmp/usr/lib/x86_64-linux-gnu$ ls -l
итого 4
lrwxrwxrwx 1 ser ser 15 марта 2 2016 libEGL.so -> libEGL.so.1.0.0
lrwxrwxrwx 1 ser ser 23 марта 2 2016 libwayland-egl.so -> libwayland-egl.so.1.0.0
drwxr-xr-x 2 ser ser 4096 марта 2 2016 pkgconfig
user@astra:~/Desktop/ghgh/tmp/usr/lib/x86_64-linux-gnu$
И на какой-такой libEGL.so.1.0.0 ссылается libEGL.so?

++++++++++++++++++++++++++++++++++++++++++++++++++

А оригинальный ещё как ссылается (но не на libEGL.so.1.0.0):

Shell

user@astra:~/Desktop/ghgh/tmp/usr/lib/x86_64-linux-gnu$ ls -l /usr/lib/x86_64-linux-gnu/libEGL.so
lrwxrwxrwx 1 root root 11 дек. 19 12:02 /usr/lib/x86_64-linux-gnu/libEGL.so -> libEGL.so.1
user@astra:~/Desktop/ghgh/tmp/usr/lib/x86_64-linux-gnu$ ls -l /usr/lib/x86_64-linux-gnu/libEGL.so.1
lrwxrwxrwx 1 root root 44 апр. 22 17:16 /usr/lib/x86_64-linux-gnu/libEGL.so.1 -> /usr/lib/x86_64-linux-gnu/libEGL.so.1.387.12
user@astra:~/Desktop/ghgh/tmp/usr/lib/x86_64-linux-gnu$ ls -l /usr/lib/x86_64-linux-gnu/libEGL.so.1.387.12
-rwxr-xr-x 1 root root 73900 дек. 15 17:31 /usr/lib/x86_64-linux-gnu/libEGL.so.1.387.12
user@astra:~/Desktop/ghgh/tmp/usr/lib/x86_64-linux-gnu$
Быть может, такой случай и имел ввиду следопыт. Я убрал libEGL.so, пересобрал пакет и пока нормально всё.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20792
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение Bizdelnick »

А, я проглядел, что это dev-пакет. А зачем он Вам понадобился? Если Вы намерены собирать что-то, что линкуется с libEGL.so, то удаление симлинка ни к чему хорошему не приведёт. А если Вы ничего собирать не намерены, Вам этот пакет просто не нужен.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение жучара »

Bizdelnick, я собираю (уже собрал) из исходников пакет
https://packages.debian.org/wheezy/evince

При ./configure нужно было устанавливать такой пакет.

Только вот беда, этот пакет не отображается при

Shell

dpkg -l | grep evince
Может, так и надо, я не знаю.

И что на форуме за авария со временем?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20792
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение Bizdelnick »

жучара писал(а):
23.04.2018 21:44
я собираю (уже собрал) из исходников пакет
Я не понял, что Вы в конечном итоге сделали, но для сборки лучше грохнуть симлинк на либу от nvidia (для работы он всё равно не нужен) и использовать mesa. А лучше вообще пакет nvidia удалить, чтобы из него ещё чего-нибудь не подцепилось, или собирать pbuilder'ом.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение жучара »

Bizdelnick писал:
24.04.2018 01:09
Я не понял, что Вы в конечном итоге сделали
я собрал из сиходников пакет.
Bizdelnick писал:
24.04.2018 01:09
но для сборки лучше грохнуть симлинк на либу от nvidia (для работы он всё равно не нужен) и использовать mesa. А лучше вообще пакет nvidia удалить, чтобы из него ещё чего-нибудь не подцепилось, или собирать pbuilder'ом.
Я не понимаю, почему вы мне советуете снести NVIDIA. Вы же не знаете, как было без него, а я знаю. Так вот, без него было ХУЖЕ, а сейчас лучше. А что дальше будет, я не знаю.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20792
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение Bizdelnick »

жучара писал(а):
24.04.2018 16:22
Я не понимаю, почему вы мне советуете снести NVIDIA. Вы же не знаете, как было без него, а я знаю.
Я его советую снести для сборки. Чтобы этого пакета не было в сборочном окружении. Сборочное окружение не обязано быть Вашей основной рабочей системой, более того, лучше, если оно будет отдельным. Идеальный вариант — сборка в chroot, где установлен минимально необходимый набор зависимостей (см. pbuilder). Иначе Вы рискуете собрать программу, которая внезапно перестанет работать после обновления драйвера или на системе, где он не установлен. В теории, конечно, такого быть не должно, но никто за это поручиться не может.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение жучара »

Bizdelnick я ничё не понял.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20792
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение Bizdelnick »

Ну что я могу сказать… Перечитайте ещё раз.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4455
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Как сделать так. чтобы установщик (dpkg) НЕ ПЕРЕЗАПИСЫВАЛ имеющиеся файлы?

Сообщение Rootlexx »

SLEDopit писал(а):
22.04.2018 23:37
Если вы абсолютно уверены в своих действиях, то, на мой взгляд, самый простой способ -- перепаковать deb архив, удалив из него проблемный файл.
Лучше использовать dpkg-divert, для данной задачи и предназначенный.
Спасибо сказали:
Ответить