Репозиторий модификаций LSMI

Решил продолжить разработку LiveStreet Mod Installer. Как и обещал, исправил все найденные ошибки в самой системе, доработал некоторые «красивости» с оформлением инсталляции по пожеланиям avadim'а (перед непосредственный установкой, автор может показать свою поэму в форме, например, лицензии, потом собственноручно пририсовать текст к кнопкам и ловить профит). Ну и начал работу над собственным репозиторием инсталлятора, как тоже когда-то обещал. Уже готова рабочая версия, в данный момент обкатываю. Те, кто хочет чем-либо помочь (в основном — наполнением), отпишитесь здесь пожалуйста. Ну и можете написать свои предложения здесь же. Как всегда всё Open Source :)

Скриншот работающей системы:


UPD: Совсем забыл объяснить суть)) Итак, чтобы установить модификацию из репозитория, необходимо кликнуть зелёную стрелочку напротив интересующего нас пакета, после чего ваш сервер собственноручно в фоне скачает пакет с моего сервера :) и скопирует в папку uploads инсталлятора. Для вас же он покажет дополнительную, уже полную информацию (конкретно от автора) и даст, собственно, установить модификацию. Итого 2 кнопки.

UPD2: Сейчас формирование HTML ведется на стороне моего сервера (вы получаете уже готовый код), что пока особо не мешает. В будущем всё же думаю формировать HTML Яваскриптом из XML…

UPD3: www.youtube.com/watch?v=19PSxKqFma4

71 комментарий

avatar
Вот это да! Т.е. я так понял что эта штука упрощает процедуру скачивания и установки модулей и пр. дополнений?
  • ALF
  • +2
avatar
Да, я отписал в апдейте суть… что-то совсем забыл написать главное :)
avatar
Скоро LiveStreet станет по комфортности среди CMS такой же как и Ubunta среди линуксов ;)
Автору спасибо за старания! Очень здорово!
avatar
Вот это Вы в точку сказали, Уважаемый omeh2003! Мне тоже очень понравилось, то что используются такие солидные определения как «Репозиторий» и «Управление пакетами». Собственно это так по сути и есть. По клику система сама коннектится к репозиторию, сама скачивает, и сама устанавливает выбранные пакеты.
avatar
У меня самого порой складывается ощущение, что ты это я, а я это ты))

зы. просто я люблю линукс ^_^
avatar
Все там будем :)
В смысле все рано или поздно полюбят линукс и открытый код, ибо в них истина :)
avatar
«Все любят редких животных, а вот наших туристов в Конго любят не все» (с) х/ф День радио
avatar
Значит ты тоже пришелец с далёких звёзд! Я тебя узнал, ты в белой футболке!

avatar
По логике система похоже на сайт с модификациями Firefox. И, скорее всего в будущем, если потребуется, надо будет как-то проверять всё на валидность. Возможно сравнивать хеши файлов со вторым сервером («голым», хранящим только хеши модификаций).
avatar
Спасибо тебе Максим за твой труд. Вот честное слово, такой функционал жизненно необходим LiveStreet.
avatar
avatar
Отличная вещь! Почти полноценный менеджер пакетов :)
avatar
Зачем тему-то создавал… Кто поможет с наполнением?
avatar
Мои модули можно попробовать. Последние билды и у Админпанели и у Поиска сопровождаются xml-описаниями в твоей спецификации. Правда, старой версии. Только скажу честно: в полевых условиях не проверял, тут надо бы «чистый» ЛС-сайт, чтоб получился чистый эксперимент.

Я тока не до конца догнал: «Репозитарий» — это подразумевается отдельный софт, который хранит у себя модули ЛС и отдает их по запросу МодИнсталлятора?
avatar
Ну напиши XML под новую версию и запакуй в zip. Там по сути тебе надо будет только файлы пораскидать.

«Репозиторий» — это веб-сервис. LSMI подключается к серверу в Интернет, по запросу которого тот выдает страницу, скрипт переформировывает код полученный страницы под себя уже на вашем сервере (совсем чуть-чуть, специально делал чтобы все изменения можно было проводить на сервере репозитория не затрагивая каждый раз код LSMI). По сути мой сервер выдает почти полностью сформированную страницу, которую LSMI «инклюдит» и создает внутреннюю перелинковку. У обычного пользователя складывается ощущение, что всё работает прямо на его сервере и никуда не выходит. Вприцнипе это логично, ведь при работе ссылки не выходят за пределы вашего домена.
По остальному есть видео.

Как пример, установка пакета происходит со ссылке типа mydomain.com/mod/install/651351
avatar
И ещё попрошу отписаться минусующих, которые всеми силами не хотят попадания темы на главную. Что, совсем так плохо нынче на Руси?
avatar
Забей на них. Тем более, что только что топик вышел на главную.
avatar
Да просто заметил, только +8, через пять минут минусуют)) И так уже несколько раз. Хоть я и знаю, что они не отзовутся, ну хоть как-то психологически надовить надо :)
avatar
Психология людей :)

