Менеджер пакетов для Windows. Быстрая установка и обновление программ

Менеджер пакетов для Windows. Быстрая установка и обновление программ

Когда-то очень давно операционные системы на основе Linux упрекали за сложность установки программ. С тех пор прошло много времени, и на сегодняшний день система управления программами в Linux является недостижимым идеалом для Windows. Приложения там устанавливаются в один клик прямо из каталога программ и так же легко обновляются или удаляются в случае ненадобности. В Windows же нам приходится самостоятельно рыскать по Сети в поисках нужных программ и вручную их обновлять, что не только неудобно, но и представляет большую угрозу для безопасности системы.

Chocolatey создан для того, чтобы сделать управление программами более удобным и более похожим на то, как это происходит в Linux. В рамках этого проекта создан репозиторий программ и специальный клиент для Windows, который способен скачивать, устанавливать и обновлять практически в автоматическом режиме программы из этого каталога.

Клиент Chocolatey представляет из себя утилиту, работающую в командной строке. Для его установки откройте терминал с правами администратора и введите следующий код (можно просто скопировать):

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString("https://chocolatey.org/install.ps1"))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

Подождите некоторое время для завершения операции, в результате которой на ваш компьютер будет установлен Chocolatey и обновлён каталог доступных программ. После этого можно познакомиться с основными возможностями программы. Для этого введите команду choco help , которая расскажет вам об использовании программы и покажет список всех доступных команд.

Как вы уже, вероятно, поняли, все операции выполняются с помощью ввода специальных команд в терминале. Например, если вам необходимо установить какую-либо программу, то достаточно набрать choco install имя_пакета , а для его обновления введите choco update имя_пакета . Чтобы просмотреть весь список имеющихся в репозитории программ, введите команду choco list или воспользуйтесь поиском в онлайновой версии каталога . Всего на сегодняшний день в каталоге насчитывается около 2 500 программ.

Если вам не очень нравится вручную вводить команды, то можно установить графический интерфейс для Chocolatey и пользоваться им для установки, обновления или удаления программ. Называется он ChocolateyGUI и устанавливается с помощью команды choco install chocolateygui , после чего следует перезагрузить компьютер и запустить утилиту ChocolateyGUI от имени администратора.

Программа имеет предельно простой и понятный интерфейс, так что разобраться с ней будет несложно даже без дополнительных пояснений. Установка выбранных вами программ происходит, как правило, полностью в автоматическом режиме, так что вы вполне можете заниматься при этом своими делами.

Представляю ТОП 10 лучших файловых менеджеров для операционной системы Windows. При составлении списка, в расчет принимались только файловые менеджеры с графическим интерфейсом, с которыми удобно работать большинству пользователей. Поэтому здесь отсутствую файловые менеджеры c текстовым интерфейсом, например FAR Manager или Midnight Commander.

Вне списка лучших файловых менеджеров оказались программы, которые давно не обновлялись, например, EF Commander, ViewFD, или менее известные приложения: FileVoyager, Tablacus Explorer, muCommander, One Commander и т. д.

Программа файловый менеджер («файловый командир») предназначена для работы с файлами, дисками и папками на компьютере. В основном, в подобных программах выполняются рутинные операции по копированию, переносу или удалению файлов, открытие папок и файлов, запуск приложений.

В операционной системе Windows установлен файловый менеджер по умолчанию - Проводник. Многих пользователей не удовлетворяют функциональные возможности стандартного файлового менеджера, поэтому для работы на компьютере они используют другие альтернативные файловые менеджеры.

Большинство из представленных программ работает только на платформе Windows, но среди них есть и мультиплатформенные приложения.

Один из лучших, самый популярный альтернативный двухпанельный файловый менеджер для Windows (еще поддерживается Android). Total Commander ранее назывался Windows Commander.

В Total Commander можно выполнить различные операции с файлами, в приложении настраиваемое меню и внешний вид, встроен FTP клиент с поддержкой защищенного соединения, работа с архивами собственными средствами, пакетный режим работы, расширенный поиск с возможностью использования регулярных выражений и множество других функций.

Возможности программы Total Commander значительно расширяются с помощью скриптов и многочисленных плагинов.

Total Commander работает на русском языке, программу создал разработчик из Швейцарии - Кристиан Гислер. Программа платная, но может работать бесплатно.

Двухпанельный файловый менеджер с огромным набором возможностей для работы с файлами. Окно SpeedCommander можно разделить на две части в горизонтальном или вертикальном положении.

В SpeedCommander встроена полная поддержка Юникода, реализована поддержка мультивкладочности, виртуальных папок, пакетных операций и макросов. В файловый менеджер встроен просмотрщик для более 80 типов файлов, клиент для подключения по FTP, FTP-SSL, SFTP, встроен текстовый редактор с поддержкой синтаксиса, поддерживаются плагины, расширяющие возможности программы.

Программа работает с 13 типами архивов (распаковка, запаковка), в приложение встроена мощная система шифрования и защита файлов паролем. SpeedCommander может синхронизировать данные в папках, сравнивать данные в папках и файлах, в файловом менеджере есть инструменты для группировки и фильтрации и т. д.

SpeedCommander - платная программа, разработана в Германии (SpeedProject). Для поддержки русского языка необходимо установить русификатор.

Мощный файловый менеджер с большим количеством полезных функций. Возможности приложения расширяются с помощью плагинов. Программа oMega Commander имеет дружелюбный, полностью настраиваемый интерфейс.

Основные возможности oMega Commander: ленточный интерфейс, перенос, переименование, форматирование лент, открытие файлов в разных программах, цветовая группировка вкладок, закрепление и сохранение вкладок, флажки файлов, подсветка файлов по типу, многооконный интерфейс, список избранных окон, умное копирование, работа с архивами, как с обычными папками, безопасное удаление данных без возможности восстановления, разрезание и склейка файлов, мультифункциональный поиск, встроенный редактор, контроль свободного места и многое другое.

oMega Commander - платная программа с поддержкой русского языка (разработчик - Pylonos.com LLC).

Бесплатный двухпанельный файловый менеджер с широкими функциональными возможностями. Программа в работе и по внешнему виду похожа на Total Commander. В программе Unreal Commander поддерживаются плагины, созданные для Total Commander (кроме плагинов файловой системы).

Unreal Commander умеет синхронизировать папки, поддерживается пакетное переименование файлов, поддерживаются основные типы архивов, встроен FTP клиент, панель расширенного поиска, медиапроигрыватель, реализован предпросмотр файлов в форме эскизов, быстрый просмотр встроенными средствами, проверка контрольных сумм файлов, в приложение встроены утилиты для скачивания и резервного копирования и многое другое.

Разработчик Unreal Commander - Max Diesel. Программа поддерживает русский язык. Для включения полнофункционального режима необходимо получить бесплатный лицензионный ключ.

FreeCommander

FreeCommander - бесплатный мощный двухпанельный (горизонтальная или вертикальная панель) файловый менеджер. Программа поддерживает множество вкладок, но также может работать в однопанельном режиме.

Программа FreeCommander может работать с архивами, проверять контрольные суммы файлов, выполнять сравнение и синхронизацию каталогов, быстрый поиск, в приложение встроена командная консоль DOS, поддерживается групповое переименование файлов, безвозвратное удаление файлов, создание скриншотов и многое другое.

Программу FreeCommander создал разработчик из Польши - Marek Jasinski, приложение работает на русском языке.

Бесплатный файловый менеджер с двухоконным интерфейсом. Программа работает на разных платформах (Windows, Linux, macOS, FreeBSD).

В программу Double Commander встроены инструменты для группового переименования файлов и синхронизации, все операции выполняются в фоновом режиме, реализована поддержка вкладок, встроен просмотрщик файлов, просмотр эскизов, работа с архивами, расширенный поиск файлов, в том числе с регулярными выражениями, функция приостановки файловых операций, имеется поддержка некоторых плагинов для Total Commander и т. д.

Программа Double Commander создана коллективом разработчиков из России, которые стремятся создать файловый менеджер, аналогичный по функциональности Total Commander.

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

В бесплатной программе Multi Commander реализована поддержка плагинов, работа с архивами, встроены утилиты для работы с изображениями, инструменты для работы с аудиофайлами, есть возможность настройки внешнего вида программы под свои потребности, операции выполняются в фоновом режиме, встроен редактор реестра, клиент FTP, реализована поддержка сценариев и т. д.

Программа Multi Commander работает на русском языке (разработчик - Mathias Svensson).

XYplorer

XYplorer - функциональный файловый менеджер, разработанный в качестве замены Проводнику. Программа имеет две версии: полная версия XYplorer Pro (платная) и версия с ограниченным функционалом XYplorer Free (бесплатная).

