Linux初心者です。

Linuxの標準的なコマンドであるlsやcatに
手を加えて新しいコマンドを作りたいのですが、
その手順、方法がわからず困っています。

「ソースコード取得 => 手を加える => コンパイル」
だと思うのですが、
ソースコードのありかや、コンパイルの方法がわかりません。

どなたかご存知のかたがいらっしゃいましたら
よろしくお願いいたします。

OSは
Linux version 2.6.10-1.771_FC2 (bhcompile@porky.build.redhat.com) (gcc version 3.3.3 20040412 (Red Hat L
inux 3.3.3-7))
です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/09/30 13:32:32
  • 終了:--

回答(4件)

id:nitscape No.1

nitscape回答回数526ベストアンサー獲得回数02005/09/30 14:15:20

ポイント40pt

http://www.linuxquestions.org/questions/archive/9/2005/08/3/3541...

where can I donwland the source code of 'cat'? - LinuxQuestions.org

catについてはこんな感じです。

http://ftp.gnu.org/pub/gnu/fileutils/

Index of /pub/gnu/fileutils

公式なソースはこんな感じのところにあります。ここのファイルを解凍するとlsが出てきます(確認済み)。


http://ftp.gnu.org/pub/gnu/textutils/

Index of /pub/gnu/textutils

catはこちらだと思います。...実は本当に入っているかどうか確認していません。もしも入っていなかった場合は上のフォルダに上がって探してみてください。


コンパイルな方法は...

コンパイルはreadmeなどに書かれている通りです。

失礼な書き方で申し訳ありませんが、readmeなどを読んでコンパイルもできないようですと改造や新しいコマンドを作るというような応用的なことはできません。ドキュメントどおりにやればできますからがんばってください。

id:kazz7 No.2

kazz7回答回数446ベストアンサー獲得回数142005/09/30 14:29:09

ポイント40pt

http://homepage2.nifty.com/cs/linux_command/command/alias.html

$BF|7P(JLinux [Linux$B%3%^%s%I=8(J] alias : $B%3%^%s%I$NJLL>$rEPO?$9$k(J

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/028alias.html

コマンドに別の名前を付けるには

http://www.linuxworld.jp/command/-/10676.html

LinuxWorld Online - 第56回 コマンドに別名を設定する

外しているかもしれませんが、コマンドに別名を付ける”alias”ではダメでしょうか?

id:Kumappus No.3

くまっぷす回答回数3784ベストアンサー獲得回数1852005/09/30 14:43:22

ポイント40pt

http://www.atmarkit.co.jp/flinux/special/mkrpm/mkrpm01.html

自分で作るRPMパッケージ(1/3)

RedHat系のLinuxだとソースはSRPM(Source RPM)形式で入手できます。

その中のspecファイルをいじって、RPMを作成するのがRPMを使う流儀に乗っ取ったやり方なのですが、SRPMを単にインストールすると

/usr/src/redhat/SOURCES

にソースが展開されます。ところでlsやcatをどう改造したいのでしょうか?基本的なコマンドで他のアプリから呼ばれたりビルドの際などに使用されるので、仕様が変わってしまうと問題がありそうです。


ちょっと挙動を変えたいというような目的であれば、aliasやシェルスクリプトを使って何か書いた方がよいと思います。

id:makeworld No.4

makeworld回答回数75ベストアンサー獲得回数232005/09/30 19:00:27

ポイント40pt

http://www.itmedia.co.jp/help/tips/linux/l0644.html

ITmedia エンタープライズ : Linux Tips「特定コマンドがどのRPMパッケージに含まれているのか知りたい」

RedHat系でしたら、rpmコマンドで任意のファイルが、どのパッケージに含まれているかを調べられます。

rpm -qf フルパス名

例)

rpm -qf /bin/ls

パッケージ名がわかったら、そのソースパッケージをインストールして、rpmbuildを行えばコンパイル環境ができます。ソースパッケージはSRPMと呼ばれて、ソースCD-ROMやネットから入手できます。


例)

rpm -i coreutils-5.2.1-7.src.rpm

cd /usr/src/RedHat/SPECS/

rpmbuild -bc coreutils.spec


”-bc”だと、コンパイルまで行ってしまいますが、ライブラリ等の依存関係がある場合があるので、-bcで一度コンパイルしてから、ソースをいじった方が簡単だと思います。


ソースファイルは/usr/src/RedHat/BUILD/に展開されます。

コメントはまだありません

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

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

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

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