LINUX.ORG.RU

раздать своё приложение на поиграться

 , ,


1

1

Доброго времени суток. Я хочу, чтобы моё приложение можно было легко скачать и установить, не заморачиваясь зависимостями. На данный момент процедура установки выглядит так:

Mercurial (aka hg)
sudo apt-get install mercurial
Git
sudo apt-get install git
SBCL
SBCL >= 1.2.7. To check your SBCL version, call sbcl --version from the shell, or (lisp-implementation-version) from SBCL prompt.
Tcl/tk
Tcl/tk >= 8.6.2. To check your tcl tk version start wish from the console and type in in the console: info patchlevel. If your distribution have earlier version, try Tombert's tcltk, see http://wiki.tcl.tk/668, or something else.
Quicklisp
Quicklisp. Clcon is now based on patched SLIME and NAMED-READTABLES so you might want to install another copy of Qucklisp if you have one. If you have no Quicklisp, download it, but do not set up SBCL to use it. On my machine, quicklisp is at ~/ql.sbcl.l, and it has ~/ql.sbcl.l/local-projects directory which we will use.
Decide clcon version
You can try trunk, but it is better to load latest tagged "release", 0.3.4. Note that online documentation usually describes trunk. To be sure that it matches software functionality, read not the online documentation, but documentation you have installed.
Lisp libraries, part 1 and clcon components
cd /s2/lib/ql.sbcl.l/local-projects
hg clone https://bitbucket.org/budden/budden-tools
git clone https://github.com/budden/slime 
git clone https://github.com/budden/named-readtables
# to download clcon's trunk, remove '-u 0.3.6' 
hg clone -u 0.3.6 https://bitbucket.org/budden/oduvanchik
hg clone -u 0.3.6 https://bitbucket.org/budden/clcon
Lisp libraries, part 2
hyperdoc, hyperspec-lookup, toposort: I patched two of these. The only way to get them is to download windows file release and get clcon/lp/third-party directory. Extract this directory as /s2/lib/ql.sbcl.l/local-projects/third-party .
Refreshing system-index for quicklisp:
cd /s2/lib/ql.sbcl.l/local-projects
rm system-index.txt
Build and start server
sbcl --no-userinit --load ~/ql.sbcl.l/local-projects/clcon/load-clcon-server-linux.lisp
If all is ok, you will see something like:
;; Swank started at port: 4009.
Waiting for oduvanchik to start.
*
Start client
chmod u+x ~/ql.sbcl.l/local-projects/clcon/clcon.tcl
~/ql.sbcl.l/local-projects/clcon/clcon.tcl

Я слышал, что есть Docker, LXC и другие средства виртуализации. Могу ли я с их помощью облегчить установку? В качестве экстремального варианта я могу выложить образ вирт. машины, но мне кажется это будет слишком уж тяжеловесно для скачивания. Но давайте и этот вариант рассмотрим. Моё приложение графическое (tcl/tk).

★★★★★

Последнее исправление: den73 (всего исправлений: 2)

Ответ на: комментарий от i_gnatenko_brain

Я не такой уж линуксовед, но обычно всё заканчивается на том, что мой дистрибутив линукса имеет пакеты, несовместимые с нужными. КРоме того, ты назвал только deb и rpm, а есть ведь и другие разновидности линукса со своими пакетами. Т.е. я должен «на поиграться» создать, протестировать и поддерживать несколько разных видов пакетов. У меня нет на это ресурсов.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Ты можешь создать вообще один пакет (например, rpm), а в deb-based пользователь поставит его через alien. Можешь выложить просто исходники - у тебя там полторы команды в инструкции, ничего сложного.

LXC вообще не про это, докер - ну не знаю, я бы не стал его тащить в систему чтоб посмотреть твое приложение, хотя если напишешь докерфайл (грубо говоря это инструкции для подготовки контейнера) то кому-нибудь может это и пригодится. Раздавать образ виртуалки вообще не вижу смысла, это какой-то дикий оверхед получается.

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

Тут ещё вот в чём фишка. В моё приложение входят некие вещи, которые есть в других пакетах. Например, tcl/tk или SBCL. Часть из них вообще не имеют пакетов, часть нужно поставить в определённые места и в твоей системе эти места уже заняты. Т.е. ничего не будет работать нормально из-за конфликта версий, либо не поставится, либо будут недоразумения. Насколько я понял, докер как раз решает эту проблему.

Но на всякий случай, могу ли я в rpm вписать свой, независимый от уже установленного в системе, tcl/tk?

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

На этот случай есть /opt/your_software_name. Там можно разместить всё, включая любые зависимости.

fenris ★★★★★
()

Не знаю как с лиспом и Tk, но плюсы+Qt легко ложатся в одну папку. Ограничение только на версию glibc.

