Возможность продажи бинарных исполняемых файлов в гем? - PullRequest
1 голос
/ 27 января 2012

Я написал процессор звездочек для сжатия без потерь jpgs и pngs, вы можете проверить его здесь: https://github.com/botandrose/sprockets-image_compressor

Однако я не могу использовать этот гем на heroku, потому что jpegoptim и pngcrushпрограммы не доступны в их среде.Кроме того, пользователи драгоценного камня должны будут помнить об установке этих программ в каждой системе, в которой они хотят использовать мой драгоценный камень.Поэтому я думаю, что было бы неплохо, если бы я мог использовать эти двоичные файлы в качестве запасного варианта, если бы в системе их еще не было установлено.

Итак, это абсолютно безумие?Нужно ли предоставлять 64-разрядный двоичный файл, а также 32-разрядный?Нужно ли мне устанавливать какую-то внешнюю библиотеку?Не лучше ли мне написать какое-нибудь расширение C, которое подключается к этим программам?

Ответы [ 2 ]

0 голосов
/ 27 января 2012

Что касается использования вашего драгоценного камня в Heroku: помните, что Heroku имеет файловую систему, предназначенную только для чтения (кроме каталога /tmp), поэтому запуск процессоров Sprockets, подобных вашему, в Heroku, в любом случае, не является практически осуществимым вариантом. Лично я просто использую rake assets:precompile и фиксирую все скомпилированные активы в моем репозитории Git, прежде чем отправлять их в Heroku. Да, я знаю, что это портит историю репо, но это самый простой способ (по крайней мере, на данный момент). Надеюсь, что в будущем Heroku предложит другой вариант.

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

0 голосов
/ 27 января 2012

Я не видел много драгоценных камней в дикой природе, которые делают подобные вещи.Однако есть еще один вариант - предоставлять грабли, которые выходят и загружают программы, если они еще не установлены на компьютере.Однако может быть сложно заставить его работать на всех разных платформах.

...