Портативный язык сценариев для администратора мультисервера?

Пожалуйста, примите во внимание: Портативный как в portableapps.com, не в традиционном смысле языка, который может использоваться на нескольких архитектуре или операционных системах. Кто бы ни выдумал это использование портативного слова, должен биться. :)

Я - DBA и системный администратор, главным образом для машин Windows, управляющих SQL-сервером. Я ищу программирование/язык сценариев для Windows, который не требует доступа Администратора или инсталлятора, будучи должен не установить процесс кроме расширения его в папку. Мое намерение состоит в том, чтобы иметь язык для автоматизации, вокруг которой я могу стандартизировать.

До этого пункта я использовал комбинацию командных файлов и раковины Unix, используя sh.exe от UnxUtils, но это далеко от прекрасного решения.

Я оценил горстку вариантов, у всех них есть по крайней мере один серьезный недостаток или другой. У меня есть решительное предпочтение чему-то общедоступная или двойная лицензия, но я больше интересуюсь нахождением правильного инструмента, чем что-либо еще. Не заинтересованный, что что-либо, что полагается на Cygwin или Яву, но в этом пункте, я согласился бы с чем-то, чему нужен .NET.

Требования:

  • Управляемый след (1-100 файлов, установленных менее чем 30 МБ)
  • Работайте на Windows XP и сервере (2003 +)
  • Никакой инсталлятор (exe, msi)
  • Никакая уверенность в JVM или Cygwin не устанавливает
  • Работы с внешними трубами, процессы и файлы
  • Поддержка SQL-сервера MS или связей ODBC

Бонусные очки:

  • Открытый источник
  • FFI для того, чтобы вызвать функции в родном DLLs
  • Поддержка графический интерфейса пользователя (местный житель или gtk, wx, fltk, и т.д.)
  • Linux, AIX и/или OS X поддержек
  • Динамичный, объектно-ориентированный и/или функциональный, интерпретируемый или bytecode собран; интерактивное развитие
  • Способный упаковать или собрать сценарии в исполняемые файлы

До сих пор я попробовал:

  • Рубин: 148 МБ на диске, 23 000 файлов
  • Портативный Питон: 54 МБ на диске, 2 800 файлах
  • Земляника Perl: 123 МБ на диске, 3 600 файлах
  • REBOL: Большой, кроме закрытого источника и никакого MSSQL или ODBC в бесплатной версии
  • Писк Smalltalk: Большой, кроме плохой поддержки сценариев

11
задан Aaron 25 January 2010 в 21:28
поделиться

7 ответов

TCLKIT - это одно файл, автономная система TCL / TK. У меня есть версия Mac, составляет около 3,8 мегабайков. Вы можете получить версию для любой современной ОС. Я несу по приводу большого пальца, который имеет Mac, Windows и Linux Binafy, поэтому я могу запустить свои сценарии на любой платформе. Установка не требуется, просто скопируйте один файл куда хотите.

Единственное, что оно отсутствует из вашего оригинального спецификации - это поддержка MS SQL Server / ODBC из коробки. Я знаю, что люди используют TCL для этого, но я думаю, что вам придется добавить дополнительную библиотеку или что-то в этом роде. См. Вход TCL'ERS Wiki в записи MS SQL Server для получения дополнительной информации.

2
ответ дан 3 December 2019 в 08:29
поделиться

, глядя на исчерпывающий список Wikipedia портативного программного обеспечения Там крошечный компилятор C, опять же на Википедии здесь , и его собственная домашняя страница здесь .

Чтобы обобщить, цитируя из списка функций Wikipedia:

  • MALL - может компилировать и выполнять C-код везде, например, на спасательных дисках (около 100 КБ для исполняемости X86 TCC, включая C Preprocessor, C компилятор, ассемблер и линкер) Отказ
  • FAST - TCC генерирует оптимизированный код x86. Нет байтового кода наверху. Он компилирует, собирает и ссылки примерно в 9 раз быстрее, чем GCC.
  • Любая динамическая библиотека C может быть использована напрямую. TCC направляется к полному соответствию ISOC99. TCC может, конечно, компилировать себя.
  • включает в себя дополнительную память и связанный шатер. Связанный проверенный код может свободно смешивать со стандартным кодом.
  • Скомпилируйте и выполните источник C напрямую. Нет связывания или сборки. Полный C Preprocessor и GNU-Armbler включен.
  • Скрипт C поддерживается: просто добавьте «#! / Usr / local / bin / tcc -run» на первой строке вашего источника C и выполните его непосредственно из командной строки.
  • С помощью SIBTCC вы можете использовать TCC в качестве бэкэнда для генерации динамического кода.
  • Несколько зависимостей. Он включает в себя свой собственный ручной пишущий лексером, и он реализуется с использованием рекурсивного анализатора спуска. Таким образом, здание TCC требует нескольких других библиотек.
  • Его лицензия LGPL позволяет любому пользу использовать, изменять и / или перераспределять программное обеспечение, и его можно использовать для разработки либо с открытым исходным кодом или проприетарным программным обеспечением.

Надеюсь, это поможет и будет использоваться, С уважением, Том.

0
ответ дан 3 December 2019 в 08:29
поделиться

