Alpine linux apk команды

Обновлено: 04.07.2024

Alpine Linux — независимый, маленький, быстрый дистрибутив Linux. Используется в Docker контейнерах.

Видео-обзор

Видео-обзор дистрибутива Alpine Linux.

Система инициализации OpenRC

В качестве системы инициализации используется OpenRC.

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

Изначально OpenRC использовалась в Gentoo (c 2011 года) и была основана на SysVInit.

Использует BusyBox

Alpine Linux использует набор UNIX-утилит BusyBox. BusyBox это реализация классических утилит UNIX, выполненная в виде одного небольшого исполняемого файла.

BusyBox реализует все основные утилиты (GNU fileutils, shellutils и т.д.), которые обычно реализованы как отдельные файлы. Утилиты BusyBox, как правило, более компактные и могут иметь меньше опций, чем GNU аналоги. Не смотря на это, BusyBox предоставляет достаточно полную среду для любой небольшой или встраиваемой системы.

Вызов утилит в BusyBox выполняется путем исполнения файла busybox и указания требуемой команды и аргументов. Например, для вызова команды ls аргументом -l, необходимо выполнить:

Библиотека musl

В качестве реализации стандартной библиотеки языка C (libc) в Alpine Linux используется библиотека musl.

Самой популярной библиотекой языка C является GNU Libc (glibc). glibc обеспечивает реализацию системных вызовов и основные функции, например open, malloc и так далее. Библиотека musl представляет собой более легковесную альтернативу glibc.

musl была разработана с нуля Ричем Фелкером. Ставились цели разработать более чистую и эффективную реализацию, которая будет соответствовать стандартам.

Скомпилированная версия библиотеки представляет собой один динамический объектный файл. При использовании версии musl для статического связывания, можно создавать портативные программы в виде одного исполняемого бинарного файла.

Первый релиз musl появился 11 февраля 2011.

Помимо Alpine Linux библиотека musl также используется в дистрибутивах Gentoo, OpenWrt, Sabotage, Void Linux и других.

История

Изначально Alpine Linux являлся форком LEAF Project (Linux Embedded Appliance Framework Project).

Назначение, использование

  • Из-за своего маленького размера Alpine Linux часто применяется в контейнерах.
  • Может использоваться во встраиваемых системах. Например, в основе операционной системы для смартфонов postmarketOS лежит Alpine Linux.
  • Может быть установлен в качестве «десктоп-системы».

Система управления пакетами apk-tools

Используется собственная система управления пакетами apk-tools.

Изначально apk-tools представляла собой набор shell-скриптов, но потом была полностью переписана на C.

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

  • Установка / Обновление / Удаление пакетов на работающей системе.
  • Восстановление системы в ранее сконфигурированное состояние (например, после перезагрузки), включая все ранее установленные пакеты и локально измененные конфигурационные файлы. Данная фаза актуальна только для системы, работающей из RAM (diskless mode).

apk-tools включает две утилиты:

  • apk — утилита для установки, обновления и удаления пакетов в работающей системе. (Не путать с apk форматом для Android)
  • lbu — утилита для сохранения данных, необходимых для последующего восстановления системы в ранее сконфигурированное состояние. lbu происходит от названия «Alpine local backup»

Операции утилиты apk

Утилита apk поддерживает следующие операции:

ОперацияОписание
addдобавление и обновление пакетов.
delудаление пакетов.
fixвыполнить восстановление или обновление, установленных пакетов.
updateобновить индекс — получить актуальную информацию о пакетах, находящихся в репозиториях.
infoвывести информацию об установленных или доступных пакетах.
searchпоиск по названию или описанию пакетов.
upgradeобновление пакетов.
cacheуправление кешем.
versionсравнение версий установленных и доступных в репозитории пакетов.
indexсоздать индекс на основе списка пакетов.
fetchскачать, но не устанавливать пакеты.
auditпоказать изменения в файловой системе после установки пакета.
verifyпроверить подпись.
dotсоздать граф (graphviz) для описания структуры пакета.
policyпоказать репозиторий, из которого пакет был установлен, а также репозитории, в которых также содержится этот пакет.
statsотобразить статистику, включая количество установленных и доступных пакетов, количество директорий, файлов и т.д.
manifestотобразить контрольные суммы для файлов, содержащихся в пакете.