В XYplorer поддерживается работа в неограниченном количестве мультивкладок, в приложении настраиваемый интерфейс в однопанельном или двухпанельном режиме, в программу встроено много дополнительных инструментов и функций, есть откат изменений, просмотр мультимедиа файлов, сравнение и переименование файлов, поддержка скриптов и пакетных операций, расчет и отображение размера папок, расширенный поиск, синхронизация между каталогами, просмотр свойств и редактирование тегов файлов, есть возможность присваивать теги и цветовые метки файлам и т. д.

Разработчик XYplorer - Donald Lessau, программа поддерживает русский язык.

Файловый менеджер, созданный для компьютеров Commodore AMIGA, на которых были установлены свои операционные системы. В дальнейшем, программа стала применяться в качестве альтернативы для Проводника Windows.

Программа Directory Opus имеет настраиваемые панели инструментов, двухпанельный интерфейс с древом папок, реализована возможность замены Проводника, есть возможность изменения цветов интерфейса, присутствует расширенная функция поиска, поиск дубликатов файлов, работает технология виртуальных папок, в приложении можно настроить синхронизацию файлов и папок, работает FTP, реализован просмотр графических файлов, поддерживаются плагины, возможен запуск слайд-шоу и т. п.

Directory Opus - платная программа, разработана в Австралии (GPSoftware), поддерживает русский язык.

Q-Dir

Q-Dir - бесплатный файловый менеджер с необычным четырехпанельным интерфейсом. Пользователь может изменить интерфейс программы, оставив только одно, два или три окна в горизонтальном или вертикальном расположении.

Q-Dir интегрируется с Проводником в контекстное меню, в программу встроена экранная лупа, возможен быстрый переход к избранным папкам, работает цветовое выделение разного типа файлов, программа имеет крошечный размер (менее 2 МБ), и т. д.

Программа Q-Dir работает на русском языке (разработчик из Германии - Nenad Hrg).

Выводы статьи

10 лучших файловых менеджеров: Total Commander, SpeedCommander, oMega Commander, Unreal Commander, FreeCommander, Double Commander, Multi Commander, XYplorer, Directory Opus, Q-Dir могут с успехом заменить Проводник - стандартный файловый менеджер Windows.

Когда-то давно установка программы в Linux превращалась в целый обряд. Мало было найти и скачать исходник, необходимо было его вручную собрать, удовлетворив ненавистные зависимости. Теперь не надо даже качать дистрибутив - достаточно выбрать программу в менеджере пакетов и нажать на кнопку «Установить». В винде же по-прежнему приходится самому искать дистрибутивы и потом вручную устанавливать софт. Факт!

Есть множество причин, почему Microsoft не реализовала ничего схожего с менеджером пакетов. Обсуждать этот вопрос можно довольно долго, но зачем? Занятие это неблагодарное и едва ли полезное. Вместо этого предлагаю заняться делом и попробовать обустроить систему, сродни той, что используется в любом современном Linux’е. Менеджер пакетов позволяет быстро найти и установить приложения, позже установить апдейты, а в случае необходимости - правильно удалить софт. Задача ясна, и раз уж в винде нет ничего подобного, то реализуем что-нибудь подобное сторонними средствами.

Первичная установка софта

Нет ничего более утомительного и скучного, чем первичная установка программ на девственно чистую систему. Нет, правда! Даже если не бросаться с места в карьер, устанавливая сразу весь необходимый софт (хотя есть и такие фетишисты), а делать это постепенно, то все равно базовый набор прог, без которых ну никак не обойтись, все равно заставит почувствовать себя станочником третьего разряда. Три операции: «Открыл сайт», «скачал дистрибутив», «поставил программу» - и так двадцать раз за смену.

