- Запускаем командную строку Linux на iOS
- Подключение к клавиатуре
- Устанавливаем оболочку на iOS
- Вариант 1: оболочка в «песочнице»
- Вариант 2: SSH
- Вариант 3: запуск Linux
- Запуск Alpine Linux с iSH
- Установка iSH
- Управление пакетами
- Установка текстового редактора
- Смена оболочки
- Смена оболочки по умолчанию
- Настройка Python и pip
- Читаем мануалы
- Дополнительная информация
- На правах рекламы
- Убунту с яблочным вкусом: Ubuntu на Apple iMac
- 1. Предыстория
- 2. Apple iMac
- 3. Ubuntu + iMac
- 4. Оргвыводы
Запускаем командную строку Linux на iOS
А вы знали, что можно запустить командную строку Linux на устройстве iOS? Возможно, вы спросите: «Зачем мне пользоваться текстовыми приложениями на iPhone?» Справедливый вопрос. Но если вы читаете Opensource.com, то, вероятно, знаете на него ответ: пользователи Linux хотят иметь возможность работать с ним на любом устройстве и хотят пользоваться собственными настройками.
Но больше всего они жаждут решения сложных задач.
У меня есть семилетний 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, поэтому думал, что такой минимализм будет раздражать, но на самом деле он мне очень понравился.
В 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 оболочкой по умолчанию, изменим эту строку на следующую:
Затем сохраним файл и выйдем.
Я уверен, что существует хороший способ изменить путь к оболочке, чтобы её можно было использовать сразу. Но я его не знаю, поэтому рекомендую вернутся в браузер приложений, принудительно выполнить выход из оболочки и для надёжности выключить и перезагрузить iPad или iPhone. Снова откройте iSH и теперь кроме сообщения «Welcome to Alpine!» и информации о запуске с apk вы увидите стандартное приветственное сообщение логина fish: Welcome to fish, the friendly interactive shell. Ура!
Настройка 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. Используем исключительно брендовое оборудование, лучшую в своём роде панель управления серверами собственной разработки и одни из лучших дата-центров в России и ЕС. Поспешите заказать!
Источник
Убунту с яблочным вкусом: Ubuntu на Apple iMac
1. Предыстория
Мне понадобилось купить компьютер. Так случается порой.
В моём случае ситуация была такова: я менял работу, а единственный компьютер, который у меня был — рабочий ноутбук, который, конечно же, пришлось отдавать.
Пару лет назад я (в очередной раз) пересел на Убунту, да так уже и не смог больше с неё слезть: чем дальше, тем больше к ней привязывался и тем сильнее раздражала и не нравилась Windows. Жене на нетбук, разумеется, — Ubuntu Netbook Edition. Я также поставил Убунту тёще (живущей за тысячи километров от меня), и, хоть прошло уже более года, никаких серьёзных проблем ни с компьютером, ни с тёщей не возникло. На рабочем ноутбуке основной системой является также Убунту, а для программ, которые необходимо запускать в Windows, используется бесплатный VMware Player (и Windows, шедшая с ноутом в комплекте).
Короче говоря, альтернатив этой системе я не рассматривал и ни разу не собирался.
Я приступил к выбору подходящего компьютера. Ноутбуки я отбросил сразу, т.к. устал от маленьких экранов и неудобных клавиатур. Десктопы занимают лишнее место на столе, пылятся и шумят.
Так родилась идея купить моноблок. Но изделия от HP или Packard Bell выглядят просто чудовищно (больше всего раздражают тонны глупых наклеек «Intel® Inside™», «Graphics by Nvidia®», «Designed™ for Windows®», портящие всё, и так не очень положительное, впечатление от продукта), и при этом не столь уж дёшевы. Я пытался найти хотя бы монитор с дизайном, похожим на продукты Apple, но в магазинах продаются только кошмарные изделия из чёрного блестящего пластика с кучей рюшечек и кнопочек, которые одним своим заляпанным пыльным видом на магазинной полке уже отталкивают. Тут же гордо стоят алюминиевые «айМаки», выделяясь среди них, подобно белому лебедю среди чёрных ворон.
Цены, конечно, кусаются. В амстердамском MediaMarkt (я живу в Нидерландах) самый дешёвый iMac 21.5” стоит €1099 (ещё недавно у них в онлайн-магазине, кстати, была акция, когда все айМаки продавались на сотню дешевле, и данный компьютер можно было купить за €999. Но я её пропустил). iMac 27” стоит от €1499 (Intel Core2 Duo 3.06 GHz) до €1999 (Intel Core i7 2.66 GHz).
С другой стороны, за такой монитор (диагональ 27”, LED-подсветка, 2560×1440) и компьютер с такими характеристиками (включающий, кстати, беспроводные клавиатуру и мышь), даже без учёта дизайна и алюминиевого корпуса, цена в полторы тысячи кажется вполне оправданной. Ну а дизайн, как я уже писал, уникален.
Так естественным образом выбор плавно сузился до продукции Apple. Беглое изучение вопроса (затронутого, кстати, на Хабре), показало, что Убунту на iMac установить вполне реально. Проблемы у «Линукса для человеческих существ» наблюдаются только со встроенным Bluetooth-адаптером и с расширенными функциями клавиатуры и мыши. Поскольку мне важен был сам компьютер, а не клавиатура с мышью, меня это не останавливало.
2. Apple iMac
Итак, iMac. Предстоял нелёгкий выбор между двумя доступными видами: 21.5” и 27”. В поединке скупости и жадности победила последняя. Всё-таки один раз живём! Я решил взять младшую модель iMac 27”, поскольку более дорогие отличаются только более мощными процессором и видеокартой, что мне (равно как и дополнительные потребляемая мощность и нагрев) было не нужно.
В MediaMarkt была очередная акция: именно в эту модель, за те же €1499, ставили вместо 4 ГБ памяти 8 — мелочь, а приятно! Хоть я и не планировал ставить туда 64-битную версию системы (а 32-битная видит только 3 ГБ), но это так — навырост.
Продавец вытащил из недр магазина коробку, такую здоровую и тяжёлую, что я понял, что парковаться надо было поближе. Весит она 20 кг, из которых около 14 весит собственно компьютер-моноблок. Но о коробках чуть позже.
Что же я купил? Обратимся к сухим цифрам и буквам:
Габариты
Основное
Дисплей
Графика и видео
Аудио
Сетевая поддержка
Периферия
Прочее
Распаковываем
Коробка была с почётом довезена до дома, где устройство подверглось традиционному анпакингу и анрэппингу, далее в картинках (всё кликабельно до невозможности).
1. Красивая белая коробка спрятана в другую, страшненькую, из некрашенного картона. Дескать, помним мы об экологии, помним:
3. Даже в плане упаковочных материалов Apple лаконична:
4. В белой коробочке находятся клавиатура, мышь и прочие мелочи:
5. А кроме неё в коробке только моноблок и сетевой шнур:
6. Это, собственно, всё:
7. Выдвигаем коробочку. Ага, клавиатура и книжечки:
8. Вот он — результат полного анпакинга:
9. Так моноблок выглядит со стороны, кхм, спины (он всё ещё залеплен прозрачным пластиком):
10. Содержимое белой коробочки крупным планом:
11. Инструкция, клавиатура, тряпочка для монитора, листочек, расписывающий прелести Magic Mouse, сама Magic Mouse, сетевой шнур:
12. Что ж, все кабели — а их ровно один: сетевой — подключены. Нажимаем заветную кнопку сзади-слева:
13. Из 17-ваттных динамиков раздаётся мощный аккорд (в первый раз впечатляет, в последующие раздражает; лечится с помощью StartupSound.prefPane), начинается загрузка:
14. Включаем мышь переключателем на пузе:
15. Спрашивается предпочтительный язык:
16. Начинается демонстрация разлетающейся фразы «Добро пожаловать» на разных языках:
18. И вот, наконец, дело дошло до «X»:
19. Указываем, где мы находимся:
20. Выбираем себе клавиатуру:
21. А есть ли у вас ещё один Мак? Нет? А жаль:
22. Настраиваем Wi-Fi:
23. Нас тщетно пытаются проидентифицировать:
24. Введите всё, что вы про себя знаете:
25. Ещё несколько тысяч вопросов:
26. Создаём основную учётную запись:
27. Можете тут же, с встроенной камеры, сфотографироваться для досье:
28. Поработайте с MobileMe! Спасибо, не надо:
29. Спасибо, что докликали до этого места:
30. Финальный результат — в точности то, что было нарисовано на коробке:
Мне, как человеку, всю жизнь проработавшему в Windows и Linux, временами было очень тяжело: непривычно абсолютно всё. Меню сверху (про это постоянно забывается). Кнопка «Развернуть» в заголовке окна делает совсем не то, что ожидаешь. Настройки и инструменты другие. Сочетания клавиш незнакомые. Safari ведёт себя странно, а с вкладками — так просто дико. Настроек у него минимум. Про клавиатуру я вообще молчу.
Но выглядит всё красиво и вылизанно, надо отдать должное. Женщинам нравится.
Ну а нам надо двигаться дальше.
3. Ubuntu + iMac
Установка
Дело было за малым: нужно было установить свой любимый Линукс. Но путь неожиданно оказался довольно тернистым.
Происходит всё примерно так:
1. Заходим в Mac OS X в «Дисковую утилиту» и ужимаем яблочный раздел. Делов на пару минут, причём переразбиение происходит прямо на запущенной системе. Впечатляет.
2. Ставим любимый в народе rEFIt для удобного выбора загружаемой системы. Пара пустяков.
3. Перезагружаемся. Любимая флешка с live-дистрибутивом Убунту уже воткнута в спину монитору.
rEFIt ничего, кроме Mac OS X, не видит. Хм… Видимо, загрузка с USB считается в Apple злом.
4. Достаём болванку, загружаем Mac OS X, долго с непривычки разбираемся и, наконец, записываем на CD ISO-образ Ubuntu 10.04 LTS.
5. Вставляем CD в щель, он проглатывается. Пергружаемся. Ура, теперь rEFIt показывает рядом с яблоком пингвина.
6. Выбираем его и радостно жмём на «Install Ubuntu». Не тут-то было — экран темнеет и более не освещается, хотя система чем-то там занимается.
7. Ищем на форумах. Да, у 10.04 LTS проблемы с драйвером ATI (хотя предыдущие версии ставились без проблем). Нужен проприетарный драйвер, но инсталлятор его использовать не может.
8. Скачиваем образ Ubuntu Alternate: с инсталлятором, работающим в текстовом режиме.
9. Вздохнув, достаём ещё одну болванку. Повторяем процесс.
10. Теперь всё запускается. Отвечаем на уйму вопросов инсталлятора, ставим систему на свободное место на диске.
11. Установка завершена. Перегружаемся, вынув Live CD. rEFIt явственно видит пингвина на жёстком диске.
12. Загружаем его, а в меню Grub (отображаемом после этого) выбираем Recovery Mode и добавляем в параметры ядра radeon.modeset=0 nomodeset reboot=pci
13. Система грузится, обнаруживает проблему с графикой. Выбираем однократный Low Resolution Mode.
14. Убунту загрузилась. Идём в проприетарные драйверы и ставим драйвер ATI.
15. Добавляем в постоянные параметры ядра reboot=pci . Перегружаемся. Вуаля! Всё работает.
Доводим до ума
Изначально работает всё, кроме звука, некоторых клавиш на клавиатуре и жестов на Magic Mouse.
Камера, Wi-Fi, кард-ридер подхватываются без проблем.
Клавиатура мне не понравилась сразу.
Да, она красивая, алюминиевая и беспроводная, но слишком маленькая — в ущерб функциональности. Нет кнопок Insert, Delete, Home, End, Page Up, Page Down — все они заменены сочетаниями с кнопкой fn. Терпеть подобное издевательство я был совершенно не намерен.
Поэтому я вновь направился в MediaMarkt и купил Mac Aluminium Keyboard (€39) — проводную, но не менее алюминиевую и (почти) со всеми привычными кнопками, и двумя USB-портами в качестве бонуса:
Оригинальная клавиатура отправилась в темноту ящика стола.
Путём несложных манипуляций функциональные кнопки приводятся в привычное состояние (без нажатой fn действуют как F-кнопки, с нажатой fn — как дополнительные клавиши). Теперь не хватает только Insert (заменяется fn+Enter), PrintScreen, ScrollLock, Pause. Кнопка «Ё» находится слева от «Z» (на картинке изображена немного другая клавиатура), а вместо неё есть кнопка «±§» (почему-то дублирующая кнопки «|/» и «<>»). Жить можно.
С мышью я поступил ещё проще: подключил свой Logitech Wireless Laser Mouse: работает просто превосходно, и не тормозит, как Яблочная Синезубая Волшебная Мышь (её после загрузки надо было кликать несколько секунд, чтобы она заработала). Она пока что составила компанию беспроводной клавиатуре — до лучших времён (поддержка сенсорной поверхности, говорят, в следуюшем ядре уже будет).
Собственно Bluetooth мне вообще не нужен, так что с ним я даже не заморачивался.
31. Рабочий стол теперь кажется необъятным. Чтобы рассмотреть разные его части, приходится вертеть головой. Вот как он выглядит:
Но проблемы на этом не кончились.
Когда айМак поселился на столе, вскоре стало очевидно, что ему в этом месте слишком тесно. Пришлось отправиться в ближайшую «Икею» (наш любимый семейный магазин) за новой мебелью. Новому столу вскоре составили компанию стул, полка, освещение и ещё куча мелочей.
Теперь моё рабочее место выглядит так:
4. Оргвыводы
В целом я доволен. Я получил систему, которую хотел, на компьютере, который мне нравится.
После некоторого привыкания всё стало очень удобным:
- Компьютер работает тихо и занимает минимум места при своих немалых габаритах.
- Система работает надёжно. Проприетарный видеодрайвер от ATI немного сыроват, но в основном справляется хорошо.
- Клавиатура уже почти нравится.
- Камера и микрофон работают восхитительно.
- Звук более чем достаточен.
В общем и целом, рекомендую.
Upd. Всем спасибо за комменты. Подавляющая часть их сводится к «ну ты и извращенец, а нафига?». Всё очень просто: мне нравится Ubuntu и не нравится Mac OS. Причин много: я к ней привык, привычный свободный софт (репозиторий тоже, ага), куча имеющихся скриптов, нежелание тратить время на привыкание к другой системе. Зато нравится iMac.
И всё, никакой пропаганды — ни айМака, ни Икеи, ни МедиаМаркта, ни Голландии. Просто описал свой опыт — может, кому-то будет интересно.
Upd2. Спасибо за совет про PAE-ядро. Я про него знал, но не думал, что всё так просто. Теперь вся память видна, в магазине не обманули:
Upd3. Знаменитый ZeroLinux с ubuntuforums.org, автор многих советов по установке Ubuntu на iMac, попросил у меня инвайт. Конечно же, я не мог ему отказать. Встречаем: ZeroBit!
Upd4. Одна из немногих проблем с графикой — подтормаживание экрана при изменении размеров окна, разворачивании и переходе в полноэкранный режим (баг #351186) — лечится установкой пропатченного xserver из репозитория:
sudo apt-add-repository ppa:info-g-com/xserver-xorg-1.7.6-gc
sudo aptitude update
После этого нужно установить оба доступных обновления xserver-* и перелогиниться. Тормоза пропадают!
Источник