GNU/Linux >> Linux の 問題 >  >> Linux

TermuxはAndroidをLinux開発環境に変えます

それで、あなたはついにVimを終了する方法を理解し、ミシシッピのこちら側にある「HelloWorld」の最も高度に最適化されたバージョンを書くことができます。今度はあなたのゲームをアップする時が来ました! Android用のTermuxをチェックしてください。

Termuxとは何ですか?

Termuxは、AndroidターミナルエミュレーターおよびLinux環境です。つまり、実際には、ほとんどのAndroidデバイスにTermuxをインストールして、そのデバイスの完全なLinux開発環境で行うほとんどすべてのことを実行できます。それはすべてクールに聞こえますが、おそらくあなたは自分自身に「なぜ私はタッチスクリーンで私の電話でコーディングしたいのですか?それはひどいように聞こえます」と自問しているでしょう。 Androidアプリケーションを実行できるようになったキーボードまたはChromebookと組み合わせたタブレットのラインに沿って考え始めましょう。これらは非常に安価なデバイスであり、Linuxのハッキングと開発を人々に紹介するために使用できるようになりました。 Linuxコミュニティの私たちの多くは、古いPCにLinuxをインストールすることから始めたと思います。

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

タブレットとChromebookは、この世代の古くてジャンクなコンピューターです。そして、周りにはたくさんあります。それらを使って次世代のLinuxを紹介してみませんか?また、TermuxはGoogle Playストアをクリックするだけでインストールできるので、Termuxは誰にでもLinuxを紹介する最も簡単な方法だと思います。しかし、初心者のためにすべての楽しみを残さないでください。 Termuxは、Linux開発環境に対する多くのニーズに対応できます。

TermuxはLinuxですが、Androidに基づいており、コンテナーで実行されます。つまり、rootアクセスを必要とせずにインストールできますが、慣れるまでに時間がかかる場合もあります。この記事では、Termuxをフルタイムの開発環境として機能させるために見つけたヒントとコツの概要を説明します。

私のものはどこにありますか?

表示されるTermuxファイルシステムのベースは、/data/data/com.termux/files/から始まります。 。そのディレクトリの下に、ホームディレクトリとusrがあります。 すべてのLinuxパッケージがインストールされているディレクトリ。これはちょっと変ですが、大したことではありませんか?地球上のほとんどすべてのスクリプトが/bin/bash用にハードコーディングされているため、あなたは間違っているでしょう。 。他のライブラリ、実行可能ファイル、および構成ファイルは、他のLinuxディストリビューションと矛盾する場所にあります。

Termuxは、正しく実行されるように変更された多くのパッケージを提供します。カスタムビルドを行う代わりに、最初にそこを探してみてください。ただし、それでもおそらく多くのものをカスタムビルドする必要があります。パッケージのソースコードを変更してみることができます。パスの変更は簡単ですが、すぐに古くなります。ありがたいことに、Termuxにはtermux-execもバンドルされています。 Termux-execは、スクリプトパスをその場でリダイレクトして、正しく機能させるようにします。

それでも、termux-execが処理しないハードコードされたパスに遭遇する可能性があります。 Termuxにはrootアクセス権がないため、パスの問題を修正するためにシンボリックリンクを作成することはできません。ただし、chrootjailを作成することはできます。 PRootパッケージを使用すると、完全に制御できるchrootを作成でき、必要なものを変更できます。さまざまなLinuxディストリビューションのchrootを作成することもできます。 Fedoraファンの場合は、Termuxを使用してchrootjailで実行できます。ディストリビューションとインストールの詳細については、PRootページを確認するか、このスクリプトを使用してTermuxchrootジェイルを作成できます。私はTermuxchrootとUbuntuchrootだけを試しました。 Ubuntuのchrootには回避する必要のある問題がいくつかあったため、選択したLinuxのバージョンによってマイレージが異なる場合があります。

すべてを統治する1人のユーザー

Termuxでは、すべてが1人のユーザーの下でインストールおよび実行されます。これはそれほど問題ではなく、慣れる必要があることです。これはまた、あなたが精通しているかもしれない典型的なサービスとユーザーグループがどこにも見つからないことを意味します。また、起動時に自動起動するものはないため、データベースやSSHなど、使用する可能性のあるサービスの開始と停止を管理するのはあなた次第です。また、1人のユーザーは基本システムを変更できないため、次のことが必要になります。必要に応じてchrootを使用します。事前設定された優れた開始スクリプトがないため、おそらく独自のスクリプトをいくつか作成する必要があります。

日常の開発には、Postgres、Nginx、Redisが必要でした。私はこれまでこれらのサービスを手動で開始したことはありませんでした。通常、それらは自動的に開始および停止します。お気に入りのサービスを開始する方法を見つけるために、少し掘り下げる必要がありました。これが私が今述べた3つのサービスのサンプルです。うまくいけば、これらの例があなたのお気に入りのサービスを使用する正しい方向にあなたを導くでしょう。パッケージのドキュメントを参照して、パッケージの開始方法と停止方法に関する情報を見つけることもできます。

Postgres

開始:pg_ctl -D $PREFIX/var/lib/postgresql start

停止:pg_ctl -D $PREFIX/var/lib/postgresql stop

Nginx

開始:nginx

停止:nginx -s stop

Redis

開始:redis-server $PREFIX/etc/redis.conf

停止:kill "$("$PREFIX/bin/applets/cat" "$PREFIX/var/run/redis_6379.pid"

壊れた依存関係

Androidは他のバージョンのLinuxとは異なる方法で構築されており、そのカーネルとライブラリは通常のLinuxソフトウェアのものと常に一致するとは限りません。 Termuxでソフトウェアをビルドしようとすると、一般的な移植の問題が発生します。それらのほとんどを回避することはできますが、ソフトウェアのすべての依存関係を修正するには手間がかかりすぎる可能性があります。

たとえば、Python開発者として私が遭遇した最大の問題は、Androidカーネルがセマフォをサポートしていないことです。 Pythonのマルチプロセッシングライブラリはこの機能に依存しており、これを自分で修正するのは難しすぎました。代わりに、別の展開メカニズムを使用してハッキングしました。 uWSGIを使用してPythonWebサービスを実行する前は、Gunicornに切り替えました。これにより、標準のPythonマルチプロセッシングライブラリを使用してルーティングすることができました。 Termuxに切り替えるときに、代替のソフトウェア依存関係を見つけるために少し創造性を発揮する必要があるかもしれませんが、リストはおそらく非常に小さいでしょう。

毎日のTermux

Termuxを日常的に使用する場合は、タッチスクリーンまたはハードウェアキーボードショートカットを学習する必要があります。コーディングにはテキストエディタまたはIDEも必要です。可能性のあるすべてのコンソールベースのエディターは、Vim、Emacs、Nanoのクイックパッケージインストールで利用できます。 Termuxはコンソールベースのみであるため、グラフィカルインターフェイスに基づいてエディターをインストールすることはできません。 Termuxに優れたIDEが搭載されていることを確認したかったので、TermuxとシームレスにインターフェイスするWebベースのNeutron64エディターを構築しました。 Neutron64.comにアクセスし、TermuxにNeutronBeamをインストールしてコーディングを開始するだけです。

Termuxをチェックして、古いAndroidデバイスを開発の原動力に変えましょう。ハッピーコーディング!


Linux
  1. LinuxでのFlex開発、フリー環境は何がいい?

  2. Linux 環境での C#

  3. Linux:サービスへの処理

  1. DebianLinuxでのpythonvirtualenv開発環境のセットアップ

  2. Linux Deploy を使用した Android 上の Kali Linux

  3. Android - Android は Linux をベースにしていますか?

  1. C++ Linux 開発環境をセットアップするには、サードパーティ ライブラリをどこに配置すればよいですか?

  2. Linux 環境変数の設定

  3. Linux での環境変数のアクセシビリティ