Браузер, мессенджер, кодеки и аудио/видео проигрыватель, читалка для PDF, офисный пакет, антивирус, последние версии Java/.NET Framework/Flash, архиватор - джентльменский набор никто не отменял. Тут и за целую рабочую смену можно не управиться! 🙂 Есть вероятность свалить пораньше, если под рукой есть Dailysoft с последнего диска ][, но так и брак пропустить можно: а вдруг новая версия вышла? Словом, единственный вариант - послать эту тягомотину лесом и искать вариант лучше.

Итак, добавляй в закладки онлайн-сервис www.ninite.com . Этот недавно появившийся ресурс уже успел избавить меня от нескольких часов мучений и бездарного времяпрепровождения. Как? Идея очень проста. На единственной странице доступен список различных преимущественно бесплатных или открытых приложений, который разбит по группам: «Браузеры», «Безопасность», «Разработка» и т.д. От тебя требуется выбрать нужные утилиты и нажать на кнопку «Get Installer». В результате за несколько кликов мыши мы получаем универсальный инсталлятор, который разом установит все выбранные программы. Сам установщик весит совсем немного и подкачивает все необходимые данные прямо во время установки. Отдельные моменты, конечно, настораживают. Например, кто его знает, что закачивает этот установщик? Но ведь как удобно!

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

Прокачиваем идею

Помимо отсутствия оффлайн-установки в бесплатной версии Ninite есть еще один недостаток - инсталлятор с нужными приложениями каждый раз приходится составлять заново.
Странно, что разработчики не добавили простейшую систему регистрации, чтобы можно было залогиниться и сразу скачать инсталлятор для когда-то уже составленного набора программ. Избежать подобной оплошности удалось парням из Франции, которые реализовали аналогичный сервис - www.allmyapps.com . По сути это тот же Ninite, только с еще большим количеством софта и возможностью прилинковать список приложений к своему личному аккаунту (регистрация бесплатная).

Помимо того в системе можно установить дополнительный десктопный клиент, после чего в интерфейсе Allmyapps будут отмечены утилиты, которые уже имеются в системе и не нуждаются в установке. Впрочем, даже при таком раскладе универсальный инсталлятор - это все же не менеджер пакетов.

Чуть приблизиться к идее менеджера приложений позволяет ZeuAPP (blog.zeusoft.net/zeuapp), реализованный в виде десктопного приложения. Разработка также предлагает широкий список бесплатных и открытых программ, которые можно быстро установить в системе. Выбираем нужную, кликаем «Download» - и программа сама, скачав дистрибутив, начинает процедуру установки. Увы, процедура инсталляции не прозрачна и не автоматизирована: пользователю даже приходится вручную выбирать папку для закачки дистрибутива. Но и это не все. Если онлайн-сервисам еще можно было простить отсутствие проверки версий в системе и возможность обновления софта, то в десктопном ZeuAPP такую возможность вполне можно было реализовать. Так что придется искать решение для поддержки актуальности версий дополнительно.

Обновление установленных программ

В случае с виндовыми приложениями, когда чуть не каждую неделю появляются новые публичные сплойты для разных браузеров, Adobe Reader’а и прочих клиентских приложений, вопрос обновления особенно актуален.

Полностью автоматической системы, которая отслеживала бы появление новых версий и сама осуществляла апдейт, я не нашел. Но это, наверное, даже к лучшему, ибо от подобной автоматики в условиях Windows-окружения ждать можно было бы чего угодно. Совсем другое дело - полуавтоматический инструмент, который бы кропотливо отслеживал наличие обновлений и предлагал установить их вручную с помощью штатных инсталляторов. Разработкой подобных инструментов и занимается западная security-компания Secunia. Мы не будем брать серьезные корпоративные решения, нацеленные на централизованное обновление в сети, а возьмем бесплатную утилиту для персонального использования - Secunia Personal Software Inspector.

Легковесная утилита быстро и со знанием дела сканирует всю систему и выдает подробный отчет, какие из программ нуждаются в обновлении. Для каждой устаревшей проги выдается рейтинг угрозы (в соответствии с обширной базой Secunia описаний уязвимостей) и, что самое удобное, прямая ссылка на загрузку самой последней версии дистрибутива. Один клик - и уже можно приступать к обновлению. Помимо этого проверяется наличие апдейтов для самой винды, а всякий раз, когда ты по ошибке установишь не самую последнюю версию какой-нибудь софтины, в трее будет появляться соответствующее предупреждение. Особое внимание уделяется безопасности браузеров и прилинкованных к ним плагинам (Adobe Flash Player, QuickTime, Sun Java и т.д.), а также клиентским программ для сетевых сервисов (например, Skype). Подробный отчет, скажем, по ActiveX-компонентам становится доступен, если перевести Secunia PSI в расширенный режим интерфейса.
Перед началом сканирования утилит скачиваем по безопасному HTTPS-проколу набор правил, в которых обозначено, каким образом проверять актуальность приложения. Тут стоит сказать, что на моей машине установлено просто огромное количество софта, от которого я не успеваю избавляться. При этом Secunia умеет находить обновленные версии для многих из них. Увидев в своей RSS-ленте информацию об обновленной версии Java, эксперимента ради я запустил PSI - информация о необходимости обновления тотчас появилась на экране. Вот здесь-то и начинаешь ощущать, что поддержкой продукта занимается не парочка энтузиастов, а целая команда securityспециалистов. Кстати говоря, в любой момент времени PSI выдает рейтинг обновленной системы Secunia System Score. У меня это значение после долгого отсутствия апдейтов составляло 86%. А у тебя?

Как быть с бета-версиями?

Несмотря на наличие устаревших программ, в системе уживается еще и огромное количество бета-версий софта, которому до релиза еще далеко. Вообще приятно получить приятные бонусы намного раньше других, а помочь разработчикам в поиске нескольких багов - не такая уж большая плата за такую возможность. Увы, Secunia PSI никакие бетки не признает - оно и понятно, если уж в релизах полно багов, то чего ждать от бета или даже альфа-версий? Как же быть? Отслеживать выход свежих программ мне помогают ресурсы fileforum.betanews.com и www.filehippo.com . Если в первом просто публикуются новости о недавно вышедших версиях программ, то FileHippo представляет собой огромнейший каталог софта, который скрупулезно обновляется, как только выходит новая версия программы - вероятно, это делается автоматически. Больше того, всем желающим предлагается скачать FileHippo.com Update Checker, который так же, как и прога от Secunia, проверяет установленные в системе программы на наличие обновлений. Но при этом… в отдельном списке предлагает установить еще и доступные бета-версии программ, указывая прямые линки на загрузку дистрибутивов. Забавно, что после установки только что скачанной FileHippo.com Update Checker PSI тут же отписался, что для этой программы есть версия новее. Ведь явно врет, обижается что ли? 🙂

Правильное удаление программ

Когда меню «Пуск» разрастается до нереальных размеров, начинаешь задумываться: «Пожалуй, здесь много лишнего». Мое правило примерно таково - всякий раз, запуская штатный виндовый менеджер для установки и удаления программ, можно избавиться как минимум от пяти ненужных утилит:). Вот, казалось бы, единственная функция пакетного менеджера, которая удаляет программы, и которую Microsoft вроде как реализовал, есть. Пользуйся - не хочу. Но нет! Программу, конечно, она с грехом пополам удаляет, но если сделать снимок реестра и файловой системы до установки и после удаления, то обнаруживаются интересные факты. Лишние ключи реестра, какие-то временные файлы… Почему они остались - непонятно.

