Разбираем и чиним установщик LMDE 2 Betsy

Правила форума
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Версия ОС вместе с разрядностью. Пример: LM 18.1 x64, LM Sarah x32 2. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 3. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 4. Суть. Желательно с выводом консоли, логами. 5. Скрин. Просьба указывать 1, 2 и 3 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
Chocobo
Сообщения: 6299
Зарегистрирован: 27 авг 2016, 19:57
Решено: 139
Откуда: НН
Благодарил (а): 445 раз
Поблагодарили: 1633 раза

Разбираем и чиним установщик LMDE 2 Betsy

Сообщение Chocobo » 13 сен 2017, 07:38

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

Хватит это терпеть! :write: Исправим досадную оплошность.

Сам установщик находится в пакете live-installer, а интересовать нас оттуда будут файлы
  • /usr/lib/live-installer/frontend/gtk_interface.py - для правки поведения в live-окружении
  • /usr/lib/live-installer/installer.py - дляисправления раскладок вносимых в устанавливаемую им систему
В файле gtk_interface.py используется конструкция вызова setxkbmap в тот момент, когда выбираем раскладки из списка
Найдем строки (651-654 в текущей версии)

Код: Выделить всё

if self.setup.keyboard_variant:
            os.system('setxkbmap -variant ' + self.setup.keyboard_variant)
        else:
            os.system('setxkbmap -layout ' + self.setup.keyboard_layout)
И просто добавим к опциям английскую раскладку:

Код: Выделить всё

if self.setup.keyboard_variant:
            os.system('setxkbmap -variant ' + self.setup.keyboard_variant)
        else:
            os.system('setxkbmap -layout ' + self.setup.keyboard_layout + ',us')
Половина дела сделана, теперь полечим возможность смены раскладки в mdm при первом входе в систему, берем installer.py, ищем (~463 строка)

Код: Выделить всё

print " --> Setting the keyboard"
        our_current += 1
        self.update_progress(total=our_total, current=our_current, message=_("Setting keyboard options"))
        consolefh = open("/target/etc/default/console-setup", "r")
        newconsolefh = open("/target/etc/default/console-setup.new", "w")
        for line in consolefh:
            line = line.rstrip("\r\n")
            if(line.startswith("XKBMODEL=")):
                newconsolefh.write("XKBMODEL=\"%s\"\n" % setup.keyboard_model)
            elif(line.startswith("XKBLAYOUT=")):
                newconsolefh.write("XKBLAYOUT=\"%s\"\n" % setup.keyboard_layout)
            elif(line.startswith("XKBVARIANT=") and setup.keyboard_variant is not None):
                newconsolefh.write("XKBVARIANT=\"%s\"\n" % setup.keyboard_variant)
            else:
                newconsolefh.write("%s\n" % line)
Аналогичным образом добавляем к парамерам английскую раскладку, а заодно и дополняем условную конструкцию строкой с XKBOPTIONS на переключение этих самых раскладок по Alt+Shift

Код: Выделить всё

        for line in consolefh:
            line = line.rstrip("\r\n")
            if(line.startswith("XKBMODEL=")):
                newconsolefh.write("XKBMODEL=\"%s\"\n" % setup.keyboard_model)
            elif(line.startswith("XKBLAYOUT=")):
                newconsolefh.write("XKBLAYOUT=\"%s,us\"\n" % setup.keyboard_layout)
            elif(line.startswith("XKBVARIANT=") and setup.keyboard_variant is not None):
                newconsolefh.write("XKBVARIANT=\"%s\"\n" % setup.keyboard_variant)
            elif(line.startswith("XKBOPTIONS=")):
                newconsolefh.write("XKBOPTIONS=grp:alt_shift_toggle")
            else:
                newconsolefh.write("%s\n" % line)
на этом багфикс окончен, если внести эти правки прямо в лайв - можно вызывать инсталлер, и ставить систему не опасаясь остаться без латиницы.
Если самим в коде ковыряться влом - для своих нужд я пересобрал дебпакет с уже внесенными правками, осталось только заменить им имеющийся.
live-installer.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

Mitai
Сообщения: 58
Зарегистрирован: 26 фев 2017, 12:46
Откуда: планета Земля
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Разбираем и чиним установщик LMDE 2 Betsy

Сообщение Mitai » 04 дек 2017, 06:18

не нашел такой папки, есть просто папка live но файлов в ней таких нет :sad:

Аватара пользователя

Автор темы
Chocobo
Сообщения: 6299
Зарегистрирован: 27 авг 2016, 19:57
Решено: 139
Откуда: НН
Благодарил (а): 445 раз
Поблагодарили: 1633 раза

