Правильная установка дополнительных программ

Вопрос из серии: “Хочу всё знать”.
Через “Установка, удаление программ” установил на флешку с MagOS “inxi”, проверил — работает.
Втыкаю флешку в другой комп, пишет: “Команда не найдена” . Возвращаюсь к первому компу. Через “Создание модулей” делаю “inxi.xzm” в папке /mnt/livedata/MagOS-Data/modules/ бегу с флешкой к второму компу, гружусь — работает, но в “Установка, удаление программ” этот пакет без “птички” .
Опять возвращаюсь к 1-му компу , Новый модуль при загрузке прописывается, пакет стоит. С мыслью:“Зачем мне он нужен, если есть отдельный модуль” удаляю. И “ннатебе”:“bash: inxi: команда не найдена”.
Но на 2-м компе команда всё-равно запускается.
Конечно, я вернул пакет, но гложет непонимание: Почему на одной машине достаточно модуля. а на другой — еще и программа нужна?

Когда вы собираете модуль командой urpm2xzm в модуле не сохраняется информация об установленных пакетах. Это сделано намерянно, чтоб модули были независимыми друг от друга и при удалении одного модуля не ломалась работа остальных.
Теперь по удалению. Тут несколько вариантов того что может произойти. Допустим вы создаете файл в какой-то системной папке, реально он окажется в /memory/changes/папка и если его удалить, он будет удален. То есть пока все как на обычной системе. А вот если файл находился в модуле, то при его удалении в /memory/changes/папка будет создан теневой файл .wh.файл. То есть в системе файл будет не виден, но в модуле как был так и останется, из модуля же нельзя удалить. То есть для чистого режима достаточно перегрузить и файлы появятся снова. А вот с сохранениями распутать то что вы напутали будет сложнее. Нужно вычистить теневые файлы. Если у вас там только один пакет можно сделать так. Загрузить с uird.noload+=имя-модуля, а затем установить этот пакет и тут же его удалить. Позже грузиться уже с модулем.
Надеюсь я правильно понял что у вас произошло.

1 Симпатия

По умолчанию, изменения сохраняются через механизм machines:
Если установить программу средствами urpmi или через “Установка и удаление программ”, то эта программа будет в списке и будет работать только на этой конкретной машине.
Если сделать модуль через urpm2xzm то программа будет работать на всех машинах, но её не будет в списке т.к. база rpm не поддерживает модульность. Этим методом вы не вносите ничего нового в файлы изменений для машин, а как-бы расширяете базовый состав дистрибутива.
Если сделать модуль а потом удалить программу, то для этой машины её не будет, а на других она будет. Т.к. информация об удалении программ также записывается в модуль изменений для этой машины.

В вашем случае придётся снова поставить пакет через “Установку и удаление программ” на той машине, где удаляли, несмотря на то что есть модуль с этой программой.

Тогда пакет окажется и в модуле сделанном urpm2xzm и в модуле с сохранениями. По этому и предлагал установить и удалить. То есть сперва тени в ченджез будут заменены файлами, а затем при удалении пакета удалятся сами файлы. В теории :slight_smile: Реально так делать не пробовал.

1 Симпатия

Да, 400Кбайт не проблема, я думаю.

Да, если загрузиться без модуля, поставить и удалить пакет, то тени должны удалиться. При следующей загрузке модуль должен работать и на этой машине.

Мы предложили 2 варианта, попроще и посложнее, пусть пользователь сам выбирает.

1 Симпатия

Ну да, не проблема :slightly_smiling_face:.Это всё мой перфекционизм…
Так, пока, у меня и стоит.

Попробую на практике :slightly_smiling_face:

Ага! И на практике сработало!
@MikhailZ, @betcher Спасибо за помощь!