Репозитории и пакеты

Пакеты для Alipne Linux представляют собой tar.gz архивы и имеют расширение .apk. В архиве пакета содержатся программы, конфигурационные файлы и метаданные о зависимостях.

Репозиторий представляет собой обычную директорию, в которой находятся .apk файлы. Также в директории размещается специальный индексный файл APKINDEX.tar.gz

Утилита apk может устанавливать пакеты из различных репозиториев. Список репозиториев представлен в файле /etc/apk/repositories

Если система была загружена с USB-носителя или CD-ROM, то файл /etc/apk/repositories может иметь следующее содержимое:

Установка Alpine Linux

Система устанавливается в консольном режиме. Для установки используется скрипт setup-alpine

Существует три режима установки, которые влияют на то, как будет работать система:


Давайте посмотрим, как используйте команду apk для установки обновлений безопасности или нового набора пакетов на сервере Alpine Linux.

Как обновить список пакетов


Рис.01: Как обновить список пакетов в Alpine Linux

Как искать пакеты

htop-doc-2.0.2-r0 - Интерактивная программа просмотра процессов (документация) htop-2.0.2-r0 - Интерактивная программа просмотра процессов

Чтобы перечислить все доступные пакеты, а также их деионы

Как найти пакеты по символам подстановки?

Как установить un или несколько пакетов по имени

(1/1) Установка htop (2.0.2-r0) Запуск busybox-1.25.1-r0.trigger OK: 39 MiB в 28 пакетах

(1/28) Установка libuuid (2.28.2-r1) (2/28) Установка apr (1.5.2-r1) (3/28) Установка expat (2.2.0- r0) (4/28) Установить apr-util (1.5.4-r2) (5/28) Установить pcre (8.39-r0) (6/28) Установить apache2 (2.4. 25-r0) Запуск apache2-2.4.25 -r0.pre-install (28.07) Установка php7-common (7.0.16-r0) (28.08) Установка libedit (20150325.3.1-r3) (28.09) Установка lib

Как сохранить конкретный пакет и не обновлять его


Как установить локальные файлы .apk ?

Как удалить или удалить пакет (ы) ( s) по имени

(1/1) Purge htop (2.0.2-r0) Выполнение busybox-1.25 .1-r0.trigger OK: 39 Mio in 27 пакетов

Как удалить старые кеши пакетов в Alpine Linux?

Как обновить уровень ниже Alpine Linux

Как обновить обновлять только выбранные пакеты?

Как просмотреть список установленных пакетов?


Рис.02: Как отобразить / перечислить установленные пакеты в Alpine Linux

Узнайте, к какому пакету принадлежит файл ..

Список содержимого ПАКЕТА

htop-2.0 .2-r0 содержит: usr / bin / htop usr / share / applications / htop.desktop usr / share / pixmaps / htop.jpg

Проверьте, есть ли ПАКЕТ установлен

Список пакетов, от которых зависит ПАКЕТ

atop-2.2_p3-r0 зависит от: so: libc.musl-x86_64.so.1 so: libncursesw.so.6 so: libz.so.1

Список всех пакетов на основе ПАКЕТА

Показать установленный размер ПАКЕТА

atop-2.2_p3-r0 установленный размер: 520192

Распечатайте ПАКЕТ deion

bash-4.3 .46 -r5 deion: оболочка GNU Bourne Again

Распечатать всю информацию о ПАКЕТЕ

info apk -a bash bash-4.3.46-r5 deion: оболочка GNU Bourne Again bash-4.3.46-r5 Веб-страница: http: //www.gnu. Org / software / bash / bash.html "bash- 4.3.46-r5 установленный размер: 700416 bash-4.3.46-r5 зависит от: busybox так: libc.musl-x86_64.so.1 так: libncursesw.so.6 так: libreadline. so.6 bash-4.3.46 -r5 предоставляет: bash-4.3.46-r5 требуется для: bash-Completion-2.4-r0 bash-4.3.46-r5 содержит: bin / bashbug bin / bash bash -4.3.46 -r5 триггеры: bash-4.3.46-r5 имеет правило автоматической установки: bash-4.3.46-r5 влияет на автоматическую установку: bash-doc-4.3.46-r5bash-4.3.46-r5 заменяет: bash-4.3.46-r5 лицензию: GPL3 +

Как посмотреть статистику по репозиториям и установкам?

параметры и примеры команды apk

Команда Используйте Пример
apk update Обновить список пакетов apk update
apk update Обновить систему apk update
apt ugrade
apk add pkg Добавить пакет apk добавить apache
apk del pkg Удалить пакет apk del nginx
search Topk -v Поиск пакетов поиск apk -v
поиск apk -v -d 'nginx *'
поиск apk - v 'apache *'
info apk Список всех установленных пакетов info apk
apk fix Восстановить пакет или обновите его без изменения основных зависимостей apk fix
apk policy pkg Показать политику репозитория для пакетов apk policy bash
statistics apk Показать статистику по репозиториям и установкам statistics apk
См. также
  • / etc / apk / repositories .
  • apk страница руководства

Cron job: что такое cron job и когда его использовать?

Cron job: что такое cron job и когда его использовать?

Cron job: что такое cron job и когда его использовать?

Cron job: автоматическое выполнение задачи Что ответить на вопрос «Что такое cron job? ? Первый: «демон». Во-вторых: бог. По крайней мере, если мы будем придерживаться только коннотации имени этой функции. Строго говоря, термин «Cron» - это аббревиатура от «команда, выполняемая при уведомлении», то .

Как установить wget на Debian или Ubuntu Linux

Как: использовать PAC-файл автонастройки прокси для определенного домена

Как: использовать PAC-файл автонастройки прокси для определенного домена

Как: использовать PAC-файл автонастройки прокси для определенного домена

Как: использовать PAC-файл автонастройки прокси для определенного домена Я хотел бы использовать прокси-сервер squid только для домена с именем foo. example. com. Как автоматически настроить параметры прокси с помощью файла PAC, чтобы скрыть домен и подключить все остальное напрямую? Как указать URL.

Как использовать приложение WordPress на вашем iPhone, iPad и Android (Руководство)

Как использовать приложение WordPress на вашем iPhone, iPad и Android (Руководство)

Как использовать приложение WordPress на вашем iPhone, iPad и Android (Руководство)

Знаете ли вы, что почти половина мирового трафика веб-сайтов поступает с мобильных устройств? Люди не просто просматривают веб-страницы на мобильных устройствах, они также создают контент с помощью мобильных приложений на таких платформах, как WordPress, Facebook и другие медиа-сайты. В мобильных ус.

Unix / Linux: сжатый текстовый файл cat .GZ на экране

Unix / Linux: сжатый текстовый файл cat .GZ на экране

Unix / Linux: сжатый текстовый файл cat .GZ на экране

Unix Linux: сжатый текстовый файл cat . GZ на экране Чтобы сэкономить дисковое пространство на моем NAS (сервере сетевого хранения) на базе Linux, я сжал тысячи файлов отчетов 985 . txt с помощью программы gunzip. Однако мне нужно загрузить файл . gz (или открыть его в текстовом редакторе vim).

BASH Добавить текст / строки в файл

BASH Добавить текст / строки в файл

BASH Добавить текст / строки в файл

BASH Добавление текста строк в файл. Я новый пользователь системы Unix и использую bash в качестве оболочки по умолчанию. Я могу добавить текст в файл с помощью оператора >>, но как мне добавить текст в файл? Я хочу обратную операцию >>. Как я могу добавить данные в текстовый файл? Как добавить тек.

Сценарий оболочки для нумерации строк файлов

Сценарий оболочки для нумерации строк файлов

Сценарий оболочки для нумерации строк файлов

Сценарий оболочки для нумерации строк файлов Как пронумеровать каждую строку текстового файла? Как написать сценарий оболочки для отображения текстового файла с добавленными номерами строк? Вам не нужно писать сценарий оболочки для добавления чисел в текстовый файл или образец кода. Вы можете исполь.

Как использовать команду curl с http / 2 в MacOS X

