Cygwin + MinGW + GCC 相談室 Part 8 (987レス)
上下前次1-新
595(2): 2019/11/10(日)23:46 ID:vZIjc/J6(1) AAS
長期間更新がありませんが何か支障があるのでしょうか・・
596: 2019/11/14(木)16:18 ID:m0xrmwtq(1) AAS
>>595
あるよ
597: 2019/11/15(金)14:11 ID:L6hfSVpN(1) AAS
>>595
ないない
598: 2019/11/15(金)20:34 ID:cedqxdDY(1) AAS
ないあるよ
599: 2019/11/15(金)23:50 ID:z3wd5lUW(1) AAS
WSL使ったら?
600(1): 2019/12/23(月)02:13 ID:IO6RyZUn(1/7) AAS
Cygwin って /cygdrive上ではディレクトリまたげないんだけど、これってそんなもんだったっけ?
かなり久しぶりにCygwinを使おうとしているのだが困っている。
ディレクトリ構成 D:\DEV\debug で
下のディレクトリから上のディレクトリのファイルをコピーする、以下のコマンドが通らない。
MyMachine@MyName /cygdrive/d/dev/debug
$ cp ../some_file .
ディレクトリまたげないんだけど、こんなんだったっけ?
なお / をバックスラッシュにしても駄目。
なお/home以下のディレクトリならこれらのコマンドは通る。あまり試していないが、おそらく、/cygdrive以下だけ駄目。
何か設定がおかしい?それともこんなものだったっけ?
省1
601: 2019/12/23(月)02:30 ID:IO6RyZUn(2/7) AAS
>>600
すまぬ自己解決した。
debugがシンボリックリンクだったorz
602(1): 2019/12/23(月)12:40 ID:sEnpgkKc(1/4) AAS
もちつけ
他人のせいにする前に自分を疑え
603: 2019/12/23(月)12:45 ID:CGg4xw4r(1/2) AAS
自分を疑う自分を疑え
604(1): 2019/12/23(月)13:59 ID:IO6RyZUn(3/7) AAS
>>602
それはそうだが普段シンボリックリンクである事なんて意識しないからな。
いまだにcygwinではNTFSのシンボリックリンクを辿れないのはしょぼいと思うが。
なお32bit版。bashはversion4.4.12(3)、cygwin1.dll はversion 3001.2.0.0
(昨日の時点でsetup.exeを使いBestに更新)
64bit版なら行けるのかも?誰か動作報告よろしく。
605(1): 2019/12/23(月)14:06 ID:sEnpgkKc(2/4) AAS
NTFSのリンクはシンボリックリンクではないでしょ
606: 2019/12/23(月)14:48 ID:Losi+wwQ(1/4) AAS
シンボリックリンクあるよ、ジャンクションじゃないやつ
607: 2019/12/23(月)15:26 ID:IO6RyZUn(4/7) AAS
>>605
シンボリックリンクはSever2008/Vistaから導入された。もう10年以上前になる。
外部リンク[html]:www.atmarkit.co.jp
つかお前、このレベルの話を知らないでその言い草は完全に老害化してるぞ。
608: 2019/12/23(月)15:39 ID:Losi+wwQ(2/4) AAS
mklink /? で普通に表示されるのに
それすらやったことないのか?
609: 2019/12/23(月)15:40 ID:Losi+wwQ(3/4) AAS
共有フォルダ作るときなんか
シンボリックリンクとジャンクションの違いを知らないと困るだろうが
610: 2019/12/23(月)15:41 ID:sEnpgkKc(3/4) AAS
みなさん思いのほか親切ですね
611(1): 2019/12/23(月)15:47 ID:nbY+qllN(1) AAS
>>604
シンボリックリンクもジャンクションも辿れるし、環境変数の設定(CYGWIN=winsymlinks:nativestrict)によってはln -sやtarの展開でNTFSのシンボリックリンクができる
NTFS側でD:とかをリンク先にしても、勝手に/cygdrive/d以下に読み替えてくれる
cygdrive以下だけ動かないなら、/etc/fstabの設定がおかしいとか?
612(2): 2019/12/23(月)15:48 ID:sEnpgkKc(4/4) AAS
だけどシンボリックリンクωを名乗ってるだけでシンボリックリンクではないですねこれ
613: 2019/12/23(月)15:52 ID:Losi+wwQ(4/4) AAS
難癖つけたいんなら、具体的に問題を指摘しろや
614: 2019/12/23(月)15:54 ID:qAO2lZtX(1) AAS
Windowsには
1.ハードリンク
2.ジャンクション
3.あほなシンボリックリンク
4.だるいシンボリックリンク
がある
615(1): 2019/12/23(月)16:12 ID:IO6RyZUn(5/7) AAS
>>611
すまんが、/cygdrive以下だけ動かない、というのは間違いだった。
動作としては、シンボリックリンクを辿ることは出来るが、戻れない、というものだ。
本来はシンボリックリンクはカレントと共に使用される。
つまりD:/dev/debugがシンボリックリンクでそこにD:/devからcdして入ったら、 cd .. だとD:/devに戻って来れないといけない。
(シンボリックリンク先に入った時の元に戻る。他から入ったらそこに当然戻る)
これが出来ておらず、debugしかないディレクトリ(というものを作って渡しているのだと思う)に戻ってしまう。
だから下から上が参照出来ない。上から下は参照出来るし、
下から上でも自分に戻ってくるのなら参照出来る。(言葉だと分かりにくいが要するに以下が通る)
MyMachine@MyName /cygdrive/d/dev/debug
省10
616: 2019/12/23(月)16:26 ID:CGg4xw4r(2/2) AAS
cygwinはもう永眠させてやれ
WSLに乗っ取られた
617: 2019/12/23(月)18:46 ID:wtBUbgEZ(1) AAS
>>612
黙れ!
618(1): 2019/12/23(月)22:27 ID:nMe23UdH(1) AAS
>>615
何をしようとしているか大体分かった。
・/cygdrive/d/dev/debug はシンボリックリンクで /cygdrive/d/test/debug を指すと仮定
・/cygdrive/d/dev/some_file があると仮定
このとき
・まずcd /cygdrive/d/dev/debugする
・次にcp ../some_file .するとファイルが無いと言われる
ということだと思う。もしそうならそれがUNIX系では普通。LinuxやMacでもそうなる。
これは、cdした時点で既にカレントディレクトリが/cygdrive/d/test/debugに移っているからで、cpは/cygdrive/d/test/some_fileを読もうとしているために起こる。つまり
>本来はシンボリックリンクはカレントと共に使用される。
省7
619(1): 2019/12/23(月)23:39 ID:IO6RyZUn(6/7) AAS
>>618
こちらの状況は正しく伝わっており、君の言っていることも正しい。
こちらも615を書いた後、遠い昔にシンボリックリンク周りでトラブった記憶があり、
あれはなんだったかな?と思っていたところだった。
つまりbashで上手く誤魔化していてくれているわけだ。
ではtcshは?と確認したが、こちらもsymlinks変数で誤魔化し方を調整出来るようになっている。
外部リンク[html]:linuxjm.osdn.jp
結果、Cygwinとしては仕様通り、UNIXは糞仕様(≒仕様バグ)だな。
突っ込む必要はないと思うが、
> (引数の..が親ディレクトリの意味になるかはコマンドに依存するから、シェルが勝手に置き換えられない)
省19
620(2): 2019/12/23(月)23:43 ID:gENEPh5i(1) AAS
WindowsがーではなくCygwinの問題でしょ
WindowsはWindowsの仕様でやってる。それがなんであれ正しい仕様
Cygwinがエミュレート機能をすべて行ってる
問題があるならそれはCygwinの問題
WSLならその問題も解決してるだろうさ
621: 2019/12/23(月)23:58 ID:IO6RyZUn(7/7) AAS
>>620
それは違う。
Cygwinはエミュレーションレイヤーを提供しており、つまりUnixのシステムコールを受け付けているだけ。
だから仕様としてUnixと同じ動作になる。
詳しくはWikiなり本家なり読めばいい。
問題はUnixの糞仕様が今も修正されずそのままbash等で誤魔化され続け、
windowsでは修正された?為に動作が異なっている事による。
ただこれをCygwinで修正することは出来ないし、するべき事柄でもない。
622: 2019/12/24(火)00:05 ID:8h2rOUkn(1/2) AAS
> Cygwinはエミュレーションレイヤーを提供しており、つまりUnixのシステムコールを受け付けているだけ。
ただしい
? だから仕様としてUnixと同じ動作になる。
○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない
623(2): 2019/12/24(火)00:06 ID:8h2rOUkn(2/2) AAS
なんか文字化けする方法のバツを記録してるな。これでいいか?
× だから仕様としてUnixと同じ動作になる。
○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない
624: 2019/12/24(火)00:22 ID:6GYTbaHl(1/4) AAS
>>620
なおWSLは理屈上はUnixの動作になるはず。
ただしbash等を見る限り既知の問題だから対策出来そうではあるが、
バイナリ互換なので現実的に無理だと思う。
(もちろんwindows専用bashを用意すればいいが、それだと既存のシェルスクリプトが動かなくなる。
といってもそれで問題が発生するような奴はWSLなんて使わずDockerだと思うが)
が、まあ、俺に関して言えば、
問題の詳細は判明し、特段問題ないから当面はCygwinを使う。
(すまんがNGに当たっているようなのでバラバラにして投稿する)
上下前次1-新書関写板覧索設栞歴
あと 363 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.026s