• ベストアンサー

コンパイル後のハードディスク変更について

Cで記載したCGIをコンパイル中です。 現在テスト環境で500GBのハードディスク上でコンパイルしていますが、本番環境では2TBの環境で構築したいと考えています。 質問です。 コンパイルはマシン毎にやる必要があるということですが、ハードディスクだけ替えてフルコピーした場合(それ以外は同一マシン)は、そのCGIは再度コンパイルしなくても使えますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.4

同じOSをインストール後に/homeの下をまるごとコピーしただけでは危なっかしいです。/home以外の場所に追加でインストールした何かのライブラリとか設定ファイルとか環境変数とかにCGIのプログラムが依存しているかもしれません。 必要なもの(CGIの動作に関係しているもの)全てをインストールまたはコピーしてください。何がそのCGIの動作に必要かは、質問者さん以外には調べられません。 しかし、必要なものが全て2TBのディスクの中にも揃っていれば、よっぽど特殊なことをしているものでなければ再コンパイルしなくても動くと思います。

tajix14
質問者

お礼

有難うございます。 もちろん、/home/以外の部分の設定ファイル、環境変数などは同一にします。 必要なものが全て2TBのディスクの中にも揃っていれば、よっぽど特殊なことをしているものでなければ再コンパイルしなくても動くと思います。 の言葉を聞いて安心しました。 有難うございました。

その他の回答 (3)

回答No.3

> コンパイルはマシン毎にやる必要があるということですが、ハードディスクだけ替えてフルコピーした場合(それ以外は同一マシン)は、そのCGIは再度コンパイルしなくても使えますか? 質問に矛盾があるので何とも言えませんが。 500GBのハードディスクと2TBのハードディスクが同じ(同一マシン)という感覚のようですので。 同一マシンというのがOS,OSの版、入っているソフト,その版などが完全に同一なら使える可能性はあります。 さらに、ハード側も同じならほぼ使えるかと思います。 違っても一見動く可能性はありますが、他でコンパイルしたソフトを入れる場合には入れたシステムと完全には整合してない場合もありますし、その場合動いても安全度が大きく低下したりする可能性があります。

tajix14
質問者

補足

お返事が遅くなり申し訳在りません。 簡単に言うと500GBで構築しているものの、ユーザー 数の増加を考慮した場合、2TBの環境で構築していた 方が後々面倒ではないと考えているものです。 現在の開発環境である500GBのHDをスレーブ側に移し、 プライマリ環境には新たに2TBのハードディスク を用意。同じOSをインストールします。 その後、500GBで構築したスレーブ上の/home/下の ディレクトリをそのままプライマリである2TBの /home/下にコピーするだけで問題なく使えるかと いう質問になっています。 従い、ハードディスク以外は全て同じ環境と言うこと になります。 このような環境であれば再度コンパイルしなくも大丈夫 でしょうか? なにしろ膨大な数なので...

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.2

> コンパイルはマシン毎にやる必要があるということですが これの具体的な理由を知る必要がありますね。 コンパイル環境に依存したプログラムというのは非常に考え難いです。 テスト環境に依存している、というのであれば分かります。 しかし、普通このような環境依存情報はテキストファイルの外出しに して、起動時にそのテキストファイルから環境情報を読み取るように 作るでしょう。 考えてみても、世の中に出回っているアプリやCGIは利用者が一々 コンパイルしている訳ではないでしょう。

tajix14
質問者

補足

お返事が遅くなり申し訳在りません。 簡単に言うと500GBで構築しているものの、ユーザー 数の増加を考慮した場合、2TBの環境で構築していた 方が後々面倒ではないと考えているものです。 現在の開発環境である500GBのHDをスレーブ側に移し、 プライマリ環境には新たに2TBのハードディスク を用意。同じOSをインストールします。 その後、500GBで構築したスレーブ上の/home/下の ディレクトリをそのままプライマリである2TBの /home/下にコピーするだけで問題なく使えるかと いう質問になっています。 従い、ハードディスク以外は全て同じ環境と言うこと になります。 このような環境であれば再度コンパイルしなくも大丈夫 でしょうか? なにしろ膨大な数なのであまりやりたくありません...

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

同じCPU・同じOS・同じドライブレター(Windowsの場合)・同じディレクトリ構造であれば普通は再コンパイルしなくても動くでしょう。

tajix14
質問者

お礼

有難う御座います。 いろいろな意見が有り、大変ためになります。

tajix14
質問者

補足

有難う御座います。 いろいろな意見が有り、大変ためになります。

