Bug 5685

Summary: Разработать скрипт установки wine на Ubuntu
Product: WINE@Etersoft Reporter: Vitaly Lipatov <lav>
Component: Интеграция в хост-системуAssignee: Денис Баранов <baraka>
Status: CLOSED FIXED QA Contact: Денис Баранов <baraka>
Severity: critical    
Priority: P2 CC: baraka, djam5, dtr, kondratyuk, mid, night, sonner
Version: 1.0.12   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 6586    
Bug Blocks: 8500    
Deadline: 2011-09-01   
Attachments: скрипт установки wine@etersoft под убунту.
wineinstall

Description Vitaly Lipatov 2010-06-23 19:02:22 MSD
Предлагаю разработать скрипт wine-install, который будет скачиваться вместе с пакетами и полностью выполнять всю работу по удалению старых пакетов и установке наших новых, со всеми проверками, удалением ~/.wine и пр., что у нас вписано в инструкцию. Это поможет при общении с теми пользователями, которые не имеют базовых навыков.
Comment 1 Денис Баранов 2010-06-27 14:02:24 MSD
*** Bug 5686 has been marked as a duplicate of this bug. ***
Comment 2 Денис Баранов 2010-06-27 14:04:41 MSD
Лучше даже наверное не просто скрипт, а с графической оболочкой.
Осталось определить откуда он будет скачивать пакеты и лицензию, или этот скрипт будет генерироваться каждый раз когда происходит заказ?
Comment 3 Vitaly Lipatov 2010-06-28 04:56:55 MSD
Всё скачивать будет клиент.
Граф. оболочка потом.
Comment 4 Shestakov Dmitriy 2010-07-24 22:49:20 MSD
Created attachment 1773 [details]
скрипт установки wine@etersoft под убунту.
Comment 5 Shestakov Dmitriy 2010-07-26 09:51:20 MSD
Comment on attachment 1773 [details]
скрипт установки wine@etersoft под убунту.

Все переменные "говорящие". Функции описаны. скрипт короткий- не вижу смысла документировать каждую строчку.
Comment 6 Денис Баранов 2010-12-01 18:48:48 MSK
Проверь скриптик.
Comment 7 Jemoytel Sergey 2010-12-01 22:58:45 MSK
Нет ли риска уже настроенную хост систему удалить вместе с ~/.wine?
Comment 8 Andrey Vusik 2010-12-02 21:19:41 MSK
1) Не удаляется стандартный wine. (...57 строка, gawk не найдена...)
2) Не помешало бы, перед удалением .wine делать wineserver -k
3) Напоминаю про текстовую переменную, которую надо завести...
4) И еще такой нереальный случай. Если запустить скрипт из под рута, а потом от юзера - то не удастся переписать временный файл win-inst

Так вроде как все..
Comment 9 Shestakov Dmitriy 2011-01-25 23:20:27 MSK
Переделал скрипт. Сделал читаемым. Изменил внутреннюю логику так, что его можно дополнять функционалом не переписывая основную часть. 
Отлаживаю.
Comment 10 Shestakov Dmitriy 2011-01-26 20:59:17 MSK
Отлаживал скрипт.
Comment 11 Shestakov Dmitriy 2011-01-27 14:49:21 MSK
По умолчанию скрипт переносит существующий ~/.wine в ~/wine.backup, это поведение можно изменить опциями, которые описаны во встроенной документации.
Скрипт обрабатывает аргументы командной строки.

Запуск скрипта необходимо производить от имени обычного пользователя, в ходе выполнения попросит пароль для sudo.

Если запускать скрипт через sudo, тогда не будет создан .wine, потому что все исполняемые в скрипте команды выполняются от имени root'а, в скрипте можно сделать проверку этой ситуации или сделать `su -` обратно в пользователя для создания .wine. Надо ли вообще реализовывать.

скрипт не может обработать такую ситуацию.
Пользователь запускает скрипт, пакет начинает устанавливаться. В ходе установки пользователь нажимает `ctrl+c`, выполнение скрипта останавливается. Пакет установился но не правильно. Для того чтобы удалить этот пакет, система требует сначала его установить еще раз, и только потом удалить.
Чисто теоретически(вероятно) можно сделать проверку такой ситуации, нужно ли это реализовать?

Вероятно надо добавить опцию только удаления wine/WINE@Etersoft.


Имена пакетов хранятся в переменной LIST_OF_PACKAGES.
Я проверял установку на 2-х пакетах, wine* и wine-local*. Нужна ли установка других пакетов "из коробки"? По хорошему проверять бы наличие микрософтовских шрифтов в системе.
Comment 12 Shestakov Dmitriy 2011-01-27 14:52:51 MSK
Created attachment 2108 [details]
wineinstall