Я призываю вас попробовать LUA . Что касается ваших требований:

  • крошечный след (56 исходных файлов, подкомпилированные ниже 150 тысяч)
  • везде (использует только ANSI C)
  • , не требуется установщик; Вы компилируете из источника (есть также «Батареи включены» пакет , которые я не исследовал
  • , не нуждается в JVM и работает с любым компилятором ANSI C, поэтому вы можете компилировать с Visual Studio, не Cygwin
  • работает с внешними процессами и файлами, но только в пределах, поддерживаемой ANSI C. Если POSIX POPEN POPEN , то это также поддерживается также.

и ваши бонусные баллы:

  • (Лицензия MIT)
  • FFI к C блестяще задумана и выполнена - не так просто, как TCL, но нагружает более мощную. Многое Лучшая интеграция с C, чем Python или Ruby.
  • Поддержка графических устройств смешана Но есть хорошие привязки для WX-виджетов. Поддержка Qt была там одновременно, но я не знаю, поддерживается ли она.
  • Поддерживается Linux
  • Особенности языка / компилятора:
    • Dynamic
    • Функционал
    • Объекты на основе прототипов и наследование через метаметоды (вы захотите увидеть примеры в книге ниже
    • Самый быстрый компилятор Bytecode на западе
    • Cread-Eval-Print Loop; загрузить новый код динамически
  • , способный пакет сценариев в исполняемые файла; либо используйте Luiz de figueiredoo srlua , или я могу отправить вам 120-линейную скрипт lua, который преобразует источник lua ​​для файл .c, в котором вы ссылаетесь с вашим приложением и интерпретатором, чтобы сделать исполняемый файл.

Дополнительные бонусные баллы:

9
ответ дан 3 December 2019 в 08:29
поделиться

Для TCL, кроме TClkit, FreeWrap - еще один маленький портативный, автономный переводчик для TCL.

Просто переименовывает исполняемый FreeWrap для чего-то другого преобразует его в автономный переводчик. Переименование его обратно на FreeWrap преобразует его в обертку сценария.

Кроме того, приложения для захвата, содержащие интерпретатор TCL. В ужасных ситуациях вы можете попробовать открыть приложение в качестве файла ZIP и редактировать / заменить код TCL, содержащийся внутри (просто не забудьте сделать копию сначала). Это сохранило меня несколько раз, когда я на клиентском сайте без инструментов разработки, но нужно что-то устранить. Я просто делаю копию одного из моих развернутых приложений и престо - мгновенная среда развития!

0
ответ дан 3 December 2019 в 08:29
поделиться

В дополнение к предположению Луа есть также бездействует . Это в основном суперсетом LUA 5.1, с языком (и библиотеками), так и в реализации на основе LUA. Первоначально было создано более полное решение для Windows для Windows: поскольку Lua является примарно предназначенным для встраивания, он имеет довольно небольшую стандартную библиотеку, и обычно ожидается, что встраиваемая приложение предоставляет богатую библиотеку в Луа.

Это имеет смысл для встроенного языка, потому что, в конце концов, не так много общего функциональности, скажем, Adobe Lightroom, Nginx и World of Warcraft, поэтому просто ничего не может поставить в стандарт Библиотека. Но для более общего назначения ОС ОС Скрипсирующихся языка, хотелось бы немного более крупную библиотеку. Таким образом, простые пакеты пару библиотек, которые являются сторонние (а иногда и трудно добраться до работы на Windows) в Lua в своей стандартной библиотеке.

Некоторые из вещей, которые Adly Standard Bistandard добавляет LUA, являются узкой интеграцией Win32, поддержка SQLite3, поддержка сети, генератор PEG-анализатора и архивную поддержку.

Кроме того, IDLE имеет поддержку для встраивания Perl и C Code в ваши программы ожидания.

0
ответ дан 3 December 2019 в 08:29
поделиться

Каждая дополнительная версия Windows поставляется предварительно установлена ​​как с VBScript, так и JScript. Не соответствует все Ваши функции (компилируйте исполняемый к исполняемости), но они, безусловно, имеют непревзойденное преимущество с размером установки: трудно победить 0 .

0
ответ дан 3 December 2019 в 08:29
поделиться

Существует пара вариантов Python, которая может соответствовать вашему законопроекту:

  • первый - это IronPython, , который может быть запущен без установщика и будет хорошо играть .net apis. Это дает вам доступ к чему-либо с API .NET или COM Typleib, для которого вы могли бы построить PIA. Я использовал в качестве механизма сценариев для именно этой причины - он может быть сброшен в каталог в системе и не должен был быть явно установлен ..

    Вам придется установить соответствующую среду выполнения .NET, но .NET 2.0 установлен с SQL Server 2005. SQL Server может быть доступен через ADO.NET и Constate Guis с WinForms довольно простым.

  • Второй - Portable Python , который предназначен для запуска USB-ключа. Хотя я вижу, что вы уже попробовали, вы можете уточнить, что были недостатки. Если что-то не доступно в базовой установке, вы всегда можете посмотреть на построение пользовательской версии с ней. TKinter (по крайней мере) в комплекте.

    Вы также можете использовать Py2exe для генерации автономных приложений Python со всеми лишними мускулистыми ударами. Это даст вам около 10 файлов или около того (в зависимости от количества DLL), которые могут быть запущены из одного каталога, возможно, на USB-ключа.

Проходные установки локального Python на ОС Unix-OID довольно просты, так что это в значительной степени не является мозгом. Кроме того, Python поставляется с большинством дистрибутивов Linux и доступно в качестве «внесенного программного обеспечения» от большинства, если не все продавцы Trad Unix. IIRC это также в комплекте с MacOS.

3
ответ дан 3 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: