Apt get для windows

Содержание
  1. Магия Chocolatey: apt-get и yum для Windows
  2. Установка Chocolatey
  3. Какие еще есть пакеты и откуда они берутся?
  4. Применение:
  5. Cmd и Powershell скрипты
  6. Puppet
  7. Chocolatey и Desktop
  8. apt-get command does not work on Ubuntu-On-Windows / Windows Subsystem for Linux [closed]
  9. 6 Answers 6
  10. Менеджер пакетов apt-get, apt-cach
  11. Вывод списка доступных пакетов
  12. Поиск имени пакета и описания программы
  13. Просмотр информации о пакете
  14. Определение зависимостей пакета
  15. Просмотр статистики кэша
  16. Обновление индекса пакетов
  17. Обновление программных пакетов
  18. Установка или обновление конкретных пакетов
  19. Установка пакетов без обновления
  20. Обновление пакетов без установки
  21. Установка заданной версии пакета
  22. Удаление пакетов
  23. Очистка дискового пространства
  24. Загрузка только исходного кода пакетов
  25. Загрузка пакетов с распаковкой и компиляцией
  26. Загрузка пакета без установки
  27. Просмотр лога изменений пакета
  28. Проверка нарушенных зависимостей
  29. Автоматическая очистка кэша apt-get
  30. Автоматическое удаление установленных пакетов
  31. Заключение

Магия Chocolatey: apt-get и yum для Windows


Сегодня я расскажу Вам о волшебстве. И это волшебство способно изменить жизнь системного администратора Windows раз и навсегда.

В наше время становится все меньше и меньше людей, которые хоть раз не устанавливали софт в среде Linux. Это невероятно просто: для установки midnight commander (mc), в среде RH (RedHat Enterprise, CentOS, Fedora, и т.д) нам всего лишь нужна пара «волшебных» команд:

Менеджер пакетов yum позаботится о том, чтобы установилась самая свежая версия mc, а также о зависимостях пакета, если таковые имеются. Но что же делать, если в нашем распоряжении находится Windows, а мы хотим что-то подобное? Правильно, перейти на Linux или читать дальше!

Под моей «опекой» находится гетерогенная сеть из Windows и Linux машин (проще сказать — зоопарк), и вот уже около двух лет для установки софта под Win* я пользуюсь, где это возможно, Chocolatey. Chocolatey (chocolatey.org, github.com/chocolatey) — система управления пакетами, во многом схожая с apt-get или yum, но только для Windows.

На хабре уже касались темы Chocolatey в контексте разработчика, сегодня я хочу взглянуть на этот замечательный инструмент с точки зрения системного администратора. Chocolatey работает на основе технологии NuGet (активно используется разработчиками софта под Windows), и основная черта Chocolatey — пакеты чаще всего не содержат установочных файлов (setup.msi, setup.exe, и т.д. ). Работает это следующим образом: в пакете находится скрипт-установщик на powershell, который скачивает и устанавливает нужную версию установочного файла из нужного места в интернете, а Вам остается только наслаждаться легкостью установки.

Установка Chocolatey

Прежде чем получить возможность использовать магию Chocolatey нам нужно установить ее ядро. Для этого запускаем в командной строке:

Эта команда скачает и запустит основной скрипт установки chocolatey.org/install.ps1, а также настроит требуемые переменные окружения. Теперь, когда у нас есть все необходимое давайте испытаем систему управления пакетами и установим Nodepad++. Достаточно выполнить следующую команду:

Какие еще есть пакеты и откуда они берутся?

Как и NuGet, Chocolatey обладает внушительным списком пакетов, который располагается в репозитории, он же библиотека пакетов. Вот только некоторые из них:

  • Git — 51191 скачиваний
  • Notepad++ — 37533 скачиваний
  • 7Zip — 37802 скачиваний
  • Google Chrome — 25960 скачиваний
  • Java Runtime — 25699 скачиваний
  • NodeJS — 25542 скачиваний
  • Mozilla Firefox — 20747 скачиваний
  • Adobe Flash Player — 20660 скачиваний
  • VLC Player — 20419 скачиваний
  • Ruby 2.0 — 19587 скачиваний

