質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

解決済

2回答

1147閲覧

WSL/UbuntuでのRuby環境構築でシンボリックリンクのコマンドが動作しない

kanta_m

総合スコア16

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0グッド

0クリップ

投稿2021/09/19 02:31

今Rubyを習得するために「基礎Ruby on Rails」という本を買いWSL/Ubuntuで環境構築を始めたのですが、
ディレクトリの作成でコマンドlnを使用してシンボリックリンクを作成する箇所で
「ln -s /mnt/c/User/「PCでのユーザ名」/OneDrive/Desktop/rails ~/rails」と入力すると
「ln: failed to create symbolic link '/home/「Ubuntuでのユーザ名」/rails' : File exists」となり
その後「pwd」コマンドを入力すると「/home/「Ubuntu」でのユーザ名」となってしまいリンクが出来ていない状態になっています。
コマンドが間違っているのかそもそも設定がおかしいのか分からずに困っています。
よろしくお願いいたします。

※PCユーザ名とUbuntuのユーザ名は現在違うものとなっています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

itagagaki

2021/09/19 03:15

rm -rf ~/rails して、もう一度 ln してみたらどうでしょう。 もちろん ~/rails 以下はすべて消えるので、それで良いかどうかは確認してください。 あとは自己責任で。
kanta_m

2021/09/19 03:20

ありがとうございます。 上記手順で試してみたのですが、lnの後に「ln: failed to create symbolic link '/home/「Ubuntuでのユーザ名」/rails' : File exists」は出なかったのですが「pwd」を入力しても「/home/「Ubuntu」でのユーザ名」のままでした。
itagagaki

2021/09/19 04:39

pwdは現在のカレントディレクトリを表示するコマンドですよ?
kanta_m

2021/09/19 06:53

すみません。手順が一つ抜けてました。 上記手順の後に「cd ~/rails」コマンドを実行して「pwd」コマンドを入力したのですが「/home/「Ubuntu」でのユーザ名」のままでした。
itagagaki

2021/09/19 07:19

ls -ld ~/rails を実行してみてください
kanta_m

2021/09/19 07:40

「/home/「Ubuntuでのユーザ名」/rails -> /mnt/c/User/「PCユーザ名」/OneDrive/Dwsktop/rails」 と表示されました。
itagagaki

2021/09/19 07:45

省略せず全部転記してください 左から、パーミッションを表す文字の並び、サイズ、所有者、グループ、サイズ、日付があるはずです。
kanta_m

2021/09/19 08:02

すみませんでした。 「l rwxrwxrwx 1 「Ubuntuでのユーザ名」「Ubuntuでのユーザ名」 40 Sep 19 15:48 /home/「Ubuntuでのユーザ名」/rails -> /mnt/c/User/「PCユーザ名」/OneDrive/Dwsktop/rails」です。
itagagaki

2021/09/19 12:16

cd ~rails を実行したとおっしゃいましたが、そのときエラーにはならなかったのですか?
kanta_m

2021/09/19 13:13

「-bash:cd:/home/「Ubuntuでのユーザ名」/rails: No such file or directory」が表示されます。
itagagaki

2021/09/19 13:19

それならそもそも /mnt/c/User/「PCユーザ名」/OneDrive/Dwsktop/rails が無いんでしょう…。 Windows側の C:\User\「PCユーザ名」\OneDrive\Dwsktop\rails は本当にありますか? Ubuntu側で ls -ld /mnt/c/User/「PCユーザ名」/OneDrive/Dwsktop/rails はどう表示されますか?
kanta_m

2021/09/20 13:08

「ls -ld /mnt/c/Users/「PCユーザ名」/OneDrive/Desktop/rails」と打つと、 「ls:invalid option -- '/' Try 'ls --help' for more information.」と表示されます。
itagagaki

2021/09/20 14:24

それは変です。打った中に -/ とかあります?
kanta_m

2021/09/21 09:38

打った中にはありませんでした。 いろいろとありがとうございました。 ファイルをフルパスで確認したところ「c/User/「PCでのユーザ名」/OneDrive/Desktop/rails」ではなく 「c/User/「PCでのユーザ名」/OneDrive/デスクトップ/rails」でしたので変更したところ正しく動きました。 色々教えていただきありがとうございました。
guest

回答2