Как использовать команду curl с http / 2 в MacOS X

Linux / Unix: команда sed Распечатать только соответствующие строки

Linux Unix: команда sed Печатать только совпадающие строки Я вижу много примеров и справочных страниц о том, как выполнять такие операции, как поиск и замена с помощью sed. Но я хочу сопоставить заданную строку или регулярное выражение шаблона и отобразить его на экране. Как печатать строки с совпа.

Linux Заблокировать учетную запись

Linux Заблокировать учетную запись

Linux Заблокировать учетную запись

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

Как просмотреть информацию об устройстве PCI в CentOS 7 и RedHat Enterprise Linux 7

Как просмотреть информацию об устройстве PCI в CentOS 7 и RedHat Enterprise Linux 7

Как просмотреть информацию об устройстве PCI в CentOS 7 и RedHat Enterprise Linux 7

Linux / UNIX Изменение настроек почты Crontab (MAILTO)

В Ubuntu Linux добавлена ​​конфигурация сети со статическим IPv6-адресом

В Ubuntu Linux добавлена ​​конфигурация сети со статическим IPv6-адресом

В Ubuntu Linux добавлена ​​конфигурация сети со статическим IPv6-адресом

В Ubuntu Linux добавлена ​​конфигурация сети со статическим IPv6-адресом Как настроить сеть со статическим IPv6 в операционных системах Ubuntu Linux Server? Как включить IPv6 для сервера Ubuntu Linux версии 14.04 или 16.04 LTS? Вам просто нужно отредактировать файл etc network interfaces и добави.

Debian / Ubuntu Linux: установите плагин веб-фильтра SquidGuard для Squid 3.x, чтобы блокировать нежелательные сайты

Debian / Ubuntu Linux: установите плагин веб-фильтра SquidGuard для Squid 3.x, чтобы блокировать нежелательные сайты

Debian / Ubuntu Linux: установите плагин веб-фильтра SquidGuard для Squid 3.x, чтобы блокировать нежелательные сайты

Debian Ubuntu Linux: Установите подключаемый модуль веб-фильтра SquidGuard для Squid 3. x, чтобы блокировать нежелательные сайты. Как установить и настроить SquidGuard - подключаемый модуль веб-фильтра для Squid, чтобы ограничить доступ к доменам URL-адресам на основе контроля доступа к спискам? К.

Отображение Perl и передача аргументов командной строки с помощью @argv

Отключить цвет в терминале linux / сеансе bash

Отключить цвет в терминале linux / сеансе bash

Отключить цвет в терминале linux / сеансе bash

Отключить цвет в терминале linux сеансе bash. Я новый пользователь GNU Linux. Я вижу красочную подсказку bash. Традиционные команды, такие как команда grep или команда ls, также отображают вывод в цвете. Я также хотел бы отключить цвета в текстовом редакторе vim. Мне не нравятся цвета. Как отключи.

Пакет / программное обеспечение для удаления Linux с помощью интерфейса командной строки

Пакет / программное обеспечение для удаления Linux с помощью интерфейса командной строки

Пакет / программное обеспечение для удаления Linux с помощью интерфейса командной строки

Пакет программное обеспечение для удаления Linux с помощью CLIC Как удалить пакет или программное обеспечение с помощью командной строки в операционных системах Linux? Как я могу удалить программное обеспечение в Debian или Ubuntu Linux? Можете ли вы сказать мне команду для удаления пакета в Linux .

Как узнать температуру графического процессора Raspberry Pi и процессора ARM в Linux

Как узнать температуру графического процессора Raspberry Pi и процессора ARM в Linux

Как узнать температуру графического процессора Raspberry Pi и процессора ARM в Linux

Как узнать температуру графического процессора Raspberry Pi и процессора ARM в Linux Я использую компьютер с размером кредита Raspberry PI 23. Как я могу узнать температуру моего графического процессора или процессора Raspberry PI с помощью параметра командной строки операционной системы Linux? Как .

Введение в Sass для новых дизайнеров тем WordPress

Введение в Sass для новых дизайнеров тем WordPress

Введение в Sass для новых дизайнеров тем WordPress

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