Пакеты добавляются каждый день, ведь любой желающий может добавить свой пакет на chocolatey.org, главное чтобы он отвечал требованиям.

  • Не публикуйте незаконные программы. Программы, которые незаконны в большинстве стран мира также запрещены к размещению на Chocolatey.org. Это также применимо к программам, которые нарушает авторские права, пиратские программы и «кряки». Помните, что это также касается программ которые используются для пиратства.
  • Не пакуйте программы в chocolatey на которые у Вас нет прав на распространение. Пожалуйста, уточняйте правила распространения программного обеспечения и не нарушайте их.
  • Не публикуйте вирусы либо любые другие программы наносящие вред.
  • Публикуйте только те программы, которые будут полезны для других. Если Ваш пакет не относится к этой категории — не публикуйте его.
  • Не публикуйте spyware или adware. Программы, которые поставляются с встроенными adware или spyware или любыми другими нерелевантными программами не разрешены для публикации. Обычно все нерелевантные программы можно исключить из установки используя ключи установщика. Примерами таких программ являются PDFCreator и CCleaner.
  • Не публикуйте программы, которые уже опубликованы. Используйте поиск по Chocolatey.org. Если Вы хотите улучшить уже существующий пакет — свяжитесь с человеком, который поддерживает пакет или отправьте pull-request в его репозиторий.
  • Не включайте другие программы в Ваш пакет, если для них уже есть свой пакет. Если Вашему пакету требуется те или иные программы, существующий пакет должен быть включен Вами в качестве зависимости.
  • Разделяйте зависимости на несколько пакетов. Старайтесь разделить пакет на как можно больше пакетов. Например программа поставляется с опциональными модулями. Создайте дополнительные пакеты для модулей, вместо того, чтобы включать их в общий пакет. Эта идея уже давно применяется в пакетах под Linux по той причине, что это позволяет создавать легковесные пакеты и минимизирует шанс конфликта.
Читайте также:  Windows 10 показывать мой компьютер

Как это работает?

Я хотел бы подробнее разобрать содержание пакетов Chocolatey на примере logstash, который я создавал специально для развертывания агента logstash на сервере Windows:

Здесь видно, что в пакете всего 2 файла: logstash.nuspec и chocolateyInstall.ps1.

В этом файле будет интересно разобрать секцию dependencies, в которой мы указываем что нашему пакету необходимо наличие 3х других пакетов определенных версий, а именно javaruntime, NSSM (позволяет установить наш .jar файл в качестве службы Windows), а также Chocolatey определенной версии. Если какой-либо из необходимых пакетов отсутствует, либо его версия не соответствует требуемой — система зависимостей разрешит ситуацию и приведет все к требуемому виду. Стоит отметить, что для указания версий используется нотация nuget.

Применение:

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

Cmd и Powershell скрипты

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

Представьте сколько времени это экономит Вам?

Puppet

Я использую Puppet для управления конфигурацией своей инфраструктуры, что экономит мне массу времени и нервов. В Puppet есть замечательная концепция ресурсов, а также декларативный стиль, которые в купе помогают мыслить абстрактно, на уровне «Какая программа должна стоять на том или ином сервере», а не на уровне «Какие комманды я должен запустить на Windows, а какие на Linux». Для Puppet существует провайдер Chocolatey, который позволяет нам сделать следующее:

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

Chocolatey и Desktop

Предлагаю рассмотреть два способа использования Chocolatey для администрировании рабочих станций.

ChocolateyGUI — это графический интерфейс для системы управления пакетов Chocolatey. Удобный способ для обзора текущего состояния репозитория, а также состояния локально-установленных пакетов. Мне почему-то очень сильно напомнило раннюю версию synaptic или даже aptitude. Работает достаточно сносно. Установить его, кстати, можно из коммандной строки:

Можно пойти еще дальше, использовать интерфейс WPI для удобного выбора пакетов, в котором будут исполняться команды Chocolatey. При помощи WPI можно удобно группировать программы по категориям, а также создавать шаблоны и наборы установки.
Решение не всегда сможет стать абсолютной альтернативой использования USB-HDD в качестве источника, но заменив все возможные компоненты на аналогичные из репозитория Chocolatey Вы избавите себя от мучительного копирования образа (папки) с полным набором софта (Photoshop, Office, 3D Max с Архикадом, что там еще?) и оболочкой WPI (а все ради того, чтобы поставить «легкие» программы вроде Google Chrome, Notepad++, Avast и т.п.).

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

  • Бизнес
  • Бухгалтер
  • Разработчк
  • Домашний пользователь
  • Медиа-Станция