Как его людям отгружать будем?
Comment 13 Денис Баранов 2011-03-03 13:12:32 MSK
(В ответ на comment #12)
> Created attachment 2108 [details]
> wineinstall
> 
> Как его людям отгружать будем?

Напиши пожалуйста инструкцию по пунктам как использовать скрипт. Я конечно что то понял но не все. Нужно подробно (где и как его запускать)
Comment 14 Shestakov Dmitriy 2011-03-21 19:19:18 MSK
В самом скрипте в переменную LIST_OF_PACKAGES помещается список пакетов, которые надо установить. Это сделано для того, чтобы клиент не мог поставить пакеты, которые несовместимы друг с другом, с другой стороны в таком виде придется зашивать названия пакетов при отгрузке. Можно сделать так, чтобы устанавливались все пакеты в текущем каталоге, но у пользователей очень часто бывает так, что в каталоге много пакетов набросано, в таком случае можно сузить круг подозреваемых проверяя имена пакетов на вхождение подстроки wine. Надо подумать как удобнее будет клиенту.

./wineinstall --help
Usage: ./wineinstall [options]

-h, --help            display this help message
-n, --new            remove old ~/.wine and set new wine enviroment
-k, --keep            keep and replace old ~/.wine to ~/wine.backup

по умолчанию опция -n включенна, то есть при запуске скрипта, после проверки наличия пакетов и их установки происходит удаление каталога ~/.wine.
Опция -k при установке указывает на то, что при установке не надо удалять ~/.wine и перемещяет его в ~/wine.backup.

мне кажется, что ничего нового я не написал.
Comment 15 Shestakov Dmitriy 2011-03-21 19:23:27 MSK
Если скрипт будет отгружаться отдельно от пакетов, а скорее всего так оно и будет, тогда надо сделать так чтобы устанавливались пакеты из текущего каталога в названии которых присутствует слово wine.
Comment 16 Константин Кондратюк 2011-04-06 19:36:27 MSK
(В ответ на comment #14)
> В самом скрипте в переменную LIST_OF_PACKAGES помещается список пакетов,
> которые надо установить. Это сделано для того, чтобы клиент не мог поставить
> пакеты, которые несовместимы друг с другом, с другой стороны в таком виде
> придется зашивать названия пакетов при отгрузке. Можно сделать так, чтобы
> устанавливались все пакеты в текущем каталоге, но у пользователей очень часто
> бывает так, что в каталоге много пакетов набросано, в таком случае можно сузить
> круг подозреваемых проверяя имена пакетов на вхождение подстроки wine. Надо
> подумать как удобнее будет клиенту.

А нельзя формировать LIST_OF_PACKAGES на лету, производя отгрузку? Чтобы в него попадали все пакеты, которые складываются в директорию для скачивания.


(В ответ на comment #15)
> Если скрипт будет отгружаться отдельно от пакетов, а скорее всего так оно и
> будет, тогда надо сделать так чтобы устанавливались пакеты из текущего каталога
> в названии которых присутствует слово wine.

Это логично, только тогда маска будет wine-etersoft-. Опять же, с помощью LIST_OF_PACKAGES это идея замещается на идею работы со списком.
Comment 17 Денис Баранов 2011-04-22 20:15:28 MSK
Может лучше в скрипт зашивать ссылки на пакеты для скачивания и самим скачивать, а только потом устанавливать?
Comment 18 Shestakov Dmitriy 2011-04-25 14:24:34 MSK
переменная LIST_OF_PACKAGES была заведена для того, чтобы скрипт гарантированно работал. НА мой взгляд в скрипт лучше зашивать конкретные имена пакетов(ссылки для скачивания оных), чтобы установка проходила в любом случае, так как не редки случае, когда клиент скачивает куча разных пакетов(наших пакетов) в одну директорию, что будет если он запустит скрипт установки в такой директории совсем не понятно(хотя dpkg/rpm/apt-get/yum должны делать какую-то сортировку, если пакеты заданы паттерном).
Comment 19 Shestakov Dmitriy 2011-04-25 14:26:37 MSK
переменная LIST_OF_PACKAGES была заведена для того, чтобы скрипт гарантированно работал. НА мой взгляд в скрипт лучше зашивать конкретные имена пакетов(ссылки для скачивания оных), чтобы установка проходила в любом случае, так как не редки случае, когда клиент скачивает куча разных пакетов(наших пакетов) в одну директорию, что будет если он запустит скрипт установки в такой директории совсем не понятно(хотя dpkg/rpm/apt-get/yum должны делать какую-то сортировку, если пакеты заданы паттерном).
Comment 20 Shestakov Dmitriy 2011-04-25 14:26:46 MSK
переменная LIST_OF_PACKAGES была заведена для того, чтобы скрипт гарантированно работал. НА мой взгляд в скрипт лучше зашивать конкретные имена пакетов(ссылки для скачивания оных), чтобы установка проходила в любом случае, так как не редки случае, когда клиент скачивает куча разных пакетов(наших пакетов) в одну директорию, что будет если он запустит скрипт установки в такой директории совсем не понятно(хотя dpkg/rpm/apt-get/yum должны делать какую-то сортировку, если пакеты заданы паттерном).
Comment 21 Shestakov Dmitriy 2011-09-16 16:12:15 MSK
Сводная таблица, в которой указано куда включен корневой сертификат cacert.org 
http://wiki.cacert.org/InclusionStatus, к сожалению не густо.
Comment 22 Shestakov Dmitriy 2011-09-16 16:13:23 MSK
(В ответ на comment #21)
> Сводная таблица, в которой указано куда включен корневой сертификат cacert.org 
> http://wiki.cacert.org/InclusionStatus, к сожалению не густо.

прошу прощения, ошибся окошком.
Comment 23 Денис Баранов 2012-09-19 21:22:36 MSK
Откладываю.
Скрипт держим в уме (что он есть).
Но скорее всего будем использовать epm.