関連するQ&A

  • コンパイル環境の違いによる、浮動少数点の違い

    不動少数(float)を使った、c言語の演算プログラムを作っています。 Aマシン(CentOS5, gcc3.4)でコンパイルした、"test_a.so"と"test_a.a"について、 Aマシンで実行した結果、両者の結果は一致します。 Bマシン(Fedora5, gcc3.0)でコンパイルした、"test_b.so"と"test_b.a"について、 Bマシンで実行した結果、両者の結果は一致します。 Aマシンで実行した結果、両者の結果が異なります。 結果の比較をすると、以下のようになります。 "test_a.so"=="test_a.a"!="test_b.so"!="test_b.a" (1)コンパイル環境と実行環境が違うと、浮動少数の演算に違いがでることがありますか? (2)コンパイル環境と実行環境が違うと、so と aに違いがでることがありますか? 上記2点について、ご存知の方いらっしゃいましたら教えてください。 お願い致します。

  • ハードディスクにつきまして

    2TBのハードディスクに150GBのハードディスクを増設します。 2TBはRAIDです。C、Dドライブに分かれていて、150GBは Eと認識します。そのEはDと融合させたいです。容量が大きいので パーティションマジックのようなディスクのソフトでは 認識せずできません。 なにか他に方法はありますでしょうか? OSは2003Server(SP2)です。

  • C言語CGIの一括コンパイルの方法

    10年くらい前に作ったゲームの復活を考えています。 当時ledhat7.1上で展開していたゲームをSentOS上で再開します。 ゲームはC言語で出来ていますが、作った本人が手を付けることができません。 そこで、当方が10年前の姿にまでは持っていこうと考えています。 いろいろ調べていくと、 「C言語によるCGIプログラムは、それを動かそうとする サーバー上でソースファイルをコンパイルする必要があります。 他のマシンでコンパイルしたCGIプログラムをそのまま持って来ても、動かない 可能性の方が大きいです。ご注意下さい。」 という記述を見つけました。 全部、コンパイルし直す必要がありそうです。 当方の現在の環境は下記の通りです。 サーバー  自宅にあり。直接接続可能 もちろんSSHも可 CGI の数 178個 ディレクトリは40個くらいに分かれている コンパイル前のC言語ファイルは「.c ファイル」として 保存されている ひとつひとつコンパイルしていったのでは、1ケ月くらい 掛かりそうです。 一括コンパイルのような方法はありませんでしょうか? 一括でなくとも、ディレクトリごとでも構いません。 宜しくお願い致します。

  • コンパイルできない…

    プログラミングを始めようとしてまだ3日目のど素人で、しょっぱなからつまずいてます・・・ まず、環境は以下のような状態です。 言語:C++ コンパイラ:Borland5.5 OS:Windows2000 メモ帳で簡単なソースを書いて、test.cというファイル名でc:¥cwork¥ に保存して、コマンドプロンプトからc:\cwork\ bcc32 test.c と打ち込んだのですが、「bcc32は内部コマンドとして認識されていません」 という表示が出てコンパイルできません。 環境変数のpathが原因なのでは?と考えているのですが、本(独習C)に書いてある 通りに打ち込んであるし…どこがおかしいのか分かりません。 ↑これだけだと分からない、というのであれば返信しますのでどなたか教えてくだい。お願いします。

  • ハードディスクの管理について

    1TBのハードディスクを使っています、ディスクの未割り当てがあり、これをCドライブとDドライブに割り当てたいのですが、Cドライブへの割り当て方がわかりません。 現状は、システム100MB、C:97.66GB、D:540.79GB、未割当:292.97GBです。

  • システム用1TBのハードディスク

    Cドライブ500GBのハードディスクを1TBに交換しようと思います。 システム用のハードディスクとしておすすめの製品があったら教えて下さい。

  • ハードディスクのパーテーション容量

    OSはWindowsVistaで500GBのハードディスクをCドライブ40GB、Dドライブ460GBに区切って使用していました。Cドライブの空き容量が4GB、Dドライブの残りも少なくなってきたので1TBのハードディスクに交換しようと思っています。 Cドライブ40GBでの使用は足らなそうなので新たなハードディスクでは容量を増やそうと思うのですが、Cドライブとしての容量はどれくらいまでが理想なのでしょうか?

  • ハードディスク容量

    どうでもいいことでですが 向学のため お教えください。 ハードディスク 容量は 1TB です。 でもでも  Cドライブ 460GB  Dドライブ 460GB です。 残りは どこに? パソコン素人 トンチンカン な 質問 お許しください。

  • クロスコンパイルの正しい概念

    玄箱のクロスコンパイル環境を作ろうと思っています。 そもそも、クロスコンパイルとは ・玄箱でまともにコンパイルすると非常に時間がかかるし、容量も少ないので別のPC側でコンパイルを行う。 くらいしか思っていません。あっていますか? クロスコンパイル環境構築の前提条件のところで悩んでいまして、 ・gccさえ同じであればいいのか? ・同じカーネル(バージョン)でなくてはならないか? ・同じOSでなければいけないか? どうなのでしょう? また、実際の手順は 1) 別のマシンでソースからconfigure, make , make install 2) installしたprefixから配下をそのままごそっと玄箱へコピー 3) あとは普通にコマンド実行 という感じで思っています?あっていますか? 参考になるページなどありましたらあわせてお願いします。 よろしくお願いします。

  • gcc コンパイル killed

    gccでC言語で書いたコードをコンパイルしたところ コンパイルには成功したのですが 実行してみると killed と表示されてしまいます #include <stdio.h> int main(){ printf("TEST\n"); return 0; } こんな簡単なものでもコンパイル後、実行すると killedと表示されTESTと表示されません $gcc test.c -o test $./test killed $ この様になります。ldid -Sでコンパイルされたファイルを直すことは可能なのですが どのコードでも毎回、killedという表示になってしまいます 毎回毎回コンパイル後にldidコマンドを使用するのも嫌なので直したいのですが "再インストール以外"の方法で直してみたいです。今後、同じようなエラーが起きた際、役にも立ちますし、Cについての勉強にもなりますので (再インストールでは詳しい原因がわかりません) 原因をご存知の方がいましたらよろしくお願いします。(Linux)