iOSデバイスでLinuxコマンドラインを実行できることを知っていましたか? あなたは、”なぜ私は私の小さなiPhone上でテキストベースのアプリケーションを使用したいのですか?”OK、十分に公正。 それはかなり合理的な質問です。 しかし、あなたが読んでいるならOpensource.com Linuxユーザーは、任意のデバイスを使用できるようにしたい、と彼らはまた、独自のカスタマイズを使用したい:あなたはおそらく答えを知っています。そして、何よりも、彼らは挑戦を望んでいます。
私はまだ電子書籍やその他のタスクを読むために正常に動作する七歳のiPad2ミニを持っています。
私はまだ電子書籍やその他のタスクを読むた しかし、私はまた、アプリケーションのコマンドラインと私のスイートのプログラムとスクリプトにアクセスするためにそれを使用したいと思います。 私は慣れている環境と私の標準的な開発環境が欲しいです。 ここで私はそれをやった方法です。
キーボードに接続
携帯電話やタブレットの画面上のキーボードでプログラミングするためのコマンドラインを使用することは多くの楽しみでは 私は、Bluetooth経由で、または有線キーボード(私の好み)を接続するためにカメラ接続キットアダプタを使用して、外部キーボードを接続することをお勧めします。 私のIphone6に私のKinesis Advantageスプリットキーボードを差し込むと、古典的なロールプレイングゲームShadowrunからcorpのcyberdeckのようないくつかの奇妙な光学系のためになります。
iOSでシェルを取得する
iOSで完全なLinuxシステムを実行するには、2つのオプションがあります:
- Secure shell(SSH)をLinuxコンピュータに
- オープンソースであるが、Apple独自のTestFlightアプリを使用してインストールする必要があるalpine Linux with iSHを使用して仮想化されたシステムを実行する
また、制限された環境内でオープンソースのツールを提供するオープンソースの端末エミュレータアプリケーションが二つある。 これは最も限られたオプションです—実際にはLinuxを実行することはできませんが、Linuxツールを実行しています。 これらのアプリを使用してデバイスでできることには大きな制限がありますが、コマンドライン機能がいくつかあります。
私はより挑戦的な解決策を模索する前に、最も簡単なアプローチを見ていきます。
オプション1:サンドボックス化されたシェル
始める最も簡単な方法の一つは、iOSアプリLibTermを使用することです。 これは、80+commands0アプリにバンドルされたコマンドを持つサンドボックスオープンソースのコマンドラインシェルです。 Python2.7、Python3.7、Lua、C、Clangなどが同梱されています。
同様の線に沿って、画面ベースのプラットフォームのための”テキストベースのユーザーインターフェイス”として説明されている-シェルです。”A-Shellはオープンソースであり、積極的な開発では、ファイルシステムへのアクセスを許可し、ClangとClang++とともに、Lua、Python、Tex、Vim、JavaScript、C、C++に同梱されています。 それはあなたがPipでPythonパッケージをインストールすることさえ可能にします。オプション2:SSH anywhere
アプリのダウンロードから一歩先を行くのはSSHクライアントの設定です。 長い間、iOS上の多くのSSHクライアントアプリの1つを使用して、Linux distroまたはBSDを実行しているサーバーに接続することが可能でした。 SSHを使用する利点は、サーバーが好きなソフトウェアで任意のディストリビューションを実行できることです。 あなたはリモートで作業し、あなたの出力はちょうどあなたのiOSデバイスの端末エミュレータにパイプされます。
Blink shellは人気のある有料オープンソースのSSHアプリです。 小さな画面の外では、このソフトウェアを使用することは、他のコマンドプロンプトを介してサーバーに接続するのに似ています。 Blinkの端末は、含まれているテーマの数とカスタマイズし、新しいフォントを追加するなど、独自のテーマを作成する機能で、美しく見えます。
オプション3: Linuxを実行するサーバーにSSHを使用して接続することは、プロンプトにアクセスするのに最適な方法ですが、外部サーバーへのアクセスと接続が必要です。 これはエントリへの最悪の障壁ではありませんが、完全に無視できるわけではないので、このサーバー要件なしでLinuxを使用することをお勧めします。それがあなたのケースであれば、最先端でもう少し何かを抜け出す必要があります。
それがあなたのケースであれば、あなたは何かを壊す必要があ TestFlightは、開発中のアプリをAppleのApp Storeに提出する前にデプロイするための独自のサービスです。 ストアからTestFlightアプリをダウンロードし、多数のテストアプリケーションにサインアップすることができます。 TestFlightのアプリでは、限られた数の外部ベータテスター(一般的には最大10,000人)を限られた時間使用できます。 テストアプリをダウンロードするには、デバイスから直接リンクにアクセスする必要があります。
Run Alpine Linux with iSH
iSHはオープンソースのTestFlightアプリで、そのままAlpine Linuxディストリビューションを使用して仮想マシンを実行します(ただし、他のディ重要な注意点:これは実験的なものです。
重要な注意点:これは実験的なものです。 ISHは現在テストアプリなので、永続的または堅牢なサービスを期待しないでください。 TestFlightアプリは時間制限があります。 私の現在のビルドは60日間続きます。 これは、60日後に、私はロックアウトされ、iSHの次のテスト段階に再参加する必要があることを意味します。 さらに、iOS上のファイルでエクスポートしたり、GitホストまたはSSHにバックアップしたりしない限り、ファイルは失われます。 明確にするために:作業を継続するためにこれに依存しないでください! ここに不可欠なものは何も置かないでください! 他の場所であなたの仕事をバックアップ!
Install iSH
App StoreからTestFlightをインストールして開始します。 次に、そのウェブサイトからインストールリンクを取得してiSHをインストールします。 AltStoreを使用する別のインストール方法がありますが、私はそれを試していません。 または、有料の開発者アカウントをお持ちの場合は、GitHubからiSHのレポをダウンロードして自分でデプロイすることができます。リンクを使用して、TestFlightはデバイスにiSHアプリをインストールします。 他のアプリと同様に、画面にアイコンが表示されます。
パッケージの管理
IshはAlpine Linuxでx86エミュレータを実行します。 アルパインは、小さな、下の-5MBのディストリビューションです。 アルパインを走るのは初めてで、このような最小限のディストリビューションに不満を感じると思っていましたが、実際には本当に楽しんでいました。
ish-インストールします。
(Lee Tusman,CC BY-SA4.0)
Alpineはapkパッケージマネージャーを使用します。パッケージをインストールするには:
apk add package
パッケージを削除するには:
apk del package
他のコマンドと情報を検索します:AlpineのデフォルトのテキストエディタはViですが、私はVimを好みますので、インストールしました:
apk add vim
パッケージマネージャーを更新します。
apk updateapk upgrade
テキストエディタを取得します。
AlpineのデフォルトのテキストエディタはViですが、私はVimを好みますので、インストールしました。
apk add vim
NanoまたはEmacsをインストールすることができます。あなたが好む。私はあなたのことを知らないが、私は魚の殻が必要です。
シェルを変更します。
私はあなたのことを知らないが、私は魚の殻が必要です。
他の人はBashやZshを好みます。 しかし、アルパインは灰を使用しています! アッシュはダッシュシェルのフォークであり、それ自体は元のアッシュまたはAlmquistシェルのフォークです。 それは速度のために設計されています。 私は、内蔵の自動補完、色、Vimキーコントロール、および私が知っていると魚の殻で愛する構文の強調表示を支持して速度を交換することにしました。
Install fish:
apk add fish
代わりにBashとその補完とmanページが必要な場合は、それらといくつかの余分なものをインストールする必要があります。
apk add bash bash-doc bash-completion
Alpineのミニマリストのイデオロギーは、一般的に、他のディストリビューションで単一のパッケージになるプログラムは、複数の小さなパッケージに分割されることを意味します。 これはまたほしいか丁度あなたのシステムの下でカスタマイズし、細くできることを意味する。Bashのインストールの詳細については、このチュートリアルを参照してください。
fishをインストールした後、一時的にそれに切り替えて、fish
chsh
コマンドは機能しません。まず、fishがインストールされている場所を見つけます。
which fish
私の出力:
/usr/bin/fish
次に、ログインシェルを編集してfishを使用します。 あなたがと快適であるあらゆる編集者を使用できる。 初心者の場合は、Nano(apk add nano
)をインストールして、設定ファイルを編集してCTRL+Xで保存し、確認して終了できるようにします。私の最初の行は次のとおりです。
root:x:0:0:root:/root:/bin/ash
fishをデフォルトにするには、その行を次のように変更します。
root:x:0:0:root:/root:/usr/bin/fish
保存して終了します。私はあなたがすぐにそれを使い始めることができるようにシェルを再ソースする良い方法があると確信しています。 しかし、私はわからないので、私は、アプリのブラウザに戻ってシェルを強制終了し、良い測定のために、あなたのiPadやiPhoneをシャットダウンして再起動す ISHを再開し、今、に加えて、”アルパインへようこそ!”apkを使い始める上でのメッセージと情報は、デフォルトの魚のログインようこそメッセージが表示されます:魚、フレンドリーな対話型シェルへようこそ。 万歳!
ishです。png
(Lee Tusman,CC BY-SA4.Pythonとpipをセットアップする
私はPythonを追加することにしました(バージョン3。x)、私はコードを書くことができるだけでなく、いくつかのPythonプログラムに依存しているからです。 それをインストールします:
apk add python3
Python2ですが。xは非推奨ですが、それでもインストールできます。
apk add python
Pythonパッケージマネージャー、pip、およびsetuptoolsをインストールします。
python3 -m ensurepip --default-pip
パッケージマネージャーのインストールとセットアップに時間がかかるので、待ってください。
次に、ネットワーク転送ツールであるcurlをダウンロードできます:
apk add curl
マニュアルを読む
Fishは、マニュアルページに基づいて組み込みの自動補完を使用しています。 他のコマンドラインユーザーと同様に、私はman
マニュアルに依存しており、Alpineはインストールされていません。 だから、私はless pagerと一緒にそれをインストールしました:
apk add man man-pages less less-doc
manに加えて、私は単純化されたコミュニティ主導のmanページを提供するfabulous tldr pagesプロジpipでインストールしました。
:
pip install tldr
tldr
コマンドは、新しいものの要求が発生するたびにページをフェッチするためにwebに接続します。 コマンドの使用方法を学ぶ必要がある場合は、tldr curl
ようなものを入力するだけで、わかりやすい英語の説明とコマンドの使もちろん、dotfilesやインストールスクリプトを使用してこのインストール作業をすべて自動化することはできますが、それは実際には最小限のインストールを仕様に正確にカスタマイズするAlpineの方法には該当しません。 それにそんなに時間はかからなかったでしょ?
詳細
iSH wikiには、現在動作しているパッケージに関するレポートを含む”動作するもの”ページが含まれています。 注目すべきは、npmは現時点では機能していないようです。別のwikiページでは、iOSファイルアプリからiSHファイルにアクセスする方法について説明しています。 これは、ファイルを移動して転送する方法の1つです。