захолдить изменения в пакете

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

захолдить изменения в пакете

Sohin Vyacheslav-2
Приветствую,

На системе c Debian 9.11 я изменил файл /usr/bin/sa-compile, входящий в
пакет sa-compile. Я хотел бы, чтобы при следующем обновлении пакета
sa-compile эти изменения сохранились.

Для этого просто достаточно захолдить пакет:
$ sudo apt-mark hold sa-compile

или стоит например написать bash скрипт, который будет изменять
sa-compile файл из обновленного пакета? Может есть еще какие-то способы?



--
BW,
Сохин Вячеслав

Reply | Threaded
Open this post in threaded view
|

Re: захолдить изменения в пакете

Alexander Gerasiov-3
On Mon, 23 Dec 2019 18:31:09 +0200
Sohin Vyacheslav <[hidden email]> wrote:

> Приветствую,
>
> На системе c Debian 9.11 я изменил файл /usr/bin/sa-compile, входящий
> в пакет sa-compile. Я хотел бы, чтобы при следующем обновлении пакета
> sa-compile эти изменения сохранились.
>
> Для этого просто достаточно захолдить пакет:
> $ sudo apt-mark hold sa-compile
>
> или стоит например написать bash скрипт, который будет изменять
> sa-compile файл из обновленного пакета? Может есть еще какие-то
> способы?
Переименовать sa-compile в sa-compile.orig при помощи dpkg-divert.
Положить рядом под оригинальным именем свой модифицированный.

--
Best regards,
 Alexander Gerasiov

 Contacts:
 e-mail: [hidden email]  WWW: http://gerasiov.net  TG/Skype: gerasiov
 PGP fingerprint: 04B5 9D90 DF7C C2AB CD49  BAEA CA87 E9E8 2AAC 33F1

Reply | Threaded
Open this post in threaded view
|

Re: захолдить изменения в пакете

Sohin Vyacheslav-2


24.12.2019 6:41, Alexander Gerasiov пишет:
> On Mon, 23 Dec 2019 18:31:09 +0200
> Переименовать sa-compile в sa-compile.orig при помощи dpkg-divert.
> Положить рядом под оригинальным именем свой модифицированный.
>

А таким образом можно:
# dpkg-divert --divert /tmp/sa-compile --rename /usr/bin/sa-compile

где /tmp/sa-compile - модифицированный мной файл
/usr/bin/sa-compile - оригинальный файл


--
BW,
Сохин Вячеслав

Reply | Threaded
Open this post in threaded view
|

Re: захолдить изменения в пакете

Sohin Vyacheslav-2


24.12.2019 11:18, Sohin Vyacheslav пишет:
>
> А таким образом можно:
> # dpkg-divert --divert /tmp/sa-compile --rename /usr/bin/sa-compile
>
> где /tmp/sa-compile - модифицированный мной файл
> /usr/bin/sa-compile - оригинальный файл

Сделал так:
# dpkg-divert --divert /usr/bin/sa-compile --rename
/home/slawa/tmp/sa-compile

Теперь после попытки обновления до buster версии:
# apt-get install sa-compile
или
# apt-get -f install sa-compile

Распаковывается sa-compile (3.4.2-1+deb10u1) на замену (3.4.2-1+deb9u2)...
dpkg: ошибка при обработке архива
/var/cache/apt/archives/sa-compile_3.4.2-1+deb10u1_all.deb (--unpack):
попытка переписать "/usr/bin/sa-compile", являющийся отклоненной версией
"/home/slawa/tmp/sa-compile"
При обработке следующих пакетов произошли ошибки:
/var/cache/apt/archives/sa-compile_3.4.2-1+deb10u1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)


--
BW,
Сохин Вячеслав

Reply | Threaded
Open this post in threaded view
|

Re: захолдить изменения в пакете

Alexander Gerasiov
In reply to this post by Sohin Vyacheslav-2
On Tue, 24 Dec 2019 11:18:37 +0200
Sohin Vyacheslav <[hidden email]> wrote:

> 24.12.2019 6:41, Alexander Gerasiov пишет:
> > On Mon, 23 Dec 2019 18:31:09 +0200
> > Переименовать sa-compile в sa-compile.orig при помощи dpkg-divert.
> > Положить рядом под оригинальным именем свой модифицированный.
> >  
>
> А таким образом можно:
> # dpkg-divert --divert /tmp/sa-compile --rename /usr/bin/sa-compile
>
> где /tmp/sa-compile - модифицированный мной файл
> /usr/bin/sa-compile - оригинальный файл