Как обрабатывать электронные письма с уведомлениями о комментариях WordPress

Как обрабатывать электронные письма с уведомлениями о комментариях WordPress

Как обрабатывать электронные письма с уведомлениями о комментариях WordPress

Вы хотите улучшить свои электронные письма с уведомлениями о комментариях WordPress? Комментарии способствуют обсуждению и вовлечению пользователей во многих блогах. Однако WordPress не очень хорошо справляется с уведомлением пользователей о комментариях. В этой статье мы покажем вам, как лучше упра.

Пытаюсь установить пакет apk add имя_пакета, говорит нет такого.

В интернете посмотрел, что можно apk search имя_пакета

Сделал, вывелось alpine-conf-3.9.0-r1

попробовал добавить в /etc/apk/repositories такие строчки:

не помогло… Не могу понять, что же выдал мне apk search …

p.s. с linux недавно

Давай что-то одно


Просто не стоит начинать с alpine начни с убунты.

Как это поможет с ответом на мой вопрос?


это не ответ а совет

У «Alpine» офигенный сайт , там ведь про всё необходимое для использования предельно ясно описано.

P.S. Список пакетов наверно надо обновить сначала — apk update


Потому что список пакетов надо сначала загрузить, а потом искать по нему.


Нет уж. Пусть начинает с нормального. Alpine годится. Не с убунты же начинать.

wandrien ★ ( 25.09.20 06:48:14 )
Последнее исправление: wandrien 25.09.20 06:50:15 (всего исправлений: 1)

Альпине заранее не правильный дистр , если скажут вот взяли оттуда то переделанный mips итд , а то украли и бахвалятся что андроид обтянули

Ребята, всем спасибо за советы. Но (я негодую) неужели ни кто не может ответить конкретно на простой вопрос.

Ты вот тут смотрел наличие пакета (и его правильное название) именно для версии 3.9?

Вызывал ли ты apk update ?


Вот это уже наглость.

Ответ в пятом комменте темы.

но сначала меня интересует (вопрос в заголовке), что является результатом вывода apk search?

и я почитал сайт в ответах и погуглил вопрос, а т.к. по теме у меня знаний еще 0, то я не понимаю, что является результатом вывода этой команды (название пакета в репозитории/название пакета в локальном кеше/ или что-то другое, например - версия дистрибутива, в репозитории которого есть такой пакет)


но сначала меня интересует (вопрос в заголовке), что является результатом вывода apk search?

Результатом запуска apk search без параметров является список всех известных пакетному менеджеру пакетов.

Результатом запуска apk search что_то является список известных пакетному менеджеру пакетов, в имени которых есть что_то .

Чтобы закачать полный список пакетов, нужно сначала выполнить apk update .

musl помимо того что несовместим с glibcшным софтом ещё и достаточно ограниченный libc. Будь alpine на glibc - был бы смысл

Запускаем командную строку Linux на iOS

Но больше всего они жаждут решения сложных задач.

У меня есть семилетний iPad 2 Mini, который по-прежнему неплохо подходит для чтения электронных книг и других задач. Однако я хочу использовать его и для доступа к командной строке приложений с моим набором программ и скриптов, без которых не могу работать. Мне нужно окружение, к которому я привык, а также моя стандартная среда разработки. И вот как мне удалось этого добиться.

Подключение к клавиатуре

Работать с командной строкой для программирования через экранную клавиатуру телефона или планшета довольно неудобно. Я рекомендую подключить внешнюю клавиатуру, или через Bluetooth, или воспользовавшись адаптером подключения камеры, чтобы подключить проводную клавиатуру (я выбрал второе). При подключении разделённой клавиатуры Kinesis Advantage к iPhone 6 получается странное устройство, напоминающее корпоративный кибердек из классической ролевой игры Shadowrun.

Устанавливаем оболочку на iOS

Для запуска полнофункциональной системы Linux на iOS есть два варианта:

  • Secure shell (SSH), подключаемая к компьютеру с Linux
  • Запуск виртуальной системы с помощью Alpine Linux с iSH, который является open source, но должен устанавливаться с помощью проприетарного приложения TestFlight компании Apple