Есть много утилит, которые магическим образом обещают правильно удалять программы из системы, используют интеллектуальные алгоритмы для поиска левых ключей в реестре и т.д. На деле большинство из них - полная туфта, но не Ashampoo Magical UnInstall (www.ashampoo.com). Чем же он отличается от всех остальных? Принципом действия. Идея в том, что программа все время работает фоном и как только обнаруживает запуск setup.exe, install. exe и прочих инсталляционных бинарников, начинает тщательно следить за их действиями и изменениями в системе. По ходу дела составляется база данных, в которой записаны все действия установщика: какие ключи в реестре прописал, какие файлы и где разместил - все четко по факту. Захотел удалить программу? Ashampoo Magical UnInstall пробивает ее по базе и откатывает назад все изменения. Подход работает безотказно. Мало того, если ты по ошибке удалил не ту программу или банально передумал, то любую операцию деинсталляции можно в течение некоторого времени отменить, воспользовавшись встроенной утилитой ReInstaller. Magical UnInstall пока еще распространяется бесплатно, но лицензионный ключ придется запросить на сайте разработчиков.

Увы и ах!

Менеджер пакетов как в Linux? Увы, пока ничего не выйдет. До тех пор, пока нет стандартизированного механизма для установки, обновления и удаления приложения, репозитория для хранения программ, о каком-либо аналоге apt-get из никсов можно даже не говорить. Косяк Microsoft? Безусловно. Но ведь и разработчики открытого софта не сильно чешутся на этот счет. Повально размещая свои проекты на Google Code, SourceForge и других ресурсах, давно можно было сообразить и что-нибудь подобное.

Только подумай: удобный менеджер приложений, в котором будет только открытый софт - каков бонус для всего опенсорса, а? Пока же придется довольствоваться разрозненными утилитами, которые даже в тандеме подчас не делают всего того, на что способны менеджеры пакетов в Linux.

Info

Можно взять на заметку другие неплохие программы для поиска апдейтов для установленного на компьютере софта. Это SUMo (www.kcsoftwares.com) и Appupdater (www.nabber.org/projects/appupdater).

Несколько лет назад энтузиасты пытались создать порт линуксового apt-get - так на свет появился win-get (). Написанная на Pascal’е система позволяла через консоль установить некоторые утилиты, но, к сожалению, разработка быстро заглохла. Та же судьба постигла и другие начинания: Appsnap, Appupdater и даже пытавшийся объединить все имеющиеся решения GetIt (www.puchisoft.com/GetIt).