0

ベストアンサー

「基礎Ruby on Rails」(改訂4版)の該当部分が、Amazonの「試し読み」の範囲に入っていたので確認できました。

Windowsのデスクトップに作成したrailsフォルダーに、WSLのUbuntuから容易にアクセスできるように、Ubuntu側のホームディレクトリ(~)にシンボリックリンクrailsを作成した、ということですね。

その後、シンボリックリンクの確認のためにpwdコマンドを実行しているようですが、他の方のコメントにもあるとおり、目的とコマンドが一致していません
そのため、すでにシンボリックリンクは作成できているのに、再度シンボリックリンクを作成しようとして同じコマンドを複数回実行した結果、2回目以降で質問文にあるエラーが発生したのだと考えられます。

シンボリックリンクが正しく作成できているか確かめるのであれば、Ubuntuの端末画面で

ls -l ~/rails

を実行してください。

result

1lrwxrwxrwx 1 hoge hoge 43 9月 19 15:48 /home/hoge/rails -> /mnt/c/Users/hoge/Desktop/rails

のように、->の後にリンク先のフォルダーが表示されれば、正しく作成できています。

投稿2021/09/19 06:50

編集2021/09/19 06:53
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kanta_m

2021/09/19 07:36 編集

ありがとうございます。 試したところ->の後にリンク先のフォルダーが表示されていました。 追加ですみませんが、そのあとに「cd ~/rails」をしても 「-bash:cd:/home/「Ubuntuでのユーザ名」/rails: No such file or directory」というエラーが発生してしまうのは何か間違えているのでしょうか。 分からないことだらけですみません。
Daregada

2021/09/19 07:45 編集

リンク先のフォルダーが存在しない、あるいは名前が(微妙に)違うのでは? エクスプローラーで、railsフォルダーを作成した「デスクトップ」を表示して、フォルダー名「rails」を確認してください。 フォルダー名が正しい場合は、フルパスが間違っているかもしれません。エクスプローラーで、Shiftキーを押したままフォルダーを右クリックして、「パスのコピー」を選択すると、Windows形式のフルパスをクリップボードにコピーできます。メモ帳などに貼り付けて確認してください。 そいつの区切り文字「\」を「/」に変えて、先頭の「C:」を「/mnt/c」に変えると、Ubuntuで使えるフルパスになります。
kanta_m

2021/09/19 09:16

フルパスをコピーUsersのsが抜けていたので、ディスクトップも「Desktop」に変更して修正したコマンドを実行したのですが、 「-bash:cd:/home/「Ubuntuでのユーザ名」/rails: No such file or directory」となってしまいます。
Daregada

2021/09/19 15:38 編集

> フルパスをコピーUsersのsが抜けていたので、ディスクトップも「Desktop」に変更して修正したコマンドを実行したのですが、 そうやって言葉で説明するのではなく、実際の結果(テキスト)をコピーして貼り付けてください。もちろんユーザー名は伏せて構いませんよ。 「エクスプローラーで『パスのコピー』をして得られたフルパス」と、「間違っていたシンボリックリンクを削除し、改めてシンボリックリンクを作成した後で『ls -l ~/rails』したときの出力」の2つです。 ちなみに、Desktopは「デスクトップ」と読みます。机の「デスク」です。
kanta_m

2021/09/20 13:21

今現在の状況を記載させていただきます。 教えていただきました「ls -l ~/rails」を入力すると 「lrwxrwxrwx 1 mike mike 41 Sep 19 18:13 /home/「Ubuntuでのユーザ名」/rails -> /mnt/c/Users/「PCでのユーザ名」/OneDrive/Desktop/rails」が表示されます。 リンク先フォルダのフルパスは「C:\Users\「PCでのユーザ名」/\OneDrive\デスクトップ\rails」です。 この状態で「cd ~/rails」を実行すると 「-bash: cd: /home/mike/rails: No such file or directory」というエラーが出ます。
Daregada

2021/09/20 16:47

リンク先のフォルダーのフルパスと、シンボリックリンクが食い違ってるじゃないですか。書き換えるのは、区切り文字と先頭部分だけで、途中を勝手に変えてはいけません。 現在のシンボリックリンクを削除して、途中の「Desktop」のところを、「デスクトップ」に変えて、新しいシンボリックリンクを作ってください。
Daregada