В качестве альтернативы существуют два приложения-эмулятора терминала в open source, предоставляющие возможность работы с open-source-инструментами в ограниченном окружении. Это самый урезанный вариант — на самом деле так вы запускаете не Linux, а инструменты Linux. При работе с этими приложениями существуют жёсткие ограничения возможностей, однако вы получаете частичную функциональность командной строки.

Прежде чем перейти к сложным решениями, я рассмотрю простейший способ.

Вариант 1: оболочка в «песочнице»

Один из самых простых способов — установить приложение для iOS LibTerm . Это опенсорсная командная оболочка в «песочнице» с поддержкой более 80 команд по цене в ноль долларов. В комплекте с ней поставляются Python 2.7, Python 3.7, Lua, C, Clang и многое другое.

Примерно такой же функциональностью обладает a-Shell , описываемая разработчиками как «тестовый интерфейс пользователя для платформы с экранным вводом». Исходники a-Shell выложены open source , она находится в активной разработке, предоставляет доступ к файловой системе и поставляется с Lua, Python, Tex, Vim, JavaScript, C и C++, а также с Clang и Clang++. Она даже позволяет устанавливать с помощью pip пакеты Python.

Вариант 2: SSH

Ещё одним шагом вперёд по сравнению со скачиванием приложения является настройка SSH-клиента. Уже долгое время мы могли использовать любое из множества приложений SSH-клиентов для iOS, чтобы подключаться к серверу, на котором запущен Linux или BSD. Преимущество использования SSH заключается в том, что на сервере может работать любой дистрибутив с любым программным обеспечением. Вы работаете удалённо и результаты работы просто передаются в эмулятор терминала на устройстве iOS.

Blink shell — это популярное платное SSH-приложение в open source . Если не обращать внимания на маленький экран устройства, то использование этого ПО похоже на подключение к серверу через любую другую командную строку. Терминал Blink замечательно выглядит, имеет множество готовых тем и функцию создания собственных, в том числе возможность настройки и добавления новых шрифтов.

Вариант 3: запуск Linux

Использование SSH для подключения к серверу под Linux — это отличный способ доступа к командной строке, но для него требуется внешний сервер и сетевое подключение. Это не самая большая преграда, но её нельзя полностью игнорировать, поэтому вам может потребоваться работать с Linux без сервера.

Если это ваш случай, то вам нужно будет сделать ещё один шаг вперёд. TestFlight — это проприетарный сервис для установки разрабатываемых приложений ещё до того, как они были выложены в Apple App Store. Приложение TestFlight можно установить из App Store, а затем пользоваться тестовыми приложениями. Приложения в TestFlight позволяют в течение ограниченного времени работать с ними ограниченному количеству бета-тестеров (обычно до 10 000). Чтобы скачать тестовое приложение, нужно перейти со своего устройства по ссылке, которая обычно находится на веб-сайте разработчика тестового приложения.

Запуск Alpine Linux с iSH

iSH — это open-source-приложение TestFlight, запускающее виртуальную машину с готовым дистрибутивом Alpine Linux (немного потрудившись, можно запускать и другие дистрибутивы).

Важная особенность: приложение экспериментальное. Так как iSH сейчас пока являются тестовым приложением, не ожидайте постоянной и надёжной работы. Приложения TestFlight ограничены по времени. Моя текущая сборка будет работать всего 60 дней. Это означает, что через 60 дней меня исключат и придётся снова присоединяться к следующему этапу тестирования iSH. Более того, я потеряю все свои файлы, если не экспортирую их с помощью Files на iOS или не скопирую их на Git-хост или через SSH . Иными словами: Не надейтесь, что всё это будет продолжать работать! Не помещайте в систему ничего важного для вас! Выполняйте резервное копирование в отдельное место!

Установка iSH

Начните с установки TestFlight из App Store. Затем установите iSH, получив ссылку на установку с веб-сайта приложения. Есть ещё один способ установки с использованием AltStore, но я его не пробовал. Или, если у вас есть платный аккаунт разработчика, можете скачать репозиторий iSH с GitHub и установить его самостоятельно.

При помощи ссылки TestFlight установит приложение iSH на ваше устройство. Как и в случае с любым другим приложением, на экране появится значок.