Неправильно. При помощи dpkg-divert ты переименовываешь файл из пакета
в другое имя. Тогда при распаковке он не будет затирать
модифицированный тобой файл по оригинальному пути. Почитай внимательно
ман (особенно примеры в конце).

--
Best regards,
 Alexander Gerasiov

 Contacts:
 e-mail: [hidden email]  WWW: http://gerasiov.net  TG/Skype: gerasiov
 PGP fingerprint: 04B5 9D90 DF7C C2AB CD49  BAEA CA87 E9E8 2AAC 33F1

Reply | Threaded
Open this post in threaded view
|

Re: захолдить изменения в пакете

Sohin Vyacheslav-2


25.12.2019 9:31, Alexander Gerasiov пишет:
> On Tue, 24 Dec 2019 11:18:37 +0200
> Sohin Vyacheslav <[hidden email]> wrote:

> Неправильно. При помощи dpkg-divert ты переименовываешь файл из пакета
> в другое имя. Тогда при распаковке он не будет затирать
> модифицированный тобой файл по оригинальному пути. Почитай внимательно
> ман (особенно примеры в конце).
>

Сделал так:

1. Переместил оригинальный /usr/bin/sa-compile
2. Выполнил:

# dpkg-divert --add --rename --divert /usr/bin/sa-compile
/usr/bin/sa-compile.new
Добавляется "локальное отклонение /usr/bin/sa-compile.new в
/usr/bin/compile"

И действительно в /usr/bin появился файл sa-compile с содержимым файла
sa-compile.new

Но когда я проверяю процесс обновления пакета, изменив в sources.list до
buster и сделав
# apt-get update

Появляется все та же ошибка:
Распаковывается sa-compile (3.4.2-1+deb10u1) на замену (3.4.2-1+deb9u2)...
dpkg: ошибка при обработке архива
/var/cache/apt/archives/sa-compile_3.4.2-1+deb10u1_all.deb (--unpack):
попытка переписать "/usr/bin/sa-compile", являющийся отклоненной версией
"/usr/bin/sa-compile.new"
При обработке следующих пакетов произошли ошибки:
/var/cache/apt/archives/sa-compile_3.4.2-1+deb10u1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Может стоит попробовать
# apt-get upgrade

а не пытаться обновить только один пакет sa-compile?


--
BW,
Сохин Вячеслав

Reply | Threaded
Open this post in threaded view
|

Re: захолдить изменения в пакете

Alexander Gerasiov-3
On Wed, 25 Dec 2019 11:17:58 +0200
Sohin Vyacheslav <[hidden email]> wrote:

> 25.12.2019 9:31, Alexander Gerasiov пишет:
> > On Tue, 24 Dec 2019 11:18:37 +0200
> > Sohin Vyacheslav <[hidden email]> wrote:  
>
> > Неправильно. При помощи dpkg-divert ты переименовываешь файл из
> > пакета в другое имя. Тогда при распаковке он не будет затирать
> > модифицированный тобой файл по оригинальному пути. Почитай
> > внимательно ман (особенно примеры в конце).
> >  
>
> Сделал так:
>
> 1. Переместил оригинальный /usr/bin/sa-compile
> 2. Выполнил:
>
> # dpkg-divert --add --rename --divert /usr/bin/sa-compile
> /usr/bin/sa-compile.new
> Добавляется "локальное отклонение /usr/bin/sa-compile.new в
> /usr/bin/compile"
Сделай наоборот:
dpkg-divert --add --rename --divert /usr/bin/sa-compile.orig /usr/bin/sa-compile




--
Best regards,
 Alexander Gerasiov

 Contacts:
 e-mail: [hidden email]  WWW: http://gerasiov.net  TG/Skype: gerasiov
 PGP fingerprint: 04B5 9D90 DF7C C2AB CD49  BAEA CA87 E9E8 2AAC 33F1

Reply | Threaded
Open this post in threaded view
|

Re: захолдить изменения в пакете

Sohin Vyacheslav-2


25.12.2019 11:37, Alexander Gerasiov пишет:
> On Wed, 25 Dec 2019 11:17:58 +0200

> Сделай наоборот:
> dpkg-divert --add --rename --divert /usr/bin/sa-compile.orig /usr/bin/sa-compile

Спасибо, получилось таким образом:
# dpkg-divert --rename --divert /root/sa-compile /usr/bin/sa-compile

и потом после обновления пакета sa-compile в /usr/bin осталась
модифицированная мной версия


--
BW,
Сохин Вячеслав