А вы ведалі, што можна запусціць камандны радок Linux на прыладзе iOS? Магчыма, вы спытаеце: "Навошта мне карыстацца тэкставымі праграмамі на iPhone?" Справядлівае пытанне. Але калі вы чытаеце Opensource.com, то, верагодна, ведаеце на яго адказ: карыстачы Linux жадаюць мець магчымасць працаваць з ім на любой прыладзе і жадаюць карыстацца ўласнымі наладамі.
Але больш за ўсё яны прагнуць вырашэння складаных задач.
У мяне ёсць сямігадовы iPad 2 Mini, які па-ранейшаму нядрэнна падыходзіць для чытання электронных кніг і іншых задач. Аднак я хачу выкарыстоўваць яго і для доступу да каманднага радка прыкладанняў з маім наборам праграм і скрыптоў, без якіх не магу працаваць. Мне трэба асяроддзе, да якога я абвык, а таксама маё стандартнае асяроддзе распрацоўкі. І вось як мне ўдалося гэтага дабіцца.
Падключэнне да клавіятуры
Працаваць з камандным радком для праграмавання праз экранную клавіятуру тэлефона ці планшэта даволі няёмка. Я рэкамендую падключыць знешнюю клавіятуру, або праз Bluetooth, або скарыстаўшыся адаптарам падлучэння камеры, каб падлучыць правадную клавіятуру (я абраў другое). Пры падлучэнні падзеленай клавіятуры Kinesis Advantage да iPhone 6 атрымліваецца дзіўная прылада, якое нагадвае
Усталёўваны абалонку на iOS
Для запуску поўнафункцыянальнай сістэмы Linux на iOS ёсць два варыянты:
- Secure shell (SSH), якая падключаецца да кампутара з Linux
- Запуск віртуальнай сістэмы з дапамогай Alpine Linux з iSH, які з'яўляецца open source, але павінен усталёўвацца з дапамогай прапрыетарнага прыкладання TestFlight кампаніі Apple
У якасці альтэрнатывы існуюць два прыкладанні-эмулятара тэрмінала ў open source, якія прадстаўляюць магчымасць працы з open-source-інструментамі ў абмежаваным асяроддзі. Гэта самы зрэзаны варыянт - насамрэч так вы запускаеце не Linux, а прылады Linux. Пры працы з гэтымі праграмамі існуюць жорсткія абмежаванні магчымасцяў, аднак вы атрымліваеце частковую функцыянальнасць каманднага радка.
Перш чым перайсці да складаных рашэнняў, я разгледжу найпросты спосаб.
Варыянт 1: абалонка ў «пясочніцы»
Адзін з самых простых спосабаў - усталяваць прыкладанне для iOS
Прыкладна такі ж функцыянальнасцю валодае
Варыянт 2: SSH
Яшчэ адным крокам наперад у параўнанні са спампоўкай прыкладання з'яўляецца настройка SSH-кліента. Ужо доўгі час мы маглі выкарыстоўваць любое са мноства прыкладанняў SSH-кліентаў для iOS, каб падлучацца да сервера, на якім запушчаны Linux ці BSD. Перавага выкарыстання SSH заключаецца ў тым, што на серверы можа працаваць любы дыстрыбутыў з любым праграмным забеспячэннем. Вы працуеце выдалена і вынікі працы проста перадаюцца ў эмулятар тэрмінала на прыладзе iOS.
Варыянт 3: запуск Linux
Выкарыстанне SSH для падлучэння да сервера пад Linux - гэта выдатны спосаб доступу да каманднага радка, але для яго патрабуецца вонкавы сервер і сеткавае падлучэнне. Гэта не самая вялікая перашкода, але яе нельга цалкам ігнараваць, таму вам можа запатрабавацца працаваць з Linux без сервера.
Калі гэта ваш выпадак, вам трэба будзе зрабіць яшчэ адзін крок наперад.
Запуск Alpine Linux з iSH
Важная асаблівасць: дадатак эксперыментальнае. Так як iSH зараз пакуль з'яўляюцца тэставым дадаткам, не чакайце пастаяннай і надзейнай працы. Прыкладанні TestFlight абмежаваныя па часе. Мая бягучая зборка будзе працаваць усяго 60 дзён. Гэта азначае, што праз 60 дзён мяне выключаць і давядзецца зноў далучацца да наступнага этапу тэставання iSH. Больш за тое, я страчу ўсе свае файлы, калі не экспартую іх з дапамогай Files на iOS ці не скапірую іх на Git-хост або
Устаноўка iSH
Пачніце з усталёўкі
Пры дапамозе спасылкі TestFlight ўсталюе прыкладанне iSH на вашу прыладу. Як і ў выпадку з любым іншым дадаткам, на экране з'явіцца значок.
Упраўленне пакетамі
iSH выконвае эмулятар x86 з Alpine Linux. Alpine – гэта малюсенькі дыстрыбутыў памерам менш за 5 МБ. Я ўпершыню працаваў з Alpine, таму думаў, што такі мінімалізм будзе раздражняць, але насамрэч ён мне вельмі спадабаўся.
У Alpine выкарыстоўваецца менеджэр пакетаў
Як усталяваць пакет:
apk add package
Як выдаліць пакет:
apk del package
Як даведацца іншыя каманды і інфармацыю:
apk --help
Абнаўленне мэнэджара пакетаў:
apk update
apk upgrade
Устаноўка тэкставага рэдактара
Стандартным тэкставым рэдактарам Alpine з'яўляецца Vi, але я аддаю перавагу Vim, таму ўсталяваў яго:
apk add vim
Пры жаданні можна ўсталяваць Nano ці Emacs.
Змена абалонкі
Не ведаю, як наконт вас, а мне патрэбна была
Ўстаноўка fish:
apk add fish
Калі вам патрэбна Bash з яе аўтададаткам і man-старонкамі, то ўсталюеце іх:
apk add bash bash-doc bash-completion
Мінімалістычная ідэалогія Alpine звычайна азначае, што некаторыя праграмы, якія ў іншых дыстрыбутывах з'яўляюцца адным пакетам, будуць падзелены на некалькі пакетаў паменш. Таксама гэта азначае, што вы можаце наладжваць і памяншаць памер сістэмы роўна так, як вам гэтага жадаецца.
Падрабязней аб усталёўцы Bash можна пазнаць з
Змена абалонкі па змаўчанні
Пасля ўстаноўкі fish можна часова пераключыцца на яе, увёўшы fish
і перайшоўшы ў абалонку. Але я хачу зрабіць fish абалонкай па змаўчанні, а каманда chsh
, якую я выкарыстоўваў у іншых дыстрыбутывах, не працавала.
Спачатку даведаемся, куды ўсталявалася fish:
which fish
Вось, што атрымалася ў мяне:
/usr/bin/fish
Далей зменім login shell на fish. Можаце выкарыстоўваць любы зручны вам рэдактар. Калі ў пачатковец, то ўсталюеце Nano (камандай apk add nano
), каб можна было адрэдагаваць файлы канфігурацыі і захаваць іх праз CTRL+X, пацвердзіць і выйсці.
Але я выкарыстаў Vim:
vim /etc/passwd
У мяне першы радок быў такі:
root:x:0:0:root:/root:/bin/ash
Каб зрабіць fish абалонкай па змаўчанні, зменім гэты радок на наступны:
root:x:0:0:root:/root:/usr/bin/fish
Затым захаваем файл і выйдзем.
Я ўпэўнены, што існуе добры спосаб змяніць шлях да абалонкі, каб яе можна было выкарыстоўваць адразу. Але я яго не ведаю, таму рэкамендую вернуцца ў браўзэр прыкладанняў, прымусова выканаць выхад з абалонкі і для надзейнасці выключыць і перазагрузіць iPad ці iPhone. Зноў адкрыйце iSH і зараз акрамя паведамлення "Welcome to Alpine!" і інфармацыі аб запуску з apk вы ўбачыце стандартнае прывітальнае паведамленне лагіна fish: Сардэчна запрашаем у рыбу, дружалюбную інтэрактыўную абалонку. Ура!
Настройка Python і pip
Я вырашыў дадаць
apk add python3
Хоць Python 2.x састарэлы, можна ўсталяваць і яго:
apk add python
Усталюем менеджэр пакетаў Python пад назвай pip і
python3 -m ensurepip --default-pip
Для ўсталёўкі і налады мэнэджара пакетаў спатрэбіцца нейкі час, таму проста пачакайце.
Затым можна будзе спампаваць прыладу для перадачы файлаў па сетцы
apk add curl
Чытаем мануалы
Fish выкарыстоўвае убудаваны аўтададатак на аснове man-старонак. Як і іншыя карыстачы каманднага радка, я карыстаюся мануалам man
, а ў Alpine ён не ўсталяваны. Таму я ўсталяваў яго з тэрмінальным пэйджарам
apk add man man-pages less less-doc
У дадатак да man я выкарыстоўваю цудоўны
Я ўсталяваў яго з дапамогай pip:
pip install tldr
Каманда tldr
злучаецца з вэбам для атрымання старонак, калі сустракае запыт на новую старонку. Калі вам трэба даведацца, як карыстацца камандай, то вы можаце напісаць нешта тыпу tldr curl
і атрымаць апісанне на простым англійскай мове і добрыя прыклады па выкарыстанні каманды.
Зразумела, усю гэтую працу па ўсталёўцы можна аўтаматызаваць з дапамогай
Дадатковая інфармацыя
У Вікі iSH ёсць старонка "
На яшчэ адной вікі-старонцы тлумачыцца, як
Можна таксама ўсталяваць Git (так! apk add git
) і пушыць сваю працу ў выдалены рэпазітар або перадаваць яго на сервер праз SSH. І, зразумела, можна спампоўваць і запускаць любую колькасць выдатных open-source-праектаў з GitHub.
Падрабязней пра iSH можна даведацца па гэтых спасылках:
На правах рэкламы
Удзіна прапануе
Крыніца: habr.com