Устанавливаем и обновляем драйвера

Пожалуй, самое ненавистное дело после переустановки системы - это даже не инсталляция всех программ. Нет! Есть монстр куда хуже - драйвера. Когда я впервые увидел Windows 7, хотелось закричать: «Свершилось!». Да, система через Windows Update потягивает практически все необходимые дрова, и в этом я уже не раз убеждался. В результате уже не приходится ломать голову, какие неизвестные девайсы прописались в менеджере устройств - все устанавливается автоматом. Но как быть с ранними версиями винды и как в принципе обновить драйвера? Наш ответ - DriverMax (www.innovative-sol.com/drivermax).

Эта небольшая утилита позволит быстро стянуть из инета последнюю версию дров для самых разных устройств. Забудь про мучительные поиски редкого драйвера или давно пропавшего диска из «коробочки» - просто создай бесплатный аккаунт на сервисе и скачай все, что нужно. Впрочем, программа будет полезна даже в том случае, если ты такому подходу не доверяешь и предпочитаешь скачивать системное ПО с официальных сайтов. Drivermax имеет еще одну важную функцию - бэкап всех драйверов в системе. Поэтому после переустановки системы инсталляция всех драйверов займет всего пару минут и потребует минимум усилий. Хочется признаться, что пару раз драйвера с помощью DriverMax я всетаки не находил, но быстро исправлял ситуацию с помощью другой утилиты - Device Doctor (www.devicedoctor.com).

Авто-апдейт от Google

Если ты когда-нибудь скачивал Google Chrome, то знаешь: вместо оффлайн-дистрибутива браузера ты сливаешь лишь оболочку-инсталлятор, который уже, в свою очередь, в зависимости от ОС и прочих параметров, докачивает все необходимое. А если заходил когда-нибудь на страницу pack.google.com , то, наверное, обязательно обращал внимание на программу, которая разом устанавливает или обновляет в системе продукты от Google. Такая система интеллектуальной установки и автоапдейта называется Google Update или omaha. Этот проект развивается под открытой лицензией и всегда доступен с code.google.com/p/omaha . Важно, что это не просто программа, а продуманная в архитектурном плане система, позволяющая легко устанавливать и обновлять различные приложения - то, чего не хватает в современной винде, чтобы сделать репозиторий с софтом и менеджер пакетов а-ля Linux.

Добрый день.

Конечно, пакетные менеджеры в Linux делают проще жизнь и пользователям и администраторам. В мире Windows с этим значительно хуже, хотя некоторые наработки имеются (в Windows 10 обещают прогресс): nuget, chocolatey, wpkg и другие.

Занимаясь поддержкой тестирующих машин для Codeforces, компьютеров Центра олимпиадной подготовки программистов СГУ, подготовкой рабочих станций участников под разные олимпиады я окончательно утомился писать разнообразные bat-файлы и решил упорядочить этот процесс. Хорошим подспорьем оказался Сhocolatey , но в деталях оказалось, что он не всегда мне подходит: в большинстве случаев нельзя указать директорию установки, нет поддержки своих репозиториев, нет многих нужных для Codeforces пакетов, репозиторий Сhocolatey хранит не установщики программ, а только ссылки на них - несколько раз было, что сайт программы лежал, и установить пакет было не возможно.

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

В ближайший месяц все тестирующие сервера Codeforces (и многие другие компьютеры факультета КНиИТ Саратовского ГУ) я планирую переустановить, используя в частности и PBOX.

Я немного уже использовал его для личных целей, мне кажется, PBOX может быть полезен и кому-то из пользователей Codeforces. На сайте http://pbox.me есть примеры использования. Ниже немного пояснений.

Установка

Зайдите на http://pbox.me и в административной консоли Windows (найдите в cmd.exe и в контекстном меню по правой кнопке мыши выберите Run as administrator) выполните код с главной страницы. PBOX написан на Java, если у вас она не стоит, то он сам выкачает JRE и положит рядом с собой. Кстати, при каждом запуске PBOX будет самообновляться, так что думать о накатывании обновлений на него не придется.

Я обычно выключаю UAC, если не хотите, то и в будущем его придется всегда запускать в админ. консольке, а отключить uac при установленном PBOX можно просто набрав pbox -uac .

Использование

Хотите себе именно тот g++, что используется на Codeforces? Просто наберите pbox install mingw-tdm-gcc . По-умолчанию установит в %HOMEDRIVE%\Programs\mingw-tdm-gcc, пропишет в PATH несколько директорий (включая MSYS), добавит MINGW_HOME на директорию установки. Вообще, чтобы увидеть что конкретно произойдет достаточно просто на сайте найти пакет и кликнуть Show pbox.xml .