Разбираем и чиним установщик LMDE 2 Betsy

Сообщение Chocobo » 04 дек 2017, 06:20

Mitai, в установленной системе его пакет сначала поставить надо, он удалется на этапе вычистки лишных пакетов еще в лайве.

Код: Выделить всё

▶ apt policy live-installer   
live-installer:
  Установлен: (отсутствует)
  Кандидат:   2017.01.15
  Таблица версий:
     2017.01.15 0
        500 http://mirror.yandex.ru/linuxmint-packages/ betsy/main amd64 Packages

Аватара пользователя

Mitai
Сообщения: 58
Зарегистрирован: 26 фев 2017, 12:46
Откуда: планета Земля
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Разбираем и чиним установщик LMDE 2 Betsy

Сообщение Mitai » 04 дек 2017, 08:23

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

Аватара пользователя

colonel
Сообщения: 636
Зарегистрирован: 18 дек 2016, 09:08
Решено: 11
Благодарил (а): 21 раз
Поблагодарили: 171 раз

Разбираем и чиним установщик LMDE 2 Betsy

Сообщение colonel » 04 дек 2017, 10:23

Chocobo писал(а):
13 сен 2017, 07:38
неприятная бага с инсталлером LMDE -....что может привести к невозможности входа под своей учеткой, из-за наличия только например русской раскладки.
сто лет в обед как разжовано как обойти разными способами
от ставить на наглицком - и логин с паролем на наглицком до правки конфигов в установленной системе до её запуска и ....
... будет ещё один .... может даже разрабы учтут (опробывать не опробывал как оно сработает не знаю но плюсую как минимум за попытку)
Chocobo писал(а):
13 сен 2017, 07:38
неприятная бага с инсталлером LMDE - а именно выбранная в процессе установки раскладка клавиатуры становися единственно доступной как в лайв-окружении, так и в устанавливаемой системе,...
в устанавливаемой системе... эт да ... какую выбрали для а и будет
что касаемо недоступности переключения на другой язык во время установки - брехня... всё там можно доустановить и переключать
"просто вы не умеете его готовить"(с) ...

и да, самый простой способ обойти эту "багу" для желающих ставить сразу русскую локаль (ессно если без шифрования система ставится) , не заморачиваясь ничем просто назначить при установке автовход и при первой загрузкесвежеустановленной системы настроить переключение раскладок ... а там уж и автовход или не неавто или с задержкой и пр. на усмотрение .
Последний раз редактировалось пользователем 1 colonel; всего редактировалось раз: 4
"Не ты выбираешь Linux, а Linux выбирает тебя"
(с)Себастьян Перейра, торговец чёрным деревом

Аватара пользователя

ravial555
Сообщения: 100
Зарегистрирован: 09 ноя 2016, 18:15
Решено: 1
Откуда: МО, Кубинка-Наро-Фоминск
Благодарил (а): 14 раз
Поблагодарили: 10 раз

Разбираем и чиним установщик LMDE 2 Betsy

Сообщение ravial555 » 04 дек 2017, 10:30

Почему не предложить исправление разработчикам?.. Чтобы качать уже поправленный дистрибутив..

Аватара пользователя

Автор темы
Chocobo
Сообщения: 6299
Зарегистрирован: 27 авг 2016, 19:57
Решено: 139
Откуда: НН
Благодарил (а): 445 раз
Поблагодарили: 1633 раза

Разбираем и чиним установщик LMDE 2 Betsy

Сообщение Chocobo » 04 дек 2017, 10:35

colonel писал(а):
04 дек 2017, 10:23
сто лет в обед как разжовано как обойти разными способами
И я их также знаю наизусть, ибо вредность и правда немолода :hoho:
Оно мне потребовалось на этапе создания сборки бетси, где при общей прочей локализации - обходные решения были бы явно лишними.
Поэтому для себя решил, что проще пересобрать дебпакет с фиксом заранее, все равно это была не единственная правка в этом установщике, в рамках той реализации :smile: Т.к. данное изменение касается общего его функционала - решил поделиться и здесь)
ravial555 писал(а):
04 дек 2017, 10:30
Почему не предложить исправление разработчикам?.. Чтобы качать уже поправленный дистрибутив..
пересборки бетси на новые лайв-образы все равно уже ждать не приходится, поэтому качать уже поправленный дистрибутив не выйдет. Известна эта шняга не первый год, и не только с русской раскладкой, а любой не латинницей
Ну и на часть из этого решения я сразу отправил им коммит, еще до того как тут обнародовал)

Вернуться в «Linux Mint Debian Edition»