Fedora Users Forum

Fedoraユーザのためのサポートフォーラム
現在時刻 - 2019年7月21日(日) 15:40

All times are UTC + 9 hours





新しいトピックを投稿する トピックへ返信する  [ 43 件の記事 ]  ページ移動 1つ前へ  1, 2, 3, 4, 5  次へ
作成者 メッセージ
 記事の件名: Re: fedora 9 で java開発環境導入
投稿記事Posted: 2009年4月26日(日) 19:47 
オフライン
プライベートメッセージ送信  WWW  プロフィール

登録日時: 2008年9月20日(土) 23:35
記事: 278
所在地: にっぽん、ちゃちゃちゃ
 ああ、、、朝に長々と返答したのが消えている。。。

 ショックなので簡単に。

 
コード:
ln -s /usr/java/jdk1.6.0_13/bin/java /usr/bin


 は、/usr/java/jdk1.6.0_13/binフォルダーにある、javaというファイルのシンボリックリンクを、/usr/binフォルダーに同じjavaという名前で作ってくださいという意味です。

 -sオプションはシンボリックで作ってねという意味です。このオプションだけだと、仮に元々/usr/binにjavaファイルがあるとエラーになります。

 なので、ll(=ls -l) /usr/bin/javaとしてシンボリックリンクであるか、そうであるならリンク先が/usr/java/jdk1.6.0_13/bin/javaであるかを確認しましょう。

 そうでしたら、安心してリンクを削除できます。rm /usr/bin/javaですね。

 けど違っていたら、かってに消してはいけません。

 できたら、これを消す前にalternativesコマンドに登録したのを削除しておきましょう。このコマンドにより、リンクが修正されるかもしれないからです。

 alternativesだけ入力すれば、オプションが出てきます。たぶん削除は--remove出なかったかと思います。(いまwindowsです)

 たぶんalternatives --remove java <登録したパス>を実行してから、/usr/java/binを確認してみましょう。

 一応書いておきますが、/usr/javaフォルダーはsunのjavaインストール前には存在していません。インストール時に作成されるフォルダーです。最終的には、このフォルダーをインストール前に削除しておいても、かまわないはずです。


トップへ
 
 記事の件名: Re: fedora 9 で java開発環境導入
投稿記事Posted: 2009年4月26日(日) 21:08 
オフライン
プライベートメッセージ送信  メール  プロフィール

登録日時: 2008年11月03日(月) 21:48
記事: 271
こんばんわ、HiroKwsさん
丁寧に教えていただきありがとうございます

まず、ll /usr/bin/javaとしてシンボリックリンクであるか、リンク先が/usr/java/jdk1.6.0_13/bin/javaであるかを確認してみました
結果は
引用:
[snow@localhost ~]$ ll /usr/bin/java
lrwxrwxrwx 1 root root 30 2009-04-19 00:11 /usr/bin/java -> /usr/java/jdk1.6.0_13/bin/java
[snow@localhost ~]$

となりました

リンク先は、HiroKwsさんの推測どおり、 /usr/java/jdk1.6.0_13/bin/java でした
これで、 rm /usr/bin/java で消す前にalternativesコマンドに登録したのを削除してみます

まず、alternatives でオプションを確認しました
引用:
[root@localhost ~]# alternatives
alternatives バージョン 1.3.37 - Copyright (C) 2001 Red Hat, Inc.
これは GNU 一般公有使用許諾書の規定の元で自由に再配布することができます。

使用法: alternatives --install <リンク> <名前> <パス> <優先度>
[--initscript <サービス>]

[--slave <リンク> <名前> <パス>]*
alternatives --remove <名前> <パス>
alternatives --auto <名前>
alternatives --config <名前>
alternatives --display <名前>
alternatives --set <名前> <パス>

共通のオプション: --verbose --test --help --usage --version
--altdir <ディレクトリ> --admindir <ディレクトリ>



alternativesコマンドに登録したのを削除するため、
alternatives --remove java <登録したパス>を実行 としたいのですが、登録したパスを思い出せないため
引用:
[root@localhost ~]# history | grep alternatives
365 ls -l /etc/alternatives/mta-pam
366 update-alternatives --display mta
367 update-alternatives --list gcc
368 update-alternatives --configure
369 update-alternatives --config
370 update-alternatives --configure mta
371 update-alternatives --config mta
372 update-alternatives --list gcc
373 update-alternatives --list gcc
756 alternatives --install /usr/bin/java /usr/java/default/bin/java 30
757 alternatives --install /usr/bin/java java /usr/java/default/bin/java 30
758 alternatives --config java
770 alternatives --install /usr/bin/javac -> /usr/java/default/bin/javac
772 alternatives --config java
773 alternatives --config java
838 alternatives -config java
839 alternatives --config java
840 alternatives --config java
850 alternatives --config java
851 alternatives --config java
852 alternatives --config java
854 alternatives --install /usr/bin/java java /usr/java/default/bin/java 30
855 alternatives --config java
860 alternatives --install /usr/bin/java java /usr/java/default/bin/java 30
890 man alternatives
891 alternatives --config javac
892 alternatives --config java
901 /usr/sbin/alternatives --install /usr/sbin/java java /usr/java/jdk1.6.0_12/bin/java 2000
902 /usr/sbin/alternatives --install /usr/sbin/javac javac /usr/java/jdk1.6.0_12/bin/javac 2000
903 /usr/sbin/alternatives --config java
904 /usr/sbin/alternatives --config javac
905 /usr/sbin/alternatives
906 /usr/sbin/alternatives --display java
908 /usr/sbin/alternatives --display java
915 /usr/bin/javac -> /etc/alternatives/javac
919 /usr/sbin/alternatives --config javac
940 alternatives --install /usr/bin/java java /usr/java/default/bin/java 30
941 alternatives --config java
1000 alternatives
1001 history | grep alternatives

とでてきました

この中で怪しそうなのは
引用:
756 alternatives --install /usr/bin/java /usr/java/default/bin/java 30
757 alternatives --install /usr/bin/java java /usr/java/default/bin/java 30
770 alternatives --install /usr/bin/javac -> /usr/java/default/bin/javac
854 alternatives --install /usr/bin/java java /usr/java/default/bin/java 30
860 alternatives --install /usr/bin/java java /usr/java/default/bin/java 30
901 /usr/sbin/alternatives --install /usr/sbin/java java /usr/java/jdk1.6.0_12/bin/java 2000
902 /usr/sbin/alternatives --install /usr/sbin/javac javac /usr/java/jdk1.6.0_12/bin/javac 2000
940 alternatives --install /usr/bin/java java /usr/java/default/bin/java 30

と思うのですが、絞り込もうとしても
引用:
[root@localhost ~]# history | grep "alternatives --install"
901 /usr/sbin/alternatives --install /usr/sbin/java java /usr/java/jdk1.6.0_12/bin/java 2000
902 /usr/sbin/alternatives --install /usr/sbin/javac javac /usr/java/jdk1.6.0_12/bin/javac 2000
1002 history | grep "alternatives --install"

となってしまい、alternatives --remove java <登録したパス>を実行するのに、どのパスを通すのかがわからなくなってしまいました

度々ですみませんが、アドバイスお願いします


トップへ
 
 記事の件名: Re: fedora 9 で java開発環境導入
投稿記事Posted: 2009年4月26日(日) 21:47 
オフライン
プライベートメッセージ送信  WWW  プロフィール

登録日時: 2008年9月20日(土) 23:35
記事: 278
所在地: にっぽん、ちゃちゃちゃ
 たぶん、alternatives --config javaでメニューが出て、そこに、登録したパスが表示されるはずです。


トップへ
 
 記事の件名: Re: fedora 9 で java開発環境導入
投稿記事Posted: 2009年4月28日(火) 06:34 
オフライン
Site Admin
アバター
プライベートメッセージ送信  メール  WWW  プロフィール

登録日時: 2008年9月08日(月) 21:17
記事: 428
所在地: 東京都
HiroKws さんが書きました:
 ああ、、、朝に長々と返答したのが消えている。。。


すみません。なんかサーバの調子が悪かったみたいですね。

昨日はなかなか接続できない状態だったようです。

※ オフトピ,失礼しました。


トップへ
 
 記事の件名: Re: fedora 9 で java開発環境導入
投稿記事Posted: 2009年4月28日(火) 20:54 
オフライン
プライベートメッセージ送信  メール  プロフィール

登録日時: 2008年11月03日(月) 21:48
記事: 271
お返事ありがとうございます

[root@localhost ~]# alternatives --config java
としたところ
引用:
[root@localhost ~]# alternatives --config java

3 プログラムがあり 'java' を提供します。

