人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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))
です。

●質問者: secretboots
●カテゴリ:コンピュータ
✍キーワード:gcc Linux LS OS Red Hat
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● nitscape
●40ポイント

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などを読んでコンパイルもできないようですと改造や新しいコマンドを作るというような応用的なことはできません。ドキュメントどおりにやればできますからがんばってください。


2 ● kazz7
●40ポイント

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”ではダメでしょうか?


3 ● くまっぷす
●40ポイント

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

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

http://download.fedora.redhat.com/pub/fedora/linux/core/2/SRPMS/

Fedora Project, sponsored by Red Hat

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

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

/usr/src/redhat/SOURCES

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


http://www.sixnine.net/cygwin/cygwin-doc/alias.html

alias を利用した小技

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


4 ● makeworld
●40ポイント

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

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

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

rpm -qf フルパス名

例)

rpm -qf /bin/ls

http://www.linux.or.jp/JM/html/rpm/man8/rpmbuild.8.html

Manpage of RPMBUILD

パッケージ名がわかったら、そのソースパッケージをインストールして、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/に展開されます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