пс сам не минусовал)) предположение только)
avatar
Наверное, у вас появились завистники)
avatar
Тема уже разжевывалась хз сколько)) Впринципе да, я так тоже думаю :)
avatar
Вот. По крайней мере один с двумя регами, либо три)))
avatar
Они размножаются :)
avatar
Макс, я просто считаю, что разработчиков здесь меньшинство. Поэтому темы для разработчиков и «передовиков мысли» не очень в почете. В основном все привыкли — CMS это когда скачал, тыкнул пару ссылок и все работает, не надо ни в чем разбираться. А тут другая ситуация.

Уверен, LS тоже скоро станет подобной гибкой системой. Но тогда тоже будет разделение на два клана — на разработчиков модулей и их юзеров. Посмотреть на Wordpress — общение между авторами плагина и пользователя всегда сводятся к! я ошибку нашел!" или «блин, у меня не работает — ты виноват».

Такая уж наша психология :)
avatar
Одно дело уважать разработчика что он, собственно, разработчик, а другое — личная неприязнь. И вообще не вижу смысла минусовать технические посты как таковые, этим вы гробите всё развитие.
Я вообще считаю, что чем больше именно разработчиков, тем лучше для проекта в целом, а пользователи всегда придут, ели будут разработчики. А вот без разработчиков никогда не будет и пользователей. Такие дела.
avatar
:) Я как разработчик тебя прекрасно понимаю. Сам написал два технических поста, получил минуса. В обществе всегда много несправедливостей и непонятностей.

Стремимся сделать интернет социальным — получаем вместе с позитивом, весь социо-негатив.
avatar
да уж… людям добро делают. а они…
avatar
Как говорится "- Это мегокруто!!!"
avatar
И меня опять осенило)
А почему бы не сделать мета-пакеты? Кто работал под Linux поймут. Т.е. создавать некий пакет, который за собой тянет ещё несколько, по сути связывающий несколько модификаций в одну связку. Как пример, делаем из lS сайт-галерею, устанавливая разом модификации профилей, систему галерей, голосования, блоки и т.д. и т.п.
В этом случае будет дико упрощаться перенос конфигураций, ящитаю.
комментарий был удален
avatar
Это слишком сложный функционал. LiveStreet еще до него не вырос. Так что зря потратишь время. Через какое кол-во версий возможно реализация мета-пакетов и понадобится. Но пока имхо опережает время.
Насчет минусующих — так тут школьнеГов куча, они всегда когда пишут про вещи которые их интеллекту недоступны — ставят минусы. Так что воспринимай минусы как признание :)
Кстати, ядро будет так обновляться?
avatar
Ядро чего? LS? Думаю да, с выходом новых версий будет автообновление самого LS, а пока ничего и не выпускается :)
Если про саму систему инсталлятора, то тоже думаю будет сам себя обновлять, но не сейчас, в следующей версии думаю.
avatar
Я про «то» и «то» :) То есть можно будет из админки обновить Лайвстрит до новой версии, плагинчики апгрейдить. Это конечно из другой оперы, но еще было бы здорово сделать возможность вносить изменения в код движка и плагинов, что бы при обновлении про них не забыть. Ну например добавил своего функционала в плагин, а он через полгода обновился, а ты уже забыл что в нем изменил…
avatar
Пишите «свой» инсталлятор?
avatar
Пока нет. Нету отраслевой необходимости. Но возможно это может пригодится. Поэтому с особым вниманием посмотрю за вашей разработкой :) Может что нибудь помочь смогу, хотя я не ахти какой программер :)
avatar
Я имею ввиду в вашем случае напишите свой инсталлятор и пользуйтесь им))
avatar
В смысле файл-инсталлятор
avatar
Да я понял :) Я просто сразу решил ответить на вопросы которые могут появится :)
avatar
А вообще если хотите помочь — делайте файлы-инсталляторы. И вообще я думаю указывать рядом с автором «сборщика». Думаю всё же придётся это делать.
avatar
Это очень хорошая идея! Потому что я сейчас работаю над двумя модулями, их можно использовать взаимосвязано, а можно по отдельности. Для связи нужно вносить в каждый небольшие изменения. Вот и тружусь над созданием инсталятора, который при установке модуля А проверял наличие модуля Б и при указании пользователя вносил бы в него изменения. Оказывается, это не такая уж тривиальная задача, как может показаться с первого взгляда.
avatar
Ладно, как накипит, так сделаю. Поставлю на повестку :)
avatar
А что-то навскидку кажется, что это не очень сложно. Для этого требуется добавить в инсталлятор еще пару тегов, напр., так:
<needed>
  <module name="aaa" />
  <module name="bbb" version="1.3.6" />
  <module name="ccc" version="2.4.5" compare="eq" />
</needed>
Это будет означать, что для установки пакета требуются модули aaa (любая версия), bbb (версия не ниже 1.3.6) и ccc (обязательно версия 2.4.5)

