Bug 33104 - Ошибка обновления
: Ошибка обновления
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/liblua5.1)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2017-02-11 23:20 by
Modified: 2017-02-14 22:25 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2017-02-11 23:20:38
При обновлении с p8 до Sisyphus Наблюдается сразу несколько проблем. Сначала не
удаляется lua5.1-alt-compat, который нужно удалить вручную, потом в системе
оказывается 2 версии данной библиотеки. Если удалить их обе, то установить
невозможно из-за ошибки в преинстал-скрипте.

# apt-get install liblua5.1
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие НОВЫЕ пакеты будут установлены:
  liblua5.1
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 1 не будет
обновлено.
Необходимо получить 0B/87,3kB архивов.
После распаковки потребуется дополнительно 195kB дискового пространства.
Совершаем изменения...
Подготовка...                           #################################
[100%]
remove lua5.1-alt-compat manually!
ошибка: %prein(liblua5.1-5.1.5-alt7.x86_64) scriptlet failed, exit status 1
ошибка: liblua5.1-5.1.5-alt7.x86_64: установить failed
E: Произошли ошибки при выполнении транзакции
[root@simply64 ~]# apt-get -f install 
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Исправление зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
  liblua5.1
Следующие НОВЫЕ пакеты будут установлены:
  liblua5.1
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 1 не будет
обновлено.
Необходимо получить 0B/87,3kB архивов.
После распаковки потребуется дополнительно 195kB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения...
Подготовка...                           #################################
[100%]
remove lua5.1-alt-compat manually!
ошибка: %prein(liblua5.1-5.1.5-alt7.x86_64) scriptlet failed, exit status 1
ошибка: liblua5.1-5.1.5-alt7.x86_64: установить failed
E: Произошли ошибки при выполнении транзакции

Подробную информацию можно найти на форуме:
https://forum.altlinux.org/index.php?topic=38295.0
------- Comment #1 From 2017-02-11 23:43:06 -------
task #178041: added #100: build tag "5.1.5-alt8" from
/people/viy/packages/lua5.1.git
------- Comment #2 From 2017-02-11 23:44:46 -------
попробуйте, пожалуйста.
------- Comment #3 From 2017-02-12 15:27:48 -------
Еще не пробовал, но посмотрел новый spec. Есть замечание.

%pre -n lib%{name}
# ----------- begin update from old lua5 to lua5.1 ----
if [ -L %_libdir/lua/5.1 ]; then
    echo "removing lua5.1-alt-compat symlink..."
    rm -f %_libdir/lua/5.1
    if [ -d %_libdir/lua5 ] && [ ! -e %_libdir/lua/5.1 ]; then
        mkdir -p %_libdir/lua
        mv %_libdir/lua5 %_libdir/lua/5.1
    fi
fi
# ----------- end update from old lua5 to lua5.1 ----

У Вас сначала идет проверка, есть ли ссылка %_libdir/lua/5.1, затем, если есть,
ее удаление, и затем во вложенном условии снова проверка, есть ли файл/каталог
%_libdir/lua/5.1. В случае, если первое условие не выполнится, то до
> if [ -d %_libdir/lua5 ] && [ ! -e %_libdir/lua/5.1 ]; then
дело не дойдет. А если 
> if [ -L %_libdir/lua/5.1 ]; 
будет истинно, то после
> rm -f %_libdir/lua/5.1
второе тоже станет истинно.

Предлагаю вынести вложенный if наружу, т.е. записать вот в таком виде:

%pre -n lib%{name}
# ----------- begin update from old lua5 to lua5.1 ----
if [ -L %_libdir/lua/5.1 ]; then
    echo "removing lua5.1-alt-compat symlink..."
    rm -f %_libdir/lua/5.1
fi
if [ -d %_libdir/lua5 ] && [ ! -e %_libdir/lua/5.1 ]; then
    mkdir -p %_libdir/lua
    mv %_libdir/lua5 %_libdir/lua/5.1
fi
# ----------- end update from old lua5 to lua5.1 ----
------- Comment #4 From 2017-02-12 17:58:10 -------
(In reply to comment #3)
> Еще не пробовал, но посмотрел новый spec. Есть замечание.

> У Вас сначала идет проверка, 
> if [ -L %_libdir/lua/5.1 ]; then
>     if [ -d %_libdir/lua5 ] && [ ! -e %_libdir/lua/5.1 ]; then
[...]

Да, избыточное. Поправлю, если будет новый релиз.

> Предлагаю вынести вложенный if наружу, т.е. записать вот в таком виде:

Так не хочу, хочу только когда был найден симлинк.
в остальных случаях лучше не трогать.
------- Comment #5 From 2017-02-12 18:45:15 -------
(In reply to comment #4)
> (In reply to comment #3)

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

Если файлы из lua5 в lua5.1 переносить не обязательно, то Вы правы.
------- Comment #6 From 2017-02-12 18:58:12 -------
(In reply to comment #5)
> (In reply to comment #4)
> > (In reply to comment #3)
> 
> > > Предлагаю вынести вложенный if наружу, т.е. записать вот в таком виде:
> > 
> > Так не хочу, хочу только когда был найден симлинк.
> > в остальных случаях лучше не трогать.
> 
> Если файлы из lua5 в lua5.1 переносить не обязательно, то Вы правы.

да. Все пакеты, которые там держали что-либо, будут пересобраны.
------- Comment #7 From 2017-02-14 22:25:50 -------
Проверил.
Обновление с p8 до Сизифа проходит корректно.

Меняю на "FIXED"