2021/09/20 16:54

あなたが参考にしている書籍では、Windows標準のデスクトップにrailsフォルダーを作っていて、デスクトップの実際のフォルダー名はDesktopです。そのため、シンボリックリンクのパスにもDesktopが出てきます。 いっぽう、OneDriveのデスクトップはそのまま日本語の「デスクトップ」が実際のフォルダー名なので、シンボリックリンクにもデスクトップと書く必要があります。
kanta_m

2021/09/21 09:39

ありがとうございます。 デスクトップに変更したら正しく動きました。 本当にありがとうございます。
guest

0

メッセージの通り、~/railsが既にあると言うことです。
あなたが作った物のはずですが、それは何で、何のために作ったのでしょうか?
それにより、対応が異なります。

投稿2021/09/19 03:27

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kanta_m

2021/09/19 03:38

ありがとうございます。 参考にしている本にディスクトップにrailsというディレクトリを作成してくださいとあったので作成しました。
otn

2021/09/19 06:26

それは、/mnt/c/User/「PCでのユーザ名」/OneDrive/Desktop/rails のことですね。 私が聞いているのは、~/rails のことです。
kanta_m

2021/09/19 06:53

「ln -s /mnt/c/User/「PCでのユーザ名」/OneDrive/Desktop/rails ~/rails」の一番最後の~/railsのことでしょうか? こちらは参考にしている本に記載してあるのでそのまま使っています。
otn

2021/09/19 10:31

そのコマンドを打つ前に、あなたは既に ~/rails を作っているわけですが、そのことを聞いています。 作った記憶が無いとすると、間違えて作ったのでしょうから、空であることを確認した上で、削除して、 その上で ln -s コマンドを打てば良いでしょう。
kanta_m

2021/09/19 11:58

ありがとうございます。 確認なのですが「ln -s /mnt/c/User/「PCでのユーザ名」/OneDrive/Desktop/rails ~/rails」のコマンドを実行するとディスクトップ上に「rails」のフォルダが出来るということでよろしいでしょうか。 分からないことが多くて済みません。
otn

2021/09/19 12:50

いいえ。 説明なしに、「このコマンドを打て」とだけ書いてあるのですか? その前の段階で、デスクトップ上に自分で rails フォルダーを作ったのでは? > 参考にしている本にディスクトップにrailsというディレクトリを作成してくださいとあったので作成しました。 と、書いてますけど?
kanta_m

2021/09/19 13:16

はい。 コマンドの前段階で「Windowsのディスクトップにrailsというディレクトリを作成してください。そしてUbuntuターミナルで次のコマンドを実行してください」と本に書いてありますのでその通りに手順を進めています。
otn

2021/09/19 13:26 編集

それでは、 「ln -s /mnt/c/User/「PCでのユーザ名」/OneDrive/Desktop/rails ~/rails」のコマンドを実行するとディスクトップ上に「rails」のフォルダが出来る」などと、思うことはあり得ないと思いますが。 ln コマンドを実行する前提が、デスクトップにrailsが作成済みであることですよね?
kanta_m

2021/09/20 13:23

「作った記憶が無いとすると、間違えて作ったのでしょうから、空であることを確認した上で、削除して、 その上で ln -s コマンドを打てば良いでしょう。」とおっしゃっていたので、「ln -s /mnt/c/User/「PCでのユーザ名」/OneDrive/Desktop/rails ~/rails」のコマンドを実行するとディスクトップ上に「rails」のフォルダが出来るのではないかと考えてしまったのですが、そこが間違っていたのですね。
otn

2021/09/20 13:55

「作った記憶が無いとすると、間違えて作ったのでしょうから、空であることを確認した上で、削除して、」 というのは、/mnt/c/User/「PCでのユーザ名」/OneDrive/Desktop/rails の事じゃなくて ~/rails のことです。よく読みましょう。
kanta_m

2021/09/21 09:38

すみません。きちんと読めていませんでした。 いろいろとありがとうございました。 ファイルをフルパスで確認したところ「c/User/「PCでのユーザ名」/OneDrive/Desktop/rails」ではなく 「c/User/「PCでのユーザ名」/OneDrive/デスクトップ/rails」でしたので変更したところ正しく動きました。 色々教えていただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問