Пакетов в PBOX пока совсем не много (но и не мало, 73). Заходите на http://pbox.me/packages и смотрите. Из полезного консольного рекомендую pbox install tools - это сборка полезных утилит sysinternals, windows resource kit, support tools, а также разных curl, wget, imdisk и других, которые сразу добавятся в PATH. Кстати, будет добавлена и полезная утилита runexe.exe , которой можно запускать процессы и смотреть используемое время/память.

Кстати, большинство утилит и компиляторов по-умолчанию будут установлены в C:\Programs (на самом деле в %HOMEDRIVE%\Programs). Довольно удобно иметь путь к ним покороче и без пробелов как у "Program Files".

Можно устанавливать с доп. ключами, например так: pbox install far --homedir=C:\Far --arch=32 --version=3.0.4040 . Чтобы удалить пакет, достаточно выполнить pbox uninstall far .

Вот еще примеры доступных команд и их использования.

Так, как для работы постоянно требуется доступ к консоли, git, node, jade. Я хотел бы немножечко проиллюстрировать работу с Chocolatey в контексте (на примере) подготовки к разработке под Nodester.

Требования для установки:

Windows XP/Vista/7/2003/2008
.NET Framework 4.0
PowerShell 2.0

Устанавливается просто, выполнением такой незамысловатой команды (в cmd.exe в PowerShell не обрабатывается):

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString("http://bit.ly/psChocInstall"))"

После чего автоматически устанавливается в C:\Chocolatey, в C:\Chocolatey\libs будут находится описания пакетов, библиотеки. Основные же модули программ по дефолту устанавливаются в Program Files (x86).

Все основные и необходимые, для девелопера, пакеты присутствуют . Интерпретируемые языки, типа PHP , Ruby , Python , Node.js . БД - MySQL , MongoDB , SQLite . Контроль версий Git , Mercurial, SVN . Notepad++, Sublime. Сalibre для обработки книг под Kindle.

1. Установка пакета Node.js вместе с npm

Cinst nodejs.install

Эта команда аналогична следующей

Chocolatey install nodejs.install

Правда консоль придется закрыть и открыть заново, что бы стали доступны записанные пути в path.

2. Когда нода установлена уже можно вести разработку, инсталлировать модули через менеджер пакетов. Вот и пакетик для Нодстера

3. Без Git-a на Nodester совершить деплой не удастся, так что устанавливаем его с помощью Chocolatey

Вот список того, что я ещё дополнительно установил.

Cinst Console2
cinst putty
cinst curl
cinst Wget

Пробуем putty, команда открывает окно программы и смотрим на, то что git поставился успешно (напомню, что придется закрывать консоль и открывать заново).

4. Вот видим что к Nodester можем свободно обращаться

Дальше остается рутинный процесс, инсталяция на локальной машине через npm требуемый в проекте модулей, типа expressjs, jade, тестирование на локальном веб-сервере который загружает нода. Все это дело ведется в git, коммитится, после чего совершается push в репы nodester. На nodester-е (список команд) так же потребуется установить npm модули через nodester npm install appname.

Не для всего подходит Chocolatey. Сама идеология Windows и создаваемых под платформу приложений склоняется к тому, что они сами должны лезть в автозагрузки и при каждом удобном случае без разрешения лезть обновляться. Так, в пакетах есть Chrome, но мы то знаем про GoogleUpdater.exe который и так все обновляет. Так, же и про Notepad++ который сам может полезть за обновлениями. Skype и самому обновить можно. Однако если изначально все ставить по-шоколадному, быстрое обновление одной командой будет приносить удовольствие, особенно если это относится не к GUI инструментам.

Напоследок приложу видео ролик с оф. сайта

В комментариях попросили добавить пакет Slik Subversion (SVN). Я думаю полезно будет проиллюстрировать, как просто это осуществляется. Также прояснится принцип работы «шоколада».

Главное описание и скрипт инсталляции для простейшего случая. Все пакеты можно собрать самому, вот примеры .

1. Создаем файл описания C:\sliksvn\sliksvn.nuspec с соответствующим текстом (исходная болванка):

sliksvn SlikSVN 1.7.4 Slik Company anatooly

Slik subversion reliable version control starts here We provide a standalone command line Subversion package for Windows. The installer contains all command line tools (svn, svnadmin, svnsync, svnserve, svnmucc, etc.) but no application bindings nor Apache modules. The tools are fully side-by-side compatible with other packages. Ideal for automated build and deploy scripts http://www.sliksvn.com/ sliksvn svn subversion Slik Company false

2. После чего создаем скрипт инсталляции C:\sliksvn\tools\chocolateyInstall.ps1

Install-ChocolateyPackage "sliksvn" "msi" "/quiet" "www.sliksvn.com/pub/Slik-Subversion-1.7.4-win32.msi" "http://www.sliksvn.com/pub/Slik-Subversion-1.7.4-x64.msi"

Write-ChocolateySuccess "SlikSVN"
} catch {
Write-ChocolateyFailure "SlikSVN" "$($_.Exception.Message)"
throw
}

Из кода становится понятно. Что скачивается с оф. сайта либо 32-бита, либо 64 бита инсталятор и будет ставиться в тихом режиме не отвлекая вопросами.

3. Доп. файл установки (может отсутствовать), а данном случае не принципиально C:\sliksvn\tools\install.ps1

Param($installPath, $toolsPath, $package, $project)

Write-Host "This is not a package with dlls to reference in it."
Write-Host "Please install using chocolatey"
Write-Host "To get chocolatey just run "Install-Package chocolatey" followed by "Initialize-Chocolatey""
Write-Host "chocolatey install sliksvn"
write-host "Removing this package..."
uninstall-package sliksvn -ProjectName $project.Name

4. Собираем пакет. Его собрать можно NuGet-ом. Пропишите доступ к нему в path, либо обращайтесь через полный путь. Лежит в C:\Chocolatey\chocolateyInstall\NuGet.exe

> cd C:\sliksvn
> nuget pack

После чего получаем C:\sliksvn\sliksvn.1.7.4.nupkg локальный пакет. С него можно уже устанавливать, проверьте cinst sliksvn -source C:\sliksvn (в пути обязательно только путь к папке где лежит пакет, без его названия). Устанавливается локально. После чего можете загрузить пакет на сайт. Там работает режим постмодерации, так что пакет будет виден сразу и становится доступным через cinst sliksvn.

Как все работает при установке пакета? При установке, все что запаковано в пакете nupkg - скрипты установки, описание, и другие файлы, бинарные архивы (есть что там может быть) попадает в папку C:\Chocolatey\lib\НАЗВАНИЕ_ПАКЕТА, а вот действия прописанные в скрипте, в нашем случае тихая установка выполняются по дефолту, то есть SlikSVN у меня 64-бита система, значит он ставится в C:\Program Files\SlikSVN\ и сам прописывается в path. Но на самом деле установка может быть любой распаковка из собственного архива, который будет входить в пакет, либо ещё какие-то действия со своими входящими библиотеками. Все зависит от фантазии.

Как его удалить? Сам SlikSVN через Установка-Удаления, как любую стандартно установленную программу, и из C:\Chocolatey\lib\НАЗВАНИЕ_ПАКЕТА руками.

Update 2012-08-15 :

В последних версиях уже появилось удаление пакетов через chocolatey uninstall . По команде удаляется содержимое пакета из C:\Chocolatey\lib\ название пакета, то есть утилиты которые устанавливаются распаковываясь в эту папку удаляются полностью. То что инсталлировалось в систему и в Program Files - не трогается.

Списка установленных, как логично было бы предположить по chocolatey list пакетов - нет. Но ведь это можно легко исправить, как вариант таким хаком:

Diff --git "a/c:\\Chocolatey\\chocolateyInstall\\functions\\Chocolatey-List.ps1" "b/c:\\Chocolatey\\chocolateyInstall\\functions\\Chocolatey-List.ps1" index 67c2ecc..aa67027 100644 --- "a/c:\\Chocolatey\\chocolateyInstall\\functions\\Chocolatey-List.ps1" +++ "b/c:\\Chocolatey\\chocolateyInstall\\functions\\Chocolatey-List.ps1" @@ -15,7 +15,12 @@ param($parameters = "list" if ($selector -ne "") { $parameters = "$parameters ""$selector""" - } + } else { + $packageFolders = Get-ChildItem $nugetLibPath | sort name + $packages = $packageFolders -replace "(\.\d{1,})+"|gu + Write-Host $packages + exit + } if ($allVersions -eq $true) { Write-Debug "Showing all versions of packages"
Теперь по chocolatey list мы получим:

7zip 7zip.install chocolatey Console2 curl foobar2000 git git.install miranda msysgit nodejs.install notepadplusplus notepadplusplus.install php php5-dev putty sliksvn sublimetext2 warmup Wget