選択 コマンド
-----------------------------------------------
* 1 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
+ 2 /usr/java/default/bin/java
3 /usr/lib/jvm/jre-1.5.0-gcj/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
You have new mail in /var/spool/mail/root


と出ましたので、
alternatives --remove java /usr/java/default/bin/java
で実行してみたいとおもいます

あと、気になるのが、ひとつあります
引用:
[root@localhost ~]# history | grep "alternatives --install"
901 /usr/sbin/alternatives --install /usr/sbin/java java /usr/java/jdk1.6.0_12/bin/java 2000
902 /usr/sbin/alternatives --install /usr/sbin/javac javac /usr/java/jdk1.6.0_12/bin/javac 2000
1002 history | grep "alternatives --install"


902 /usr/sbin/alternatives --install /usr/sbin/javac javac /usr/java/jdk1.6.0_12/bin/javac 2000
となっていたので
[root@localhost ~]# alternatives --config javac
を行ってみたところ
引用:
[root@localhost ~]# alternatives --config javac

1 プログラムがあり 'javac' を提供します。

選択 コマンド
-----------------------------------------------
*+ 1 /usr/java/jdk1.6.0_12/bin/javac

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:

と表示されました

こちらも同様に
alternatives --remove javac /usr/java/jdk1.6.0_12/bin/javac
としてしまってもよいのでしょうか?


トップへ
 
 記事の件名: Re: fedora 9 で java開発環境導入
投稿記事Posted: 2009年4月28日(火) 22:46 
オフライン
プライベートメッセージ送信  WWW  プロフィール

登録日時: 2008年9月20日(土) 23:35
記事: 278
所在地: にっぽん、ちゃちゃちゃ
 すべきでしょう。というか、それが原因だったかもしれませんね。

 alternativeは英語です。手元の辞書によると、選択すべきもの、~に代わるもの、もう一つの手段、代案という意味です。(名詞、形容詞ありますね。名詞の意味です)。似たような単語のchoiceにくらべると、「必ず一つ」選ばなくてはならないという意味合いがあるそうです。

 もともと、debian系のコマンドのupdate-alternativesのまねっこですね。 :D まあ、短いから、alternativesの方がわかりやすいです。

 で、何をするためのコマンドかというと、コンピューターを使用していてあるカテゴリーというか、まあプログラム名と言っていいんでしょうが、それに対する実行プログラムを切り替えるためのものです。今回はjavaというものに対して、実際に動作する実行プログラムが3つ登録されていますね。

 それを、簡単に切り替えられるようにするための仕組みです。これがないと、自分でリンクを張り直したり、ファイルを移動したりと、煩雑な手間がかかりますから、この手のコマンドが導入されたのでしょう。

 で、javacですが、このコマンドをalternativesに登録して、さらにリンクを変えちゃったりすると、同じ目的の作業を2つの別のやり方でやっているということが理解できるのではないでしょうか。たぶん、どちらか一方にするべきだったんでしょう。

 alternativeからjavacを取り除きjavacの動作チェックを行う。それで、動作すればよし。だめなら、リンクを取り除く。javaの方も同様にチェックして、動くようになったらよし、もしだめなら、リンクを丁寧に解除して、最終的にsunのjavaを入れ直す。というのがよろしいかと。


トップへ
 
 記事の件名: Re: fedora 9 で java開発環境導入
投稿記事Posted: 2009年4月29日(水) 11:04 
オフライン
プライベートメッセージ送信  メール  プロフィール

登録日時: 2008年11月03日(月) 21:48
記事: 271
おはようございます HiroKwsさん

昨日は alternatives コマンドの詳しい説明をしていただきありがとうございます

昨日の続きになりますが
まず、alternatives --remove javac /usr/java/jdk_1.6.0_12/bin/javac
の後にコンパイルを試してみました
引用:
[root@localhost ~]# alternatives --config javac

1 プログラムがあり 'javac' を提供します。

選択 コマンド
-----------------------------------------------
*+ 1 /usr/java/jdk1.6.0_12/bin/javac

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
[root@localhost ~]# alternatives --remove javac /usr/java/jdk1.6.0_12/bin/javac
[root@localhost ~]# alternatives --config javac
[root@localhost ~]# cd /home/snow/java/
[root@localhost java]# javac hello.java
[root@localhost java]# ls
hello.java


まだ、hello.class ができないので、次に
alternatives --remove java /usr/java/default/bin/java
を実行してみました
引用:
[root@localhost java]# alternatives --config java

