Показать сообщение отдельно

Старый 02.08.2010, 15:02   #36
Эксперт
 
resident вне форума
Регистрация: 23.10.2009
Адрес: Россия
Сообщений: 443
По умолчанию

Вопрос
Как управлять программами на дриме?


Ответ
Ответ не так прост. Попробую поэкспериментировать и описать, то в чем ничего не понимаю. Далее все IMHO, придуманное только что, структуры никакой - чистый эксперимент
(Использую Gemini5.1, Mgcamd1.35a, Putty, команды лучше набивать ручками, а не копировать отсюда. Linux различает большие и мелкие буквы, так что будьте внимательнее).

В имидже есть ядро, скрипты и программы.
Информацию о запущенных процессах можно увидеть командой
ps

О том, сколько процессы жрут процессорного времени и памяти (в интерактивном виде - обновляется в реальном времени через заданный интервал) можно увидеть командой
top

Здесь, например, видно запущенный эмулятор mgcamd_1.35a или SSH-сервер dropbear, к которому я подключился с помощью Putty по telnet.
Но что в той команде, что в этой не будет видно скриптов (и наверное еще чего-то), работающих на уровне ядра.

Программы (прям как в Винде) компилируются под определенное ядро определенного устройства. Так что часто бывает, что старые программы не совместимы с новым ядром (например Pauli) - значит они использовали измененные в новом ядре библиотеки или еще что-то.

Программы могут быть (попадают на Дрим) в виде установочных файлов ipk, архивов всяческих типа tar и т.п. или вообще уже распакованным набором файлов (у нас на форуме, например, так храниться качалка transmission).

Для установки программ в архивах, нужно распаковать эти архивы на дриме и забросить их содержимое куда гласит инструкция писателя программы.
Тоже с уже готовыми наборами файлов.
Распаковывать нужно в самом дриме, встроенными архиваторами, используя telnet.

А вот о файлах ipk следует сказать отдельно.
Это самоустанавливающиеся файлы (типа инсталляторов в Винде), которые хранят в себе файлы программы и то куда их класть и что настроить в системе. Они также хранят информацию, необходимую для удаления программы.
И здесь также как в Винде (Панель управления -> Программы и компоненты) есть глобальный менеджер программ.
Это своего рода программа, управляющая программами, скомпилированными для определенного ядра, определенного устройства, ну я уже грил.
Называется она ipkg и уже изначально установлена в имидже.
Эта программа не только управляет программами на дриме, но и имеет связь с сервером создателей в интернете, т.е. имеет доступ к базе программ на их сайте.
Получить информацию об этой программе можно командой
ipkg --help

Что же я тут вижу?
Для начала попробую обновить список доступных программ (в базе в интернете), введя команду:
ipkg update

Что-то скачалось, наверное все нормуль
Рекомендую это сделать, удалиться всякий шлам, не относящийся к данному ядру Дрим800.

Теперь попробую обновить уже установленные у меня программы, командой
ipkg upgrade

Ничего не обновилось, естественно - стоит же новейший имидж.

Теперь посмотрю список уже установленных у меня программ командой:
ipkg list-installed

Иш ты, штук 300 установлено.
Здесь наверное нужно сказать о плагинах? В моем понятии - плагин - это программа, которой я могу управлять пультом на телеке (вижу в меню дрима) А так это все те же программы.

Теперь посмотрю, что доступно для установки из базы в интернете командой:
ipkg list

Ебическая сила! Да их там тысячи.
Хм... Что же делать, как что-то найти там?

Здесь стоит отдельно сказать о групповых символах.
Групповые символы позволяют задать набор файлов со схожими именами.
Есть несколько таких символов: * ? [] [^] [!]
* - это любой набор символов, в том числе и пустая строка;
? - это любой одиночный символ;
остальные мне сейчас не очень нужны.
Пример:
a* - это набор из файлов, чьи имена начинаются на a

Зачем всё это надо? Бывают очень большие наборы (и я в этом убедился ) и чтоб в них хоть что-то найти нужное, приходиться пользоваться групповыми символами.
Например, попробую найти на сервере плагин, который будет выключать Дрим после загрузки. Название точно не знаю, но оно должно содержать буквы standby, ввожу команду:
ipkg list *standby*

В ответ вижу, что найден нужный мне плагин:
enigma2-plugin-extensions-startuptostandby - experimental-cvs20100721-r2 - set enigma2 to standby-mode after startup

Попробую установить его командой ipkg install <имя сборки>:
ipkg install enigma2-plugin-extensions-startuptostandby - experimental-cvs20100721-r2

Все скачалось и настроилось, но выдало какие-то ошибки...

Теперь попробую его найти в установленных программах командой (опять использую групповой символ * ):
ipkg list-installed *standby*

Вижу! Установлен Теперь проверю: вижу ли я его с пульта на телеке, для этого перегружу GUI.
Да, он там есть.

Далее попробую удалить его. Сначала опять найду командой:
ipkg list-installed *standby*

И удалю, используя не длинное название, а групповой символ, командой ipkg remove <имя сборки>:
ipkg remove *standby*

Удален
Теперь опять проверю, точно ли удален? Команда:
ipkg list-installed *standby*

Нет ничего, значит удален. Перегружаю GUI и убеждаюсь с пульта, что в меню Плагины его нет.

Но вот я хочу поделиться этим плагином с форумчанами. Что же делать?
В хелпе есть функция - скачать в текущую директорию!
Тогда сначала зайду в любую директорию, например зайду во временную, командой:
cd /tmp/

А теперь попробую скачать плагин командой ipkg download <имя сборки>:
ipkg download *standby*

Не хочет, грит, что не может найти такой плагин, т.е. при загрузке групповые символы не катят.
Хорошо, введу полное название для загрузки:
ipkg download enigma2-plugin-extensions-startuptostandby - experimental-cvs20100721-r2

Грит скачал.
Посмотрю содержимое директории командой:
ls

Среди файлов вижу нужный мне.
Захожу на Дрим по FTP программой Dreambox Control Center и скачиваю на комп этот плагин.
Теперь я могу заархивировать его и отправить на форум.

А вот теперь возникает вопрос: а как установить такой, скачанный с форума, файл?
Нужно закинуть его прогой Dreambox Control Center в любую папку, например, в /tmp
И далее есть два варианта:
1) Пультом выбрать файл плагина в BP -> File Manager -> /tmp/......ipk -> и нажать инсталл (зеленая кнопка). Если GUI сам не ушел в перегруз - перегрузить GUI.
2) Опять той же командой ipkg install <имя сборки>, только в имени указать путь и расширение.
Т.е. для данного примера ввести команду с указанием пути /tmp/ и расширения ipk:
ipkg install /tmp/enigma2-plugin-extensions-startuptostandby_experimental-cvs20100721-r2_dm800.ipk

Или проще установить все из директории /tmp, умея пользоваться групповым символом, командой:
ipkg install /tmp/*ipk

И перегрузить GUI.
__________________
DM800HD BlackHole 3.2.2B --- ASUS WL-500gP_V2 --- QNAP TS-119


Последний раз редактировалось lagush; 02.08.2010 в 22:13.