Управление пакетами

iSH выполняет эмулятор x86 с Alpine Linux. Alpine — это крошечный дистрибутив размером меньше 5 МБ. Я впервые работал с Alpine, поэтому думал, что такой минимализм будет раздражать, но на самом деле он мне очень понравился.

Запускаем командную строку Linux на iOS


В Alpine используется менеджер пакетов apk , который проще, чем даже apt или pacman.

Как установить пакет:

Как удалить пакет:

Как узнать другие команды и информацию:

Обновление менеджера пакетов:

Установка текстового редактора

Стандартным текстовым редактором Alpine является Vi, но я предпочитаю Vim, поэтому установил его:

При желании можно установить Nano или Emacs.

Смена оболочки

Не знаю, как насчёт вас, а мне нужна была fish shell . Другие люди предпочитают Bash или Zsh . Однако в Alpine используется ash! Ash — это форк оболочки Dash, которая сама является форком оригинального ash, или Almquist shell . Её приоритетом является скорость. Я решил обменять скорость на встроенное автодополнение, цвета, управление клавишами Vim и подсветку синтаксиса, которые я люблю и знаю по fish shell.

Если вам нужна Bash с её автодополнением и man-страницами, то установите их:

Минималистичная идеология Alpine обычно означает, что некоторые программы, которые в других дистрибутивах являются одним пакетом, будут разделены на несколько пакетов поменьше. Также это означает, что вы можете настраивать и уменьшать размер системы ровно так, как вам этого хочется.

Подробнее об установке Bash можно узнать из этого туториала .

Смена оболочки по умолчанию

После установки fish можно временно переключиться на неё, введя fish и перейдя в оболочку. Но я хочу сделать fish оболочкой по умолчанию, а команда chsh , которую я использовал в других дистрибутивах, не работала.

Сначала узнаем, куда установилась fish:

Вот, что получилось у меня:

Далее изменим login shell на fish. Можете использовать любой удобный вам редактор. Если в новичок, то установите Nano (командой apk add nano ), чтобы можно было отредактировать файлы конфигурации и сохранить их через CTRL+X, подтвердить и выйти.

Но я использовал Vim:

У меня первая строка была такой:

Чтобы сделать fish оболочкой по умолчанию, изменим эту строку на следующую:

Затем сохраним файл и выйдем.

Запускаем командную строку Linux на iOS

Настройка Python и pip

Я решил добавить Python (версию 3.x), не только для того, чтобы писать код, но и потому, что я пользуюсь несколькими программами на Python. Установим его:

Хотя Python 2.x устарел, можно установить и его:

Установим менеджер пакетов Python под названием pip и setuptools :

Для установки и настройки менеджера пакетов понадобится какое-то время, поэтому просто подождите.

Затем можно будет скачать инструмент для передачи файлов по сети curl :

Читаем мануалы

Fish использует встроенное автодополнение на основе man-страниц. Как и другие пользователи командной строки, я пользуюсь мануалом man , а в Alpine он не установлен. Поэтому я установил его с терминальным пейджером less :

В дополнение к man я использую великолепный проект tldr pages , предоставляющий упрощённые и управляемые сообществом man-страницы.

Я установил его с помощью pip:

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

Разумеется, всю эту работу по установке можно автоматизировать с помощью dotfiles или скрипта установки, но на самом деле это не очень соответствует идеологии Alpine — настройке минимальной установки чётко под свои потребности. Кроме того, это ведь заняло так много времени, правда?

Дополнительная информация

В Вики iSH есть страница " what works " с отчётами о том, какие пакеты сейчас работают. Кстати, похоже, что npm сейчас не работает .

На ещё одной вики-странице объясняется, как получить доступ к файлам iSH из приложения iOS Files. Это один из способов, которым можно перемещать и копировать файлы.

Можно также установить Git (да! apk add git ) и пушить свою работу в удалённый репозиторий или передавать его на сервер через SSH. И, разумеется, можно скачивать и запускать любое количество замечательных open-source-проектов с GitHub.

Подробнее об iSH можно узнать по этим ссылкам:

На правах рекламы

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

Читайте также: