シェルスクリプトサイズ 57M

シェルスクリプトサイズ 57M

最近ダウンロードしたyEd グラフエディタインストーラーシェルスクリプト(サイズは57MB)

そのスクリプトを検査すると

ヘッドスクリプト

root@home-pc:/usr/local/src# head yEd-3.11.1_32-bit_setup.sh
#!/bin/sh

# Uncomment the following line to override the JVM search sequence
# INSTALL4J_JAVA_HOME_OVERRIDE=
# Uncomment the following line to add additional VM parameters
# INSTALL4J_ADD_VM_PARAMS=


INSTALL4J_JAVA_PREFIX=""
GREP_OPTIONS=""

テールスクリプト

root@home-pc:/usr/local/src# tail yEd-3.11.1_32-bit_setup.sh 
��D�r�B��|�QO���W~��
_l�Tނ�t:M�Z�*��Ѵ��'�����(�\�A^��[��e�|����K+�<ѡ)��k
                                                    �l������3$+
                                                                `�cF���b\]��14�'qA�)�F�Pg��l���)�x{��A�Qك�Mf`^9e���C5�-���K&K��n�]��v�7�����]�wS�)~��?`�ߴ=����ں.AE�u����v�]�������
>1�f�\8w�+�mw�������6M��2��½���8g�M���Ǵ�^ͪ�A^�fKm*�6Yb
                                                        u�8B~!  ��Ue����'����
�B����`1���8�!$-!�k�2O�u����Į��%�<8@�������)���-�5a��^h����[�v�x j��/~�3��
                                                                                  �u�b�l��.jx3W��n����>���.���
���d�Ox�*~*~*~*~*~�*��*��*����������������������������������������������������{ے

そこで、次の質問についてご協力いただけないでしょうか:

  • このシェル スクリプトにバイナリのような内容が含まれているのはなぜですか?
  • このコンテンツの用途は何ですか?
  • それが有用であれば、どうすれば同じことを実装できるでしょうか?

答え1

おそらく自己完結型の実行ファイルです。実行ファイル、ディレクトリ構造などはすべて、この 1 つのファイル内にバイナリ ブロブとして含まれています。このような自己完結型の実行ファイルの作成を支援できるツールはいくつかあります。

これが、このようなことが可能なアプリケーションの一例です。makeself - Unix 上で自己解凍可能なアーカイブを作成する

インターネット上には他にもいろいろあります。「self-contained executes linux」で検索すると見つかります。また、次のタイトルの U&L Q&A もご覧ください。Linux アプリケーション (オールインワン ファイル) インストーラーを作成するにはどうすればよいでしょうか?その他の方法については。

関連情報