А дальше могут идти обычные команды, которые у тебя уже описаны. Система проверяет, стоят ли эти модули, если нет, то предлагает поставить. И после установки, если надо, команды выполняет.

Тут опять вернусь к тому, что все же, на мой взгляд, стоит разделять заголовок от блока исполняемых команд. Да, и глянул код еще раз — у тебя все же команды группами выполняются:
* SQL запрос модификации
* Копирование файлов
* Удаление файлов
* Операции с файлами
Что не очень хорошо. Нужно, чтоб строго в том порядке, как в файле заданы. Например:
* Удаление файлов (1)
* Копирование файла (1, 2)
* SQL запрос модификации (1)
* Удаление файлов (2)
* Операции с файлами (1)
* SQL запрос модификации (2)
Ну, в общем ты понял.
avatar
Я знаю как реализоать мета-пакеты :)

По поводу очерёдности выполнения: я до сих пор не могу логически понять суть, почему именно поочереди, а не как-то иначе, ведь всё выполняется «скопом». Да и сами подумайте как в коде эта «очерёдность» будет выполняться… я представил, спасибо))
avatar
Также предлагаю добавить конструкцию

<require>
    <module name="aaa" version="1.0.0">
        <onExists>
                Тут какие-то действия
        </onExists>        
        <notExists>
                Тут какие-то действия
        </notExists>
    </module>
</require>
avatar
maybe, но пока не горит.
avatar
Кстати, Админпанель у меня — это уже пакет из трех модулей: собственно Admin, Language и Adminlogs. Причем если для Админпанели нужны два других модуля, то сами они могут использовать независимо от Админпанели и друг от друга.
avatar
Ну распространяются они в одном пакете?
avatar
Щас — да. Хотя можно было б разбить на отдельные модули и использовать сами по себе. Но тогда мне надо в Админпанели надо установку более навороченную делать, с проверками и проч. А нафига, если ты уже почти все сделал? ;)
avatar
Суй пока всё в один пакет, а потом додумаем.
avatar
Еще один момент. Как быть с платными модулями? Не учитывать их — неправильно. Они такая же часть лайвстрита, как и остальные.
avatar
Пока никак. Далее если разработчики будут заинтересованы, можно будет выделить рздел.
avatar
Хотя я вообще не хочу добавлять в бесплатный репозиторий платные пакеты.
avatar
Более, чем логично.
avatar
Однозначно никак! Даже бесплатные модули — это не часть ЛС, пока официально не будет заявлено обратное. Но их, как правило, можно свободно распространять любым способом. Поэтому размещение их в любом свободном репозитарии даже без ведома разработчиков абсолютно законно и, если следовать духу СПО, даже приветствуется.
avatar
Думаю, будет правильно еще сделать проверку подлинности репозитория. Тебе, как разработчику, и будет по началу доверять сей модуль. Сделать это можно на основе сертификатов. Бесплатный, но полноценный можно получить тут: https://www.startssl.com/?app=1. Иначе возможны проблемы с безопасностью…
avatar
SSL не поможет в «подлинности» в нашем случае. К тому же у них сертификаты просроченные. Я уже объяснял как я вижу решение проблемы. Повторяю: будет второй независимый сервер, который будет иметь «голую» базу и хранить только хеши пакетов. С ним-то и будем сверяться.
avatar
Это лучший способ что я вижу на данный момент, т.к. взломать одновременно два разных сервера практически нереально.
avatar
Видимо я не вкурил в механизм этого модуля. Сейчас еще почитаю :)
avatar
Хотя я понял про что вы. Пока исходный код репозитория выкладыватся не будет, т.к. он ещё может быть слишком уязвим. По сути это не Linux репозиторий, а веб-сервис. Такие дела.
avatar
Хотя в переменных модуля можно назначить адрес сервера ^_^
avatar
repository.lsmi.maxsvargal.com

Рабочий макет :)
Он защищен и без определённых заголовков туда не попасть.
avatar
А заголовки не модуль ли генерит? ;)
avatar
Именно модуль.
avatar
Но я немного зашифровал их от долбайобов, хотя кому нужно, расшифруют конечно же…
avatar
Реверс-инджиниринг модуля и «патченый» файлик hosts? =)
avatar
пробуйте, удачи ^_^
avatar
Скачал отсюда: lsmodinstaller.maxsvargal.com/
Поставил, но репозитория не обнаружил.
Или он появится в после обкатки?

И совсем глупый вопрос: а какие права доступа и каким папкам нужно ставить, чтобы работало нормально? Очень не хочется методом тыка…
avatar
Репозиторий появится в версии 0.6
В данный момент готовится к выпуску.

Права на папки uploads/mod/ и uploads/mod/temp/
avatar
А на системные (classes и прочие) 755 достаточно?
avatar
Главное чтобы apache сам имел доступ на файлы, ну вы поняли.
avatar
Впорос новичка и по ubuntu, и по LS.
Можно ли поставить LS и add-ы из более менее официального репозитария ubuntu / debian?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.