3 プログラムがあり 'java' を提供します。

選択 コマンド
-----------------------------------------------
* 1 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
+ 2 /usr/java/default/bin/java
3 /usr/lib/jvm/jre-1.5.0-gcj/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:3
[root@localhost java]# alternatives --remove java /usr/java/default/bin/ja
jar java javac javah javaws
jarsigner java-rmi.cgi javadoc javap
[root@localhost java]# alternatives --remove java /usr/java/default/bin/java
[root@localhost java]# javac hello.java
[root@localhost java]# ls
hello.java
[root@localhost java]#



どうやら、alternatives コマンドで行っただけでは無理でした

続いて
rm /usr/bin/java を実行してみました
引用:
[root@localhost java]# logout

[snow@localhost ~]$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 30 2009-04-19 00:11 /usr/bin/java -> /usr/java/jdk1.6.0_13/bin/java
[snow@localhost ~]$ rm /usr/bin/java
rm: cannot remove `/usr/bin/java': 許可がありません
[snow@localhost ~]$ su
パスワード:
[root@localhost snow]# rm /usr/bin/java
rm: remove シンボリックリンク `/usr/bin/java'? y
[root@localhost snow]# cd java
[root@localhost java]# javac hello.java
[root@localhost java]# ls
hello.java
[root@localhost java]#


これでもまだコンパイルできませでした

ほかになにか消し忘れがないか、しらべてみたのですが、
引用:
[root@localhost java]# ls /usr/bin | grep java
java1.6.0.0.back
javac
javadoc
[root@localhost java]# cd /usr/bin
[root@localhost bin]# ls -l java1.6.0.0.back
lrwxrwxrwx 1 root root 22 2008-09-20 20:39 java1.6.0.0.back -> /etc/alternatives/java


java1.6.0.0.back というファイルがでてきました
このファイルは、同じスレッドの過去記事(http://fedora.forums-free.com/topic-t128.html)に
引用:
10、元のやつの名前を変更し、新しいJAVA実行ファイルにリンクを付ける。
 mv /usr/bin/java /usr/bin/java.1.6.0.0.bak
 ln -s /usr/java/jdk1.6.0_12/bin/java /usr/bin/

で作成されたファイルでした

シンボリックリンクのようなので、このファイルも消してしまってよいのでしょうか?


トップへ
 
 記事の件名: Re: fedora 9 で java開発環境導入
投稿記事Posted: 2009年4月29日(水) 18:59 
オフライン
プライベートメッセージ送信  WWW  プロフィール

登録日時: 2008年9月20日(土) 23:35
記事: 278
所在地: にっぽん、ちゃちゃちゃ
 まあ、ややこしすぎて、自分でコマンドを叩けないので、直接確認しようもないのですが、答えとしては大丈夫でしょう。たぶん。

 元々/usr/bin/javaへ/etc/alternatives/javaのリンクが張ってあり、そのリンクの名前をmvでjava.1.6.0.0.bakへ変更したわけですから。

 元々のリンクからするとalternativesによって張られたリンクのようですね。まあ、サイトを書いた人も、他の人がalternativesと自前のシンボリックリンクを混ぜて使うとは考えていなかったでしょうから。

 alternativesもうまく動作しているのかわかりませんね。既に。 :D

 まあとにかく、こうなったらjavaもjavacも動作しないでしょうから、リンクを削除したら、再度sun-java6をインストールされた方がよろしいかと。

 今回のこれを教訓に、別のサイトを試してみるときは、既に行った変更をその都度、可能ならば戻しておくのがよろしいようです。いくつものサイトの内容を闇雲に行っていても、環境がごちゃごちゃになるだけで、例えば、本当は2つめのサイトが正しかったのに、最初のサイトで行ったことが影響して動かないということもあるわけですから。

 もちろん、その都度、自分のやることを理解して、「この部分は、今回の方法と影響ないから、戻さなくても大丈夫」と確信が持てるようになったら、そんな手間を取る必要はないと思いますが。

 まあ、やらなきゃ覚えられない部分が、多々ありますからね。どこかのフォーラムのように、質問だけして、なかなか進んでくれない人がいると、回答者もいらいらして、フォーラム自身が荒れちゃいますから。 :shock: ;) :D


トップへ
 
 記事の件名: Re: fedora 9 で java開発環境導入
投稿記事Posted: 2009年4月29日(水) 22:20 
オフライン
プライベートメッセージ送信  メール  プロフィール

登録日時: 2008年11月03日(月) 21:48
記事: 271
こんばんわ、HiroKwsさん

本日もいろいろとありがとうございます
java1.6.0.0.back を rm java1.6.0.0.back で削除しました
引用:
[root@localhost ~]# ls /usr/bin | grep java
java1.6.0.0.back
javac
javadoc
[root@localhost ~]# cd /usr/bin/
[root@localhost bin]# ll java1.6.0.0.back
lrwxrwxrwx 1 root root 22 2008-09-20 20:39 java1.6.0.0.back -> /etc/alternatives/java
[root@localhost bin]# rm java1.6.0.0.back
rm: remove シンボリックリンク `java1.6.0.0.back'? y
[root@localhost bin]#


以前いただいたアドバイスに(http://fedora.forums-free.com/topic-t128.html
引用:
求めているのがあくまでもjavacを動作するようにするというのなら、インストール前のクリーンな状態、つまり環境変数も設定されておらず、関連するリンクも解除し、パッケージも登録削除、alternativesも登録削除、/usr/javaも削除した状態で、再インストールするのが早いと思います

とありますが、
パッケージ削除は rpm コマンドで行うのでしょうか?
もし、rpm コマンドでアンインストールするなら
rpm -e jdk-6u13-linux-i586-rpm.bin
となるのでしょうか?

rpm 関連はインストールはしてますが、アンインストールは行ったことがないので自信がありません
すみませんが、アドバイスお願いします


トップへ
 
 記事の件名: Re: fedora 9 で java開発環境導入
投稿記事Posted: 2009年4月30日(木) 07:07 
オフライン
プライベートメッセージ送信  WWW  プロフィール

登録日時: 2008年9月20日(土) 23:35
記事: 278
所在地: にっぽん、ちゃちゃちゃ
---------
 私自身はfedoraであまり作業をしないので、詳しくわかりません。正直、今回のように複雑なことをしないので、トラブったら上書きです。w ただ、インストールし直すだけです。

 特にちょっとしたプログラムを書くときは(4年に一回くらいですw)XPかubuntuになります。fedoraは私自身、初めてインストールに成功したありがたいディストリビューションでありますが、同時にアップデートで起動できなくなった回数が一番多い、恨めしディストリビューションでもあります。

 ですから、sunのjavaについていうと、実行環境をインストールすることは合っても、開発環境は普段インストールしません。今回、実験でインストールしただけです。

 実際の削除の方法は、本当のfedora使いの方の登場をまつとして、考え方は以下の通りです。

 通常なら、削除は:
 
コード:
rpm -e <アプリケーション名>

ですね。もし、何らかの原因で削除できないときは、
 
コード:
rpm -e --force <アプリケーション名>

で強制削除します。

 けど、sun-javaはインストール時のライセンス確認作業を強制するためなのか、ユーザーの利便を考えてなのか、rpmパッケージ直接でなく、実行形式のインストーラーになっています。ですから実行前にchmodで+xを使い、実行可能にしてから、./jdk...rpm.binで、インストールするわけですね。

 alternativesもそうですが、rpmなどの、パッケージを扱う機能のシステムでは、自分が取り扱ったアプリケーションの名前を表示する機能はあるので、まずそれを調べる、その機能を使用して表示し求めている情報を得る、それを利用し、変更・削除の作業をするのが、ユーザーの一般的な流れになりますね。一般的と書いたのは、この方法は応用が利くということです。たいていの場合に。

 さて、rpmでインストール済みのパッケージ名・アプリ名を見るのは何ダッカかしら。いまwindowsでfedoraに切り替えられないし、(仮想化は今のところ私の興味の範囲外です)、検索するか--helpでみるかmanやinfoで調べてわからなかったら、夕方に答えちゃうです。

やり方をがんばって見つけてくださいね。どうも投稿ありがとうございます。お世話になります。(ものまねです。さて、だれのでしょう?)


トップへ
 
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 43 件の記事 ]  ページ移動 1つ前へ  1, 2, 3, 4, 5  次へ

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]


トピック投稿: 不可
返信投稿: 不可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron

無料でマイフォーラムを作成する! · php-BB© · Internationalization Project · 不正利用を報告する · 使用条件/プライバシーポリシー
© Forums-Free.com 2009