Таким образом, WPI всего лишь является оболочкой для запуска команд Chocolatey, что позволяет уменьшить суммарный объем дистрибутива. Конечно, при таком подходе на клиентской машине уже должен быть рабочее интернет-подключение, что сегодня не является проблемой, за исключением отдельных случаев.
Возвращаясь к программам которые отсутствуют в репозитории Chocolatey.org, следует упомянуть, что Chocolatey поддерживает любые NuGet фиды, а не только предлагаемый по-умолчанию chocolatey.org. Заливаем важные файлы в DropBox и создаем свой пакет где-нибудь на www.myget.org — это очень просто!

Читайте также:  Paintbrush ��� mac os

Если кому интересно, могу рассказать в подробностях (в форме отдельного поста) как создать свой пакет и как загрузить его в репозиторий chocolatey.org, и о том, как я научил Windows устанавливать все обновления без моего участия (с перезагрузками и лицензиями), как я обновляю базу maxmind.dat в автоматическом режиме, как я использую logstash и многом другом, и все это не без помощи chocolatey и puppet!

В заключение скажу, что на мой взгляд, идея децентрализованной системы управления пакетам для Windows и ее реализация — очередной способ убедиться что в наши дни opensource и открытие технологии становится не менее качественными и применимыми к реалиям системного администрирования. Закрытый код все реже становится рыночным преимуществом того или иного сообщества / компании, в то время как реализация и поддержка играют огромную роль. Представить что десять лет назад открытый проект, созданный одним человеком сможет создать такой резонанс в широких кругах, да еще и Windows кругах — нереально, а сегодня Chocolatey — это еще один шанс окунуться в opensource сообщество и убедиться в открытой возможности внести свой вклад в общую идею.

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

И под конец, небольшой опрос:

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

apt-get command does not work on Ubuntu-On-Windows / Windows Subsystem for Linux [closed]

Want to improve this question? Update the question so it’s on-topic for Stack Overflow.

Closed 1 year ago .

I just installed Ubuntu-On-Windows recently added on Windows 10 for peoples on the fast ring. However, when trying to install new applications using apt-get , the command seems to fail everytime. I’m getting this error:

I know this is a beta and has just been released, but is there a fix for that out yet?

6 Answers 6

To fix the issue, I ran the following command:

apt-get update && apt-get upgrade

And now it works fine, even if I close and re-open the terminal.

This might be a problem of /etc/resolve.conf. The latest Windows Update fixes this problem, so you can try updates.

Check your Windows or Antivirus Firewall setting. You may need to disable it in order to allow network connectivity.

Found out that AVG explicitly has a toggle for allowing/disallowing firewall access to Ubuntu. Turns out you have to go into Firewall > Advanced Settings > Expert Settings > Advanced Settings > Allow any traffic of Windows subsystem for Linux .

Just documenting this in case someone else is looking for this one little checkbox, like I spent hours doing.

I had this issue and found that all networking was disabled. Turning off my bitdefender firewall allowed everything to work as expected. The standard windows firewall switched on automatically on doing this.

I found this post that indicates bitdefender 2017 has fixed the issue, and evidence of other AV products having similar issues but for me I’m happy with the windows firewall and Bash on Windows is working well.

I faced an issue where running sudo apt-get update does not show any sort of network activity and closed with the same error. Running the bash as an administrator solved this problem for me.

Менеджер пакетов apt-get, apt-cach

Утилита apt-get — функциональное бесплатное приложение командной строки для управления пакетами, используемое для работы с библиотекой Ubuntu APT (Advanced Packaging Tool) и выполнения установки новых пакетов, удаления пакетов, обновления пакетов и даже всей операционной системы.

Утилита командной строки apt-cache используется для работы с кэшем пакетов APT. Говоря простыми словами, этот инструмент используется для поиска программных пакетов, собирает информацию о пакетах, а также применяется для поиска доступных к установке пакетов в системах Ubuntu и Debian.

Читайте также:  Запуск устранения неполадок windows 10 при запуске

В данном руководстве мы рассмотрим важнейшие команды, необходимые для работы с этими утилитами.

Вывод списка доступных пакетов

Для получения списка всех доступных пакетов воспользуйтесь следующей командой:

Поиск имени пакета и описания программы

Чтобы перед установкой получить имя пакета и описание, воспользуйтесь опцией search. Выполнение команды с этой опцией выводит список соответствующих запросу пакетов с краткими описаниями. Допустим, нам нужно найти описание пакета vsftpd, команда будет выглядеть следующим образом:

Чтобы найти все пакеты, имя которых начинается на vsftpd, можно выполнить следующую команду:

Просмотр информации о пакете

Чтобы получить информацию о пакете и его краткую характеристику (номер версии, контрольные суммы, размер, размер после установки, категорию и т.д.), используется опция show:

Определение зависимостей пакета

Для проверки зависимостей заданных программных пакетов используется команда showpkg с именем пакета в качестве аргумента:

Просмотр статистики кэша

Для вывода общей статистики кэша (количество пакетов, версий, зависимостей, описаний и т.д.) используется команда stats:

Обновление индекса пакетов

Для синхронизации индексных файлов пакетов с их источниками, указанными в файле /etc/apt/sources.list, используется команда update. Она обновляет список пакетов и их версий, но не сами пакеты.

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

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

Если вам требуется обновление со всеми зависимостями и не важно, будут ли при этом добавлены или удалены программные пакеты, воспользуйтесь командой dist-upgrade:

Установка или обновление конкретных пакетов

Чтобы установить или обновить заданные пакеты, выполните команду install с именем одного или нескольких пакетов в качестве аргумента:

Следующая команда установит или обновит пакеты nethogs и goaccess:

Можно воспользоваться регулярным выражением, чтобы одной строкой задать маску для установки нескольких пакетов. Например, следующая команда установит все пакеты, содержащие ‘name’:

Установка пакетов без обновления

Использование команды install с опцией —no-upgrade исключает обновление уже установленных пакетов:

Обновление пакетов без установки

Опция —only-upgrade позволяет не устанавливать новые пакеты, а только обновить уже имеющиеся:

Установка заданной версии пакета

Для установки только заданной версии пакетов используйте ‘=’ и укажите номер нужной версии:

Удаление пакетов

Для удаления программных пакетов без удаления их файлов конфигурации (для их повторного использования в будущем) применяется команда remove:

Чтобы полностью удалить пакеты вместе с файлами конфигурации, воспользуйтесь командой purge:

Аналогичного результата можно достичь, если указать —purge в качестве опции к команде remove:

Очистка дискового пространства

Команда clean используется для очистки диска за счёт стирания загруженных пакетов из локального репозитория:

Загрузка только исходного кода пакетов

Чтобы загрузить только исходный код заданного пакета, нужно воспользоваться опцией —download-only source с именем пакета:

Загрузка пакетов с распаковкой и компиляцией

Для загрузки и распаковки исходного кода пакета в соответствующую директорию выполните команду source:

Если требуется ещё и компиляция исходного кода, укажите опцию —compile:

Загрузка пакета без установки

При помощи опции download можно загрузить любой пакет не устанавливая его. Например, следующая команда загрузит пакет nethogs в текущую рабочую директорию:

Просмотр лога изменений пакета

Флаг changelog загружает лог изменений пакета и показывает установленную версию пакета

Проверка нарушенных зависимостей

Команда check — инструмент для диагностики. Она используется для обновления кэша пакетов и проверки нарушенных зависимостей:

Поиск и построение зависимостей

Команда build-dep выполняет поиск по локальным репозиториям системы и устанавливает необходимые пакеты, чтобы корректно выстроить зависимости для указанного пакета. Если необходимый пакет отсутствует в локальных репозиториях, команда возвращает ошибку.

Автоматическая очистка кэша apt-get

Команда autoclean удаляет все .deb файлы пакетов из директории /var/cache/apt/archives для освобождения значительного объема дискового пространства:

Автоматическое удаление установленных пакетов

Команда autoremove используется для автоматического удаления пакетов, которые точно были установлены для обеспечения зависимостей других пакетов, но больше не нужны. Например, следующая команда удалит установленный пакет со всеми зависимостями:

Заключение

Мы рассмотрели большинство опций команд apt-get и apt-cache, но если потребуется информация о других опциях, ее можно получить в соответствующих man-страницах.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оцените статью