Apt аналоги в windows
Одна из первых вещей, с которой столкнуться новые пользователи при выборе своего дистрибутива Linux, это существование нескольких дистрибутивов с различными способами управления пакетами.
Управление пакетами очень важно в Linux, если вы знаете как использовать несколько менеджеров пакетов, это еще один аспект, показывающий, что вы уже опытный пользователь. Установка программного обеспечения, обновление, обработка зависимостей, удаление программ это очень важные действия для администрирования операционной системы Linux.
Чтобы стать более опытным пользователем в Linux нужно понять, каким образом основные дистрибутивы обрабатывают пакеты программного обеспечения. Поэтому тема сегодняшней статьи - обзор пакетных менеджеров Linux. Мы рассмотрим основные пакетные менеджеры Linux. Главная цель, предоставить основную информацию об этих пакетных менеджерах, но об их использовании будет сказано только несколько слов.
1. DPKG - система управления пакетами Debian
Dpkg - это базовая система управления пакетами в Debian. Может использоваться для установки, удаления, хранения и получения информации о .deb пакетах.
Это инструмент низкого уровня и есть дополнительные утилиты, которые помогают пользователям устанавливать пакеты из репозиториев, разрешать зависимости и искать пакеты по названию. Это такие программы, как:
APT (Advanced Packaging Tool)
Очень популярный, мощный инструмент командной строки с открытым исходным кодом для управления пакетами, который намного увеличивает возможности dpkg. Эта утилита используется в Debian и его производных, таких как Ubuntu, Linux Mint. Я уже писал про apt на этом сайте.
Aptitude Package Manager
Это еще одна популярная утилита командной строки для управления пакетами в Debian. Она работает аналогично Apt, но между ними есть некоторые различия. Первоначально он был разработан для Debian, но сейчас может применяться и в Red Hat дистрибутивах.
Synaptic
Synaptic - это графический менеджер пакетов linux, написанный на GTK и использующий apt в качестве бэкенда. Он отлично подходит для пользователей, которые не хотят работать в командной строке. Здесь есть все те же необходимые функции что и в apt.
Gnome Software
Это центр приложений Gnome. Там есть далеко не все программы, которые есть в репозиториях и подход к установке немного другой. Вы устанавливаете не пакеты по отдельности, а саму нужную программу. Обо всём остальном центр приложений заботиться сам, скрывая от вас подробности. Gnome Software поддерживает не только Deb пакеты, но и Rpm в системах, основанных на RHEL, а также snap и flatpack, о которых мы поговорим ниже.
AppGrid
Простенькая альтернатива для центра приложений Ubuntu. Программе очень далеко до функциональности Synaptic. Она позволяет устанавливать приложения так же, как и центр приложений Gnome Software и выглядит очень похоже на Windows Store.
2. RPM (Red Hat Package Manager)
Это базовый формат и система управления пакетами, созданная в компании Red Hat. Так же как и dpkg, это низкоуровневый инструмент, для которого существует несколько утилит, это такие пакетные менеджеры Linux:
YUM (Yellowdog Updater, Modified)
Это популярный менеджер пакетов linux с открытым исходным кодом для командной строки. Он используется для управления пакетами в дистрибутиве Red Hat. Если сравнивать с инструментом apt, то здесь есть все те же функциональные возможности, правда, работает немного медленнее. Написан на Python 2. Немного больше об отличиях формата пакетов rpm и deb можно прочитать в отдельной статье. А про сам Yum есть такая статья.
DNF – Улучшенный Yum
Это пакетный менеджер linux, используемый в дистрибутиве Fedora начиная с версии 18. Он представляет из себя следующее поколение YUM.
Сначала он был создан только для экспериментов, но начиная с Fedora 22 он используется как пакетный менеджер по умолчанию. Он работает почти также как и YUM, для разрешения зависимостей используется библиотека libsolv и hawkey, но отличие от YUM, написан на Python 3. Здесь можно наблюдать увеличение скорости работы, а также уменьшение потребления памяти.
3. Pacman - менеджер пакетов Arch Linux
Этот менеджер пакетов linux разработан командой программистов для дистрибутива ArchLinux. Сейчас, кроме ArchLinux, он используется в Manjaro и еще нескольких малоизвестных дистрибутивах, основанных на ArchLinux.
Здесь поддерживаются все основные возможности - установка программного обеспечения, автоматическое разрешение зависимостей, обновление, удаление пакетов, а также загрузка пакетов программ для последующей установки.
Программа специально спроектирована для удобной работы с пакетами в Arch Linux. А поскольку это система с режимом выпуска в виде роллинг релизов, то этот пакетный менеджер подходит наилучшим образом. Pacman поддерживает систему в актуальном состоянии синхронизируя списки пакетов из основного сервера. Причем существует только одна версия системы - текущая.
Программа написана на Си, а в качестве пакетов используются файлы формата tar.xz, которые на самом деле являются обычными архивами, внутри которых находятся файлы программы и файл описания установки PKGBUILD. Читайте подробнее про установку пакетов в Arch Linux в отдельной статье.
4. Zypper - пакетный менеджер OpenSUSE
Это пакетный менеджер linux для командной строки в дистрибутиве OpenSUSE и SUSE Linux. Разработан специально для этого дистрибутива и использует библиотеку libzypp, в которой реализованы такие общие возможности, как доступ к репозиторию, установка пакетов, разрешение зависимостей, работа с репозториями и многое другое.
Zypper написан на Си и работает намного быстрее чем Yum. Поддерживает различные форматы репозиториев, а также расширения репозиториев. Поддерживается как обычное обновление, так и обновление патчами, во время которого только накладываются патчи на установленные пакеты для исправления проблем с безопасностью. Подробнее - здесь.
5. Portage - пакетный менеджер Gentoo
Этот менеджер пакетов используется в Gentoo, менее популярном, но не менее мощном дистрибутиве. И это один из лучших менеджеров пакетов. Основное преимущество системы Gentoo, это возможность собирать пакеты из исходников во время установки. Это дает очень много полезных вещей, таких как возможность настроить флаги компиляции, включить только нужные функции, а также собрать пакеты именно под свой процессор. Все это поддерживается Portage, базовая функциональность, такая как обновление, удаление пакетов и разрешение зависимостей здесь тоже есть.
Интересной особенностью есть состояния Portage, а также слоты, позволяющие устанавливать несколько версий одной программы или библиотеки в вашей системе. Здесь нет как такового списка пакетов, есть только дерево портов, в котором и содержаться файлы ebuild с инструкциями для сборки всех пакетов. Сохранив дерево можно очень просто откатить систему к предыдущей версии. Подробнее тут.
6. Snap
Универсальный менеджер пакетов разработанный в Canonical, который можно использовать как в Deb, так и в Rpm дистрибутиве. Здесь используется особый формат пакетов, в котором все зависимости программы упаковываются в пакет с ней, поэтому программа оказывается самодостаточной и может запускаться в любой системе, где установлен этот пакетный менеджер. Кроме того, менеджер пакетов snap добавляет безопасности, программам не разрешено использовать те функции, что им не нужны. Более подробно про snap можно почитать в этой статье.
7. Flatpack
Пакетный менеджер Flatpack разработан для Fedora в качестве конкурента для Snap. Он может практически всё то же самое. В пакет программы упаковываются всё её зависимости и она может работать в любой системе где установлено программное обеспечение Flatpack. Безопасность здесь тоже работает. Главное отличие в том, что Flatpack более открыт, чтобы добавить пакет в Snap Store надо подписать соглашение с Canonical, а Flatpack больше похож на формат PPA. Любой человек может создать свой репозиторий и размещать там всё, что ему надо.
Выводы
Как я уже говорил, основная цель статьи - обзор пакетных менеджеров linux, познакомить пользователей с лучшими пакетными менеджерами, а также показать отличия между ними. Конечно, пользователям определенного дистрибутива придется изучать свой менеджер пакетов более детально. Если я упустил важный момент, об одной из программ, напишите в комментариях!
Chocolatey — менеджер пакетов в среде Windows по аналогии с apt-get в Linux Мире.
Начал использовать по причине разработки на Node.js под Nodester. Мне хотелось бы регулярно обновлять ноду, git, dropbox, да и тот же skype, при этом, не заморачиваясь со скачиванием msi инсталяторов и установками, а просто обновить одной командой:
Так, как для работы постоянно требуется доступ к консоли, git, node, jade. Я хотел бы немножечко проиллюстрировать работу с Chocolatey в контексте (на примере) подготовки к разработке под Nodester.
Требования для установки:
Устанавливается просто, выполнением такой незамысловатой команды (в 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
Эта команда аналогична следующей
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 с соответствующим текстом (исходная болванка):
2. После чего создаем скрипт инсталляции C:\sliksvn\tools\chocolateyInstall.ps1
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\НАЗВАНИЕ_ПАКЕТА руками.
В последних версиях уже появилось удаление пакетов через chocolatey uninstall. По команде удаляется содержимое пакета из C:\Chocolatey\lib\ название пакета, то есть утилиты которые устанавливаются распаковываясь в эту папку удаляются полностью. То что инсталлировалось в систему и в Program Files — не трогается.
Классический способ загрузки и установки программ в Windows всегда загружал последнюю версию со своего веб-сайта или со страницы для загрузки программ и устанавливал ее из установщика. Это, наверное, самый простой способ сделать это. Тем не менее, он на световые годы опережает другие операционные системы, такие как Linux, у которых есть менеджер пакетов, который автоматизирует и упрощает всю эту задачу. Спустя много лет Microsoft наконец-то решил добавить диспетчер пакетов, похожий на Linux APT, в Windows 10. Это WinGet.
WinGet, также называется Диспетчер пакетов Windows является недавно созданным менеджер пакетов для Windows, которая со временем станет частью этой операционной системы по умолчанию. Благодаря этой программе мы сможем установить программное обеспечение непосредственно через серию официальных репозиториев через Интернет без необходимости поиска программ вручную. Конечно, это инструмент с открытым исходным кодом, и репозитории сообщества тоже.
Это позволит нам, например, создавать собственные сценарии с необходимыми программами, что сэкономит нам много времени при настройке любой операционной системы или виртуальной машины.
Команды и программы для WinGet
Хотя WinGet находится на очень ранней стадии разработки, этот новый менеджер пакетов выглядит многообещающе. Вот некоторые из команд, которые уже работают для этого инструмента:
- установить: позволяет нам установить выбранную программу.
- показать: показывает информацию о выбранном пакете.
- Источник: позволяет нам управлять репозиториями программного обеспечения.
- поиск: позволяет искать и просматривать информацию о приложениях.
- hash: справочная система для установки программ.
- validate: проверьте правильность манифеста программы.
- –Помощь: отображает справку.
- –Info: отображает дополнительную информацию для устранения неполадок.
- –Version: показывает версию клиента WinGet, которую мы используем.
Как мы видим, хотя это все еще в очень ранняя фаза развития У него уже есть основные функции, которые мы можем предоставить этой программе. Тем не менее, в этом менеджере пакетов еще есть много функций. Не идя дальше, нет функции Удалить программа, см. список со всеми установленными, ни для обновления. Хотя Microsoft уже подтвердила, что эти функции будут доступны очень скоро.
Что касается программного обеспечения, которое мы можем найти, Microsoft делает хорошую работу по включению программ, наиболее загружаемых пользователями. Например, мы можем найти программное обеспечение из саман, 7Zip, GIMP, ShareX, Spotify, qBittorrent и многие другие.
Мы можем ознакомиться с полным списком программ, включенных в репозитории WinGet из Следующая ссылка .
Попробуйте WinGet
Хотя, как мы уже говорили, WinGet все еще находится на очень ранней стадии своего развития, Microsoft позволяет любому пользователю с Windows 10 версии 1709 или выше попробовать первую предварительную версию программы.
Для этого нам нужно скачать эту версию из своего хранилища и установите его на компьютер. WinGet распространяется как Приложение UWP из магазина Microsoft, поэтому нам нужно будет установить файл appxbundle, который мы будем загружать с GitHub.
WinGet используется из CMD или из PowerShell. Мы должны выполнить команду, за которой следует параметр, который мы хотим выполнить. Например, чтобы установить 7Zip, мы можем сделать это, выполнив:
winget install 7zip
Через несколько секунд на компьютере будет установлена последняя версия программы.
Нам не нужно запоминать все программы. Благодаря команде «поиск» мы сможем найти все пакеты, которые соответствуют определенному слову.
Не единственный менеджер пакетов для Windows
Хотя правда в том, что WinGet выглядит очень многообещающе, это не первый подобный проект для Windows. Не вдаваясь в подробности, одним из самых популярных, которые мы можем найти, является Шоколад. Этот инструмент уже давно на рынке и делает то же самое, но лучше. По крайней мере на данный момент.
Нам придется дать Microsoft время на дальнейшее совершенствование своего инструмента с открытым исходным кодом и посмотреть, как понемногу Windows продолжает становиться операционной системой, максимально похожей на Linux. И это, кстати, неплохо.
В Windows 10 появился новый менеджер пакетов WinGet (Windows Package Manager), который можно использовать для установки приложений из командной строки (по аналогии с пакетными менеджерами Linux, например yum, dnf, apt и т.д.).
WinGet.exe это консольная утилита (которая как и менеджер пакетов Chocolatey) позволяет упростить установку программ на компьютере Windows. Чтобы установить какую-то программу вам не нужно искать ее дистрибутив, скачивать его, запускать мастер установки и щелкать Далее -> Далее …. С помощью Windows Package Manager вы можете выполнить установку программы с помощью всего одной команды.
Репозиторий WinGet на данный момент ведется Microsoft, но предусмотрена возможность подключения сторонних репозиториев. Исходный код доступен на GitHub
Установка менеджера пакета WinGet в Windows 10
Менеджер пакетов WinGet можно установить в Windows 10, начиная с билда 1709. Microsoft обещает, что в следующем билде (после Windows 10 2004) winget будет встроен в Windows.
Вы можете установить WinGet через Microsoft Store (там он называется App Installer):
Invoke-WebRequest -Uri "https://github.com/microsoft/winget-cli/releases/download/v0.1.4331-preview/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle" -OutFile "C:\PS\WinGet.appxbundle"
Add-AppxPackage "C:\PS\WinGet.appxbundle"
Проверьте установленную версию winget командой:
Основные команды winget:
Последние две команды в основном используются при публикации программ в репозитории.
Установка программ с помощью WinGet
Прежде чем установить программу из репозитория WinGet, нужно узнать имя пакета. Для поиска пакетов используется команда search . Например, чтобы найти zip архиваторы в репозитории, выполните команду:
winget search zip
Команда вернула список пакетов (с названиями и версиями), которые подходят под ваш запрос.
Можно получить информацию о конкретном пакете:
winget show 7zip.7zip
Например, нам нужно установить архиватор 7zip. Скопируйте его имя или ID и выполните команду установки:
winget install 7zip.7zip
Как вы видите, менеджер пакетов автоматически скачал и установил приложение. Всего одной командой. Программа появилась в списке установленного софта.
Теперь установим, например, Windows Terminal и VSCode для написания PowerShell скриптов:
Сначала ищем имена пакетов:
winget search terminal
winget search "visual studio"
Затем устанавливаем их по очереди:
winget install Microsoft.WindowsTerminal –e ; winget install Microsoft.VisualStudioCode –e
Если вы хотите запустить установку пакета с программой в фоновом режиме, используйте параметр –silent:
winget install "VLC media player" --silent
Как вы видите, менеджер пакетов WinGet позволяет существенно упростить установку программ . В репозитории доступны большинство популярных программ для Windows. Теперь не нужно искать сайт разработчика, регистрироваться и качать дистрибутивы. Для установки программы достаточно выполнить одну команду. Продукт WinGet еще находится в разработке, в нем отсуствует ряд полезного функуионала (в том числе пока не работает обновление пакетов), но думаю в ближайший год он будет доведен до полноценного инструмента по управлению пакетами в Windows.
Chocolatey NuGet - это менеджер пакетов компьютеров, похожий на apt-get, но созданный с учетом Windows. Он построен поверх командной строки NuGet и инфраструктуры NuGet.
Что касается обновлений, то приложение позволяет вам обновлять практически все на вашем компьютере с помощью нескольких нажатий клавиш.
Альтернативы для Chocolatey
551Ninite - это самый простой способ установки программного обеспечения.
Ninite - это самый простой способ установки программного обеспечения. Выберите нужные приложения, и установщик Ninite автоматически загрузит и установит все выбранные приложения сразу. Это на 100% качественная связью. Ninite автоматически отклоняет панели инструментов браузера и другие ненужные файлы.
132Synaptic - это графическая программа управления пакетами для apt.
Synaptic - это графическая программа управления пакетами для apt. Она предоставляет те же функции, что и утилита командной строки apt-get с интерфейсом GUI на основе Gtk +.
37Patch My PC - небольшое портативное приложение, которое обновляет сторонние приложения и Windows.
Patch My PC - это небольшое портативное приложение, которое обновляет сторонние приложения и обновления Windows. Крайне важно постоянно обновлять программное обеспечение, чтобы обеспечить исправление уязвимостей. В настоящее время Patch My PC может обновлять почти 100 сторонних приложений, и этот список растет с каждым выпуском!
34Npackd (произносится «распакованный») - это магазин приложений / менеджер пакетов / торговая площадка.
Npackd (произносится как «распакованный») - это магазин приложений / менеджер пакетов / торговая площадка для приложений Windows. Это поможет вам найти и установить программное обеспечение, поддерживать вашу систему в актуальном состоянии и удалить ПО, если в нем больше нет необходимости.
11Средство развертывания программного обеспечения, используемое для обеспечения актуальности нескольких компьютеров Windows в вашей сети.
App Grid является альтернативой Ubuntu Software Center.
App Grid - это новая облегченная альтернатива Ubuntu Software Center, пытающаяся упростить обнаружение приложений с помощью представления сетки, которое включает в себя скриншоты и оценки приложений.
9WPKG - это инструмент для развертывания и распространения программного обеспечения с открытым исходным кодом.
WPKG - это инструмент для развертывания и распространения программного обеспечения с открытым исходным кодом. На сайте есть большая коллекция тихих инсталляторов.
8Total Software Deployment программа для управления удалённым развёртыванием и удалением программного обеспечения в корпоративной сети.
Total Software Deployment программа для управления удалённым развёртыванием и удалением программного обеспечения в корпоративной сети, поддерживает расширенное параллельное развертывание, что позволяет устанавливать несколько пакетов на нескольких компьютерах одновременно. Можно указать, сколько компьютеров и сколько пакетов на компьютер можно установить в любой момент. Развертывание происходит всего одним кликом.
5Мир приложений в магазине Microsoft.
Мир приложений в магазине Microsoft.
Что в этом списке?
В списке находится программы которые можно использовать для замены Chocolatey.
Это аналоги похожие по функционалу на Chocolatey, которые заменяют программу частично или полностью. Этот список содержит 9 замен.
С помощью пользователей мы собираем каталог похожих друг на друга программ, чтобы вы могли подобрать альтернативу и скачать их. На сайте можно скачать популярные программы для Windows, Mac Os, Android и iPhone
Читайте также: