Linuxの下でソースコードでインストーラをコンパイルする


Linuxの下でソースコードでインストーラをコンパイルする
この文書では、linuxでソースコードを介してプログラムをインストールする方法、および関連する知識を簡単に記録します.(大神勿噴^^)
一、プログラムの構成部分
Linuxの下のプログラムの多くは以下の部分から構成されています.
バイナリファイル:つまり実行可能なプログラムファイル
ライブラリファイル:通常見られるlibディレクトリの下にあるファイルです.
プロファイル:これは言うまでもなく、すべて知っています.
ヘルプドキュメント:通常、linuxでmanコマンドで表示されるコマンドのドキュメントです.
二、linux下のプログラムの保存ディレクトリ
linuxプログラムの保存ディレクトリは大体3つあります.
/etc,/bin,/sbin,/lib:システム起動に必要なプログラムです.これらのディレクトリには追加のパーティションをマウントすることはできません.ルートファイルシステムのパーティションにマウントする必要があります.
/usr/bin,/usr/sbin,/usr/lib:オペレーティングシステムのコア機能で、個別にパーティション化できます
/usr/local/bin,/usr/local/sbin,/usr/local/lib,/usr/local/etc,/usr/local/man:これはサードパーティ製プログラムをインストールするために使用され、バイナリファイル、ライブラリファイル、プロファイル、ヘルプドキュメントのディレクトリに対応します.
通常、インストーラは/usr/localディレクトリにインストールされます.
三、インストールソースプログラムのコンパイル
1、以下のコマンドを使用して、現在gccコンパイラがインストールされているかどうかを確認します.yumでgccをインストールすることはできません.
gcc --version  #      gcc

 
2、ソースパッケージを解凍する.例えば:
tar -xvf nginx-1.7.7.tar.gz #     

3、解凍したソースパッケージに入る:
cd nginx-1.7.7 #     

 
4、configureファイルを実行する.このファイルには2つの機能がある:1、ユーザーにコンパイル特性を選択させる;2、コンパイル環境を確認する.configureが実行されるとMakeFileファイルが生成されます.例:
./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf

 
ここでは--prefixでインストールパスを作成し、--conf-pathでプロファイルの具体的な場所を作成しました.注:すべてのプログラムのconfigureパラメータが同じではありません./configure--help詳細パラメータの説明を表示します.プログラムに依存するライブラリが現在のシステムにインストールされていない場合、configureが最後にエラーを報告する可能性があります.この場合、依存ライブラリをインストールする必要があります.
5、makeコマンドを実行し、プログラムをコンパイルする
make

6、コンパイルに成功したらインストールできます.次のコマンドを実行します.
make install

このプログラムはインストールが完了しても、後続の構成があることを忘れないでください.
四、構成プログラム
1、PATH環境変数を修正して、このプログラムのバイナリファイルのパスを識別できる;
/etc/profileファイルを変更し、ファイルに追加
export PATH=$PATH:/path/to/somewhere  #             ,            。

 
次に、
source /etc/profile #            

2、デフォルトでは、ライブラリファイルのパス/lib、/usr/libを検索します.追加の検索パスを追加するには(ライブラリファイルを提供しないプログラムもあるので、この設定は必要ありません)
/etc/ld.so.conf.d/で作成する.confは接尾辞名のファイルで、それから追加するパスを直接このファイルに書きます.次に、次のコマンドを実行して有効にします.
ldconfig

 
3、プログラムがライブラリファイルを提供している場合、それに応じてヘッダファイルも提供されます.一般的に、インストールディレクトリのincludeディレクトリの下で、システムのデフォルトのスキャンヘッダファイルのパスは:/usr/includeです./usr/includeの下で、インストーラのヘッダファイルにリンクで接続できます.
ln -s /usr/local/nginx/include  /usr/include/yourname

4、プログラムはヘルプドキュメントを提供しているかもしれません.一般的にはインストールディレクトリの下のmanディレクトリです.manコマンドを使用してプログラムのヘルプドキュメントを表示するには、/etc/man.configにMANPATHを追加し、ドキュメントディレクトリを指します.
 
 
エッセイ分類-知識点の蓄積
Linuxの下でソースコードでインストーラをコンパイルする
要旨:本文は簡単に、linuxの下でどのようにソースコードを通じてプログラムをインストールするか、および関連する知識を記録しました.(大神勿喷^^)一、プログラムの构成部分Linuxの下のプログラムの大部分は以下のいくつかの部分から构成されています:バイナリファイル:つまり実行可能なプログラムファイルライブラリファイル:通常私达が见るlibディレクトリの下のファイルプロファイル:これは多くなくてもいいです...
全文を読む
posted@2014-12-02 15:56永志読解(202)|コメント(1) 編集
github上のオープンソースプロジェクトへの参加の概要と注意事項
要旨:Foreword githubはとても人気のあるコード管理サービスサイトで、多くの人が1、2つのプロジェクトに参加して游んで勉強したいと思っているかもしれませんが、純粋な英語のサイトなので、考えに止まって実践していないかもしれません.次にgithub上のオープンソースプロジェクトに参加する大まかな流れと注意点を紹介します.もちろんgitの使用については詳しくは説明しませんが、本文を読むには他の資料を参考にしなければなりません.
全文を読む
posted@2014-11-14 13:08永志読解(1170)|コメント(12) 編集
ThreadLocalの私見
要旨:ThreadLocal類には、開発ではほとんど使用されていないため、スレッド範囲内で有効な変数を保存するために使用されていることもよく知られています.その実装はmapに似ており,スレッドidをkeyとし,保存する変数をvalueとしているとさえ感じた.しかし、当時ソースコードを見ると、自分が想像していたほどではありませんでした.ほとんど使わないので、ソースコードをよく見ていません.今日は偶然...
全文を読む
posted@2014-08-25 23:04永志読解(475)|コメント(3) 編集
JAvaクラスローダ-TOmcatクラスローダ
要旨:上記では、システムクラスローダおよびクラスローダに関するメカニズムを紹介し、クラスローダをカスタマイズする方法も紹介した.次にtomcat 6を例にtomatがカスタムクラスローダをどのように使用しているかを見てみましょう.(この紹介はtomcat 6.0.41に基づいており、バージョンによって異なる場合があります!)ネット上で説明したtomcatクラスのローダはネット上で「tomcatクラスのローダ」を探してみると大きいことがわかります...
全文を読む
posted@2014-08-17 11:10永志読解(307)|コメント(0) 編集
JAvaクラスローダ-システムクラスローダ
要旨:システムクラスのローダシステムクラスのローダはよく知られているかもしれませんが、完全な点のために、まず簡単にシステムのクラスのローダについて話しましょう.public class Test { public static void main(String[] args) { ClassLoader cl1 = Test.class.getClassLoader...
全文を読む
posted@2014-08-16 15:01永志読解(365)|コメント(1) 編集
JAvaクラスローダ-フロントシーケンス
要旨:先日、一人でよくQQ群でjava熱更新の知識を聞きました.その後、彼はホット更新を実現したが、いろいろな問題に直面した.私は彼に解答をして、そして彼の书いた类加载器を见て、彼の実现は大体このようなです:(私にこの问题を闻くネットユーザー、もしあなたはこの文章を见て、怒らないでください.あなたが出会った问题は后で他の人も出会うかもしれませんが、私は例を出して说明して、あなたが私を责めないでほしいです^^...
全文を読む
posted@2014-08-16 07:17永志読解(330)|コメント(4) 編集
あなたが想像していたよりも強力な列挙タイプ---ケース編
要旨:先日、列挙機能の強さを紹介する文章を書きました.何人かの友达が私に指摘してくれたが、単純な説明が直感的ではないケースはないと言った.確かに、ここではケース編を書いて、前回の文章について補足説明しています.このケースは、ゲームサーバのメッセージ識別器の簡略化です.ゲーム開発をしたことがあることはよく知られていますが、クライアントとサーバの間のインタラクションには多くのメッセージタイプを定義する必要があり、このメッセージタイプは絶えず拡張する必要があります.メッセージ...
全文を読む
posted@2014-08-08 23:04永志読解(466)|コメント(5) 編集
あなたが想像していたよりも強力な列挙タイプ
要旨:開発における列挙タイプは、enum Color{red,green,blue;}など、一つ一つ列挙できるインスタンスで使用されることが多い.しかし、あなたはそのもっと強いところに気づかないかもしれません.例えば、以下の質問に答えることができますか.1、列挙タイプには構造関数がありますか.2、列挙タイプはインタフェース、継承クラスを実現できますか?3、列挙タイプstaticメンバー変数と方法はありますか?...
全文を読む
posted@2014-08-04 22:44永志読解(868)|コメント(6) 編集
分類:
知識を積む
ラベル:
linux
ソースコードのインストール