Городить для этого контейнеры - перебор. А если FOSS - то вообще сорцы + нормальная инструкция по сборке.

RazrFalcon ★★★★★
()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от den73

Смотря что понимать под «вписать», но таскать свой Tk в RPM ты точно можешь. Вообще есть кросс-дистрибутивный LSB, и в нем библиотеки, на которые можно рассчитывать.

tailgunner ★★★★★
()
Ответ на: комментарий от Deleted

Два чая, единственный адекватный человек в треде, не считая меня. ) Все начали советовать какую-то хрень и костыли.

Sociopsih ★☆
()
Ответ на: комментарий от den73

Докер решит эту проблему, но представь - вот нет у меня докера, я хочу поставить твое приложение, мне придется притянуть докер с обвесом, минимум 15 метров дистрибутива (это если ты соберешь на каком-нибудь alpine а не потащишь двухсотметровый образ убунты) плюс твое приложение с зависимостями. Место на диске дешевое, но все равно все это надо скачать и хранить.

часть нужно поставить в определённые места и в твоей системе эти места уже заняты.

Вот тут не понял. Где-то захардкожены пути? Так делать нельзя вообще. Я могу взять любой пакет и пересобрать его так, чтоб он установился в нужное мне место, и я лично пару раз этим пользовался. Не надо ничего прибивать гвоздями.

Но на всякий случай, могу ли я в rpm вписать свой, независимый от уже установленного в системе, tcl/tk?

Не могу точно ответить, но 90% что нет. А это точно нужно?

alozovskoy ★★★★★
()
Ответ на: комментарий от alozovskoy

Вот тут не понял. Где-то захардкожены пути?

Когда я напишу wish, что вызовется? Тот tcl, к-рый уже был в системе или мой? Тот же вопрос относительно man wish.

А это точно нужно?

Например, в моём debian-е оказался более старый Tcl/tk, чем нужен для моего приложения.

den73 ★★★★★
() автор топика
Ответ на: комментарий от i_gnatenko_brain

Короче, размер LiveCd от SliTaz - 47мб, а моё приложение - под 200мб. Очевидно, что для меня виртуальная машина не является «диким оверхедом». Так что вопрос теперь меняется:

Могу ли я написать скрипт, к-рый делает LiveCd на базе Slitaz или чего-нибудь аналогичного и включает моё приложение? Я вряд ли буду часто обновлять дистрибутив, а вот моё приложение меняется регулярно и я хочу за одну команду получать iso-файл.

Какой из компактных дистрибутивов посоветуете (мне нужен с графикой)? Какую вирт.машину, работающую под Linux, посоветуете?

Желательно, чтобы LiveCD был также совместим с VMware Player. Я вот сейчас скачал Slitaz и в нём startx не заработал у меня под рутом.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

моё приложение - под 200мб.

Сравнимо с либреофисом однако.

greenman ★★★★★
()
Ответ на: комментарий от RazrFalcon

Я не знаю, должен или не должен, но мне нужна графическая оболочка, которая работает под VMWare без дополнительных усилий. Не под рутом тоже не работает. И вроде тот же slitaz раньше так умел. http://forum.slitaz.org/topic/slitaz-5-and-vmware-player-7

den73 ★★★★★
() автор топика

Всем спасибо, буду смотреть в сторону LiveCD.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Slitaz

Надеюсь, rolling.

startx не заработал

УМВР, ЧЯДНТ? A вообще настраивай /etc/slim.conf

за одну команду получать iso-файл

# tazlito writeiso lzma

Работает в live-режиме (при условии отсутствия /boot) оригинал должен быть примонтирован в /media/cdrom, чтобы получился iso вместо initrd.

anonymous
()

Образы для докера это хорошо, но распространять приложение только в таком виде было бы странно. В первую очередь нужны дистрибутивные пакеты.

melkor217 ★★★★★
()
Ответ на: комментарий от Sociopsih

Скажите, пожалуйста, а кто из тех, кто уже побывал, так сказать, на непосредственной и прямой аудиенции у Бога, являются вашими кумирами? Исходя из вашей аватарки... :)

anonymous
()
Ответ на: комментарий от anonymous

Бога нет, души нет, есть сансара, нирвана и путь от одной к другой.

Sociopsih ★☆
()

Блин, ну appimage же! Всё в одном бинарнике, кликнул и запустил.

Deleted
()
Ответ на: комментарий от I-Love-Microsoft

Ладно, почти уговорили.

den73 ★★★★★
() автор топика
Ответ на: комментарий от Harald

Пакет я делать не буду и можно даже это не обсуждать :)

Насчёт appimage я уже тоже усомнился. Я верно понимаю, что на 32 и на 64 разряда нужно два отдельных appimage? В этом случае мне выгоднее LiveCd, потому что он будет компактнее.

den73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.