http://q.hatena.ne.jp/1182926434 に関連することなのですが、

経験者の方に伺いたいのですが。。。。
Unixでオープンソースをコンパイルしてインストールする場合、エラーに
なったとき、皆様なにをトリガーにして自力で解決していらっしゃるの
でしょうか。。。
最近 また自宅サーバ(Solaris)をいじりだしたのですが、なかなか
コンパイルのエラーの解決が自力でできず困っています。。
エラーの度に はてな で質問してもいいのですが。自力で解決できる
スキルを身につけたいです。
このようなスキルを身につけるには、具体的には 何を勉強したら
いいのでしょうか。
私の 聞きたいことは この文章で分かりますでしょうか。
ポイントは 通常のお支払いでお願いします。よろしくお願いします。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:2009/08/10 09:28:05
  • 終了:2009/08/17 09:30:02

回答(6件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/08/10 09:44:55

ポイント19pt

なにをトリガーにして自力で解決していらっしゃるのでしょうか

まずはエラー・メッセージですね。

少なくとも、

  • どの処理
  • どの場所
  • どんなエラー

の3点は出力されるので、それを頼りにソースコードまたは設定ファイルを当たります。

エラー・メッセージは英語ですが、私のような英語が苦手な人間でも、コンピュータ英語を知っていれば読み解ける程度のものですので、IT英語が載っている辞書を片手に頑張ってください。


それから、OSの構造と基本的なシェルコマンドはマスターしておく必要があります。

Solarisのバージョンが分からないので何とも言えませんが、いずれにしてもLinuxと構造や取扱い方が異なるので、まずは入門書を精読して、リファレンス参考書を脇に置いておくといいでしょう。


実際のところ、オープンソースというのはある程度の開発スキルのある方を対象に配布されています。make install で簡単にコンパイル・インストールできるように見えても、元来は、Windows上でMicrosoftの開発環境(Visual Studio)を使ってコンパイルするより高いスキルが要求されるものです。

Warningが出ても、何とか動くこともあります。ところがセキュリティ設定が大甘で、簡単に侵入を受けてしまうかもしれません。とくにインターネットに接続しているマシンでは注意してください。


参考サイト

id:meichi

さっそくありがとうございます。m(_ _)m

サイトは参考になりそうです。。。。。。。

ぎりぎりまでオープンにしますので、回答をお待ちしてます。

よろしくお願いします。

2009/08/10 09:49:33
id:keino No.2

keino回答回数204ベストアンサー獲得回数112009/08/10 11:25:30

ポイント19pt

私もエラーメッセージです。

たくさん表示されることもありますが、通常は最初の3行くらいみれば何が「今」問題なのかが判ります。

調査のためにコンパイル時には、標準出力とエラー出力をファイに出力し、あとで確認できるようにします。


問題を調べためには、ハードやOS、アプリ、ライブラリなどが、互いにどのような依存関係になっているかを、おおよそでもいいから把握しておくことです。

あるアプリを最新バージョンに入れ替えようとしたら、それが利用しているアプリ・ライブラリも最新バージョンに上げないとうまく動作しないということがよくあります。

http://q.hatena.ne.jp/answer

id:meichi

経験談をありがとうございます。

できれば、「どのような勉強をすれば身につくのか」というような

アドバイスが欲しかったです。

2009/08/10 11:32:52
id:y-kawaz No.3

y-kawaz回答回数1419ベストアンサー獲得回数2252009/08/10 12:18:09

ポイント18pt

小さなプログラムであれば、ソースを見たりその言語について学んだりすれば良いと思いますが。

トラブル解決能力については「経験を積む」しか無いような気がします。


自分はC言語なんてソースを追って当たりを付けるくらいしか出来ませんし、そのアプリが使ってるライブラリに至っては全く知らないことが殆です。

ですが、エラーメッセージのパターンなんてそんなに多くないので、悪戦苦闘しているうちにいつの間にか、何にも分からなくても解決できるようになってましたw

配布されてるOSSの、コンパイルエラーのパターンなんてそんなに多くなく

・大抵はOSとかディストリビューションの違いによるライブラリやヘッダファイルの場所の違いだったり、

・単純に必要な *-dev パッケージがインストールされていないだけだったり、

・プログラムや共有ライブラリにパスが通っていないだけだったり、

といった点を確認すれば大抵は何とかなるもんだと思います。

http://q.hatena.ne.jp/answer

id:meichi

「経験」・・・ですねえ。自分も悪戦苦闘しているうちに解決できる場合もあるのですが。。。

「ソースを追う」→って 何を勉強したらいいんでしょうか。。。どなたか!!

2009/08/10 16:11:45
id:yofukaci No.4

yofukaci回答回数306ベストアンサー獲得回数102009/08/10 22:29:44

ポイント18pt

エラーメッセージをネットで検索する。

まず、Solarisをつかってると情報がネットに落ちてないので

その都度、はてなに質問すればOKだと思うが、

たぶん、答えられる人はいないと思う。

>皆様なにをトリガーにして自力で解決していらっしゃるのでしょうか

「根性と時間」もしくは「知的好奇心」


http://q.hatena.ne.jp/answer

id:meichi

「根性と時間」もしくは「知的好奇心」→納得しました。。。。

2009/08/11 08:57:41
id:pyopyopyo No.5

pyopyopyo回答回数335ベストアンサー獲得回数792009/08/11 00:34:40

ポイント18pt

エラーメッセージをそのまま http://www.google.com で検索するのも良いですね。

ポイントは "" でメッセージをくくる事です。

たとえば、hogehoge というアプリケーションをコンパイル中に

(.text+0x18): undefined reference to `main'

というエラーが出ていたら

hogehoge "undefined refernece to"

でgoogle検索すると、結構その解決方法が見つかります。

id:meichi

Google先生に アプリケーション "エラーメッセージ" で聞くのですね。なるほど。。。

2009/08/11 09:00:21
id:keino No.6

keino回答回数204ベストアンサー獲得回数112009/08/11 02:09:39

ポイント18pt

>「ソースを追う」→って 何を勉強したらいいんでしょうか

そりゃ記述してある言語の知識は必要ですね。


でも、多分問題はそこじゃないでしょう。

あなたが、プログラミングの知識を身に付けたいなら、気になるサブルーチン/モジュールがどういう順番で何をしているのかを、フローチャートとして書き出してみることを勧めておきます。

個々のルーチンでもプログラム全体でも、適切にサブルーチン化すれば数枚~20枚位の枚数で図にすることが可能なはずです。

コードを図面化することで処理の流れが見通しやすくなりますし、各ルーチンの役割分担が明確になります。

また、設計者の意図も把握しやすくなります。

慣れると、コードを見ると頭の中でフローチャートが思い浮かぶようになると思いますよ。

http://q.hatena.ne.jp/1249864084

id:meichi

ありがとうございます。でも 自分には 敷居が高いです。。。スイマセン

2009/08/11 09:07:56
  • id:keino
    「どのような勉強をすれば身につくのか」は答えようがなかったので触れませんでした。
    あえて言えば、経験を積む。

    あとは、パッケージに付属するREADME.DOCなどの付属ドキュメントにできるだけきちんと目を通しておけば自力で解決できる可能性は高まります。
    興味のあるパッケージのユーザや開発者のメーリングリストに参加するのも有効でしょうが、基本スキルがないと話についていけません。
    話題の場によって必要となるスキルが違うので、私にはあなた向きのスキル取得方法は回答できません。
  • id:y-kawaz
    配布されているOSSの場合、アーカイブになっている時点で環境さえ揃っていればコンパイルは出来るようになっていると思うので、
    ソースを追うと言っても、エラーメッセージで出てるキーワードとかを探して、ふーん…と当該箇所をみてみるだけ、くらいしかしないですね。

    >何を勉強したらいいんでしょうか。。。どなたか!!
    「経験を積む」と同じですが grep, find, etc... など基本的なUNIXコマンドの使い方を覚えることですかね。
    基本的にはそのプログラム言語自体を知らなくても大抵の問題は解決しますから。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません