Cygwin + MinGW + GCC 相談室 Part 8 (987レス)
Cygwin + MinGW + GCC 相談室 Part 8 http://mevius.5ch.net/test/read.cgi/tech/1411399211/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
609: デフォルトの名無しさん [sage] 2019/12/23(月) 15:40:22.34 ID:Losi+wwQ 共有フォルダ作るときなんか シンボリックリンクとジャンクションの違いを知らないと困るだろうが http://mevius.5ch.net/test/read.cgi/tech/1411399211/609
610: デフォルトの名無しさん [] 2019/12/23(月) 15:41:13.85 ID:sEnpgkKc みなさん思いのほか親切ですね http://mevius.5ch.net/test/read.cgi/tech/1411399211/610
611: デフォルトの名無しさん [sage] 2019/12/23(月) 15:47:56.41 ID:nbY+qllN >>604 シンボリックリンクもジャンクションも辿れるし、環境変数の設定(CYGWIN=winsymlinks:nativestrict)によってはln -sやtarの展開でNTFSのシンボリックリンクができる NTFS側でD:とかをリンク先にしても、勝手に/cygdrive/d以下に読み替えてくれる cygdrive以下だけ動かないなら、/etc/fstabの設定がおかしいとか? http://mevius.5ch.net/test/read.cgi/tech/1411399211/611
612: デフォルトの名無しさん [] 2019/12/23(月) 15:48:24.03 ID:sEnpgkKc だけどシンボリックリンクωを名乗ってるだけでシンボリックリンクではないですねこれ http://mevius.5ch.net/test/read.cgi/tech/1411399211/612
613: デフォルトの名無しさん [sage] 2019/12/23(月) 15:52:08.05 ID:Losi+wwQ 難癖つけたいんなら、具体的に問題を指摘しろや http://mevius.5ch.net/test/read.cgi/tech/1411399211/613
614: デフォルトの名無しさん [sage] 2019/12/23(月) 15:54:08.35 ID:qAO2lZtX Windowsには 1.ハードリンク 2.ジャンクション 3.あほなシンボリックリンク 4.だるいシンボリックリンク がある http://mevius.5ch.net/test/read.cgi/tech/1411399211/614
615: デフォルトの名無しさん [sage] 2019/12/23(月) 16:12:25.30 ID:IO6RyZUn >>611 すまんが、/cygdrive以下だけ動かない、というのは間違いだった。 動作としては、シンボリックリンクを辿ることは出来るが、戻れない、というものだ。 本来はシンボリックリンクはカレントと共に使用される。 つまりD:/dev/debugがシンボリックリンクでそこにD:/devからcdして入ったら、 cd .. だとD:/devに戻って来れないといけない。 (シンボリックリンク先に入った時の元に戻る。他から入ったらそこに当然戻る) これが出来ておらず、debugしかないディレクトリ(というものを作って渡しているのだと思う)に戻ってしまう。 だから下から上が参照出来ない。上から下は参照出来るし、 下から上でも自分に戻ってくるのなら参照出来る。(言葉だと分かりにくいが要するに以下が通る) MyMachine@MyName /cygdrive/d/dev/debug $ less ../debug/some_file 下から上でもファイル名の補完は出来るのでbash自体は動作してる。 なお cd ../.. とシンボリックリンクを跨いで2つ上がることは可能。 cdってbashのコマンドだっけ?だとして、やはりbash自体は動作してる。 bashから各アプリに渡す時に失敗しているか、cygwin1.dll自体が対応してないか、だと思う。 バグ報告してもいいけど、それ以前に64bit環境の動作を確かめてからでないとウザがられる。 というわけで普段から64bit環境で使っている人がいたら試してみてくれ。 >>612 いや完全にシンボリックリンクだよ。 ln -s と使い勝手は同じ。 http://mevius.5ch.net/test/read.cgi/tech/1411399211/615
616: デフォルトの名無しさん [sage] 2019/12/23(月) 16:26:38.22 ID:CGg4xw4r cygwinはもう永眠させてやれ WSLに乗っ取られた http://mevius.5ch.net/test/read.cgi/tech/1411399211/616
617: デフォルトの名無しさん [sage] 2019/12/23(月) 18:46:28.73 ID:wtBUbgEZ >>612 黙れ! http://mevius.5ch.net/test/read.cgi/tech/1411399211/617
618: デフォルトの名無しさん [sage] 2019/12/23(月) 22:27:33.69 ID:nMe23UdH >>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を読もうとしているために起こる。つまり >本来はシンボリックリンクはカレントと共に使用される。 がUNIX的には正しくない。 実際の挙動としては、 ・UNIXの場合、カーネル的にはカレントディレクトリはあくまでもディレクトリで、シンボリックリンクをパスの途中に含むことはできない ・cd ..でもといたディレクトリに戻るのはbashがシンボリックリンクを本当のデイレクトリのようにエミュレーションしているから(set -Pで切れる) ・これは基本的には内部コマンドのcdやpwdに対してのみできることで、外部コマンドのcpやlessに対してはできない(引数の..が親ディレクトリの意味になるかはコマンドに依存するから、シェルが勝手に置き換えられない) ・シェルはPWD環境変数にシンボリックリンクを含むロジカルなカレントディレクトリを出力するので、これを見るようにすれば原理的には外部コマンドもエミユレーションに対応できる(危なっかしいので普通はしない) WindowsのシンボリックリンクはUNIXと違ってOS自体がシンボリックリンクを含むカレントディレクトリを扱っているようだが、CYGWINはUNIXに合わせていると考えられる。 http://mevius.5ch.net/test/read.cgi/tech/1411399211/618
619: デフォルトの名無しさん [sage] 2019/12/23(月) 23:39:27.27 ID:IO6RyZUn >>618 こちらの状況は正しく伝わっており、君の言っていることも正しい。 こちらも615を書いた後、遠い昔にシンボリックリンク周りでトラブった記憶があり、 あれはなんだったかな?と思っていたところだった。 つまりbashで上手く誤魔化していてくれているわけだ。 ではtcshは?と確認したが、こちらもsymlinks変数で誤魔化し方を調整出来るようになっている。 https://linuxjm.osdn.jp/html/tcsh/man1/tcsh.1.html 結果、Cygwinとしては仕様通り、UNIXは糞仕様(≒仕様バグ)だな。 突っ込む必要はないと思うが、 > (引数の..が親ディレクトリの意味になるかはコマンドに依存するから、シェルが勝手に置き換えられない) これはよく分からない。 bashがコマンドに引数を渡すときにあらかじめシンボリックリンク周りを解決していたら、どういう問題が発生する? というかtcshだとsymlinks=expandに設定したらそうなるらしい。 今回で言えば、 MyMachine@MyName /cygdrive/d/dev/debug $ cp ../some_file . を cp /cygdrive/d/dev/somefile /cygdrive/d/dev/debug として実行すれば問題ないはず。 (.を展開する必要はないかもだが) 既存シェルスクリプトの互換性が無くなるだけなら仕様バグでした、残念でした、でしかなく、 後発のwindowsでは修正されているということになる。 シンボリックリンクを辿って、その上の「論理的ではない、物理的上位ディレクトリ」を辿る必要がある使い方なんて無いはず。 なお上記man of tcshのsymlinksの最後の > > cd ".."; echo $cwd > /tmp/from > > /bin/echo .. > /tmp/to ←これがよく分からん、/tmpではなくて?あるいはコマンドが .. ではなく /bin/echo . なら納得だが > > /bin/echo ".." > .. 分かれば出来れば解説よろしく。 http://mevius.5ch.net/test/read.cgi/tech/1411399211/619
620: デフォルトの名無しさん [sage] 2019/12/23(月) 23:43:56.19 ID:gENEPh5i WindowsがーではなくCygwinの問題でしょ WindowsはWindowsの仕様でやってる。それがなんであれ正しい仕様 Cygwinがエミュレート機能をすべて行ってる 問題があるならそれはCygwinの問題 WSLならその問題も解決してるだろうさ http://mevius.5ch.net/test/read.cgi/tech/1411399211/620
621: デフォルトの名無しさん [sage] 2019/12/23(月) 23:58:57.35 ID:IO6RyZUn >>620 それは違う。 Cygwinはエミュレーションレイヤーを提供しており、つまりUnixのシステムコールを受け付けているだけ。 だから仕様としてUnixと同じ動作になる。 詳しくはWikiなり本家なり読めばいい。 問題はUnixの糞仕様が今も修正されずそのままbash等で誤魔化され続け、 windowsでは修正された?為に動作が異なっている事による。 ただこれをCygwinで修正することは出来ないし、するべき事柄でもない。 http://mevius.5ch.net/test/read.cgi/tech/1411399211/621
622: デフォルトの名無しさん [sage] 2019/12/24(火) 00:05:26.55 ID:8h2rOUkn > Cygwinはエミュレーションレイヤーを提供しており、つまりUnixのシステムコールを受け付けているだけ。 ただしい ? だから仕様としてUnixと同じ動作になる。 ○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない http://mevius.5ch.net/test/read.cgi/tech/1411399211/622
623: デフォルトの名無しさん [sage] 2019/12/24(火) 00:06:45.59 ID:8h2rOUkn なんか文字化けする方法のバツを記録してるな。これでいいか? × だから仕様としてUnixと同じ動作になる。 ○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない http://mevius.5ch.net/test/read.cgi/tech/1411399211/623
624: デフォルトの名無しさん [sage] 2019/12/24(火) 00:22:04.30 ID:6GYTbaHl >>620 なおWSLは理屈上はUnixの動作になるはず。 ただしbash等を見る限り既知の問題だから対策出来そうではあるが、 バイナリ互換なので現実的に無理だと思う。 (もちろんwindows専用bashを用意すればいいが、それだと既存のシェルスクリプトが動かなくなる。 といってもそれで問題が発生するような奴はWSLなんて使わずDockerだと思うが) が、まあ、俺に関して言えば、 問題の詳細は判明し、特段問題ないから当面はCygwinを使う。 (すまんがNGに当たっているようなのでバラバラにして投稿する) http://mevius.5ch.net/test/read.cgi/tech/1411399211/624
625: デフォルトの名無しさん [sage] 2019/12/24(火) 00:23:19.80 ID:6GYTbaHl (すまんがNGに当たっているようなのでバラバラにして投稿する) >>623 > ○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない 違う。そこを目指してない。 CygwinはUnixのシステムコールをcygwin1.dllが受け付けることにより、 GNU等が書き溜めた膨大なUnix向けCソースをそのまま動作させることを目標としている。 結果、ありとあらゆるUnixのツールがcygwin上では動くので、大成功している。 http://mevius.5ch.net/test/read.cgi/tech/1411399211/625
626: デフォルトの名無しさん [sage] 2019/12/24(火) 00:24:32.17 ID:6GYTbaHl >>623続き windowsのCMD。EXEのエミュレーションなんて必要ないし、目指してもいない。 本家でも読め。 そして認識も間違っている。CygwinはUnixと同じ動作になってる。つまり、「できてる」 http://mevius.5ch.net/test/read.cgi/tech/1411399211/626
627: デフォルトの名無しさん [sage] 2019/12/24(火) 00:29:23.48 ID:d/S5Qnsu >>619 ・tcshのmanは間違っているだけだと思う。実際試したら想定通り/tmpになった。 ・シェルが勝手に置き換えるべきではないというのは、単にgrep ..とかの動作が今までと変わって直感的でなくなるあたりの問題。.や..の置き換えの仕様とエスケープやクォートの仕様を十分理解すればまあそんなに困らないとは感じる。 http://mevius.5ch.net/test/read.cgi/tech/1411399211/627
628: デフォルトの名無しさん [sage] 2019/12/24(火) 00:49:31.91 ID:6GYTbaHl >>627 おおサンクス、手元にこなれた環境がないので助かる。 しかし今更このレベルの誤字ってあるかね? まあtcshなんて今時誰も使ってないが、他のマニュアルもそうなってるし。 https://linux.die.net/man/1/tcsh とはいえ実行結果がそうなのならそれが一番信憑性があるが。 Unixは今更直せないで行くのだろうけど、WSLの際にMS内部ではどうするか検討してるだろうね。 WSL推しの人はどうぞ動作報告よろしく。 http://mevius.5ch.net/test/read.cgi/tech/1411399211/628
629: デフォルトの名無しさん [] 2019/12/24(火) 15:52:35.51 ID:IBUEMR4t WSLの話題はこちらへどうぞ https://mao.5ch.net/test/read.cgi/linux/1560665525/ cygwinの話題は引き続きこのスレでどうぞ http://mevius.5ch.net/test/read.cgi/tech/1411399211/629
630: デフォルトの名無しさん [sage] 2020/01/05(日) 00:06:31.37 ID:RxmL5T69 >>627 ばーーーか http://mevius.5ch.net/test/read.cgi/tech/1411399211/630
631: 627 [sage] 2020/02/21(金) 14:13:26.80 ID:3bMJAyBr >>630 ごめんなさい。 http://mevius.5ch.net/test/read.cgi/tech/1411399211/631
632: デフォルトの名無しさん [sage] 2020/03/07(土) 09:24:50.59 ID:6t68C04E このところ、MSYS2 の pacman を実行するとエラーが出るな サーバー不調なん?それとも pacman がバグった? 一度アンインストールして最初から入れなおしてもダメやった・・・ http://mevius.5ch.net/test/read.cgi/tech/1411399211/632
633: デフォルトの名無しさん [sage] 2020/03/11(水) 21:27:12.49 ID:o+x7iIJI いつの間にか直ってた やっぱり、サーバーが不調なだけだったのか・・・ http://mevius.5ch.net/test/read.cgi/tech/1411399211/633
634: デフォルトの名無しさん [] 2020/03/12(木) 11:58:54.03 ID:MzPDqAwN 自分の回線を疑う気は皆無か http://mevius.5ch.net/test/read.cgi/tech/1411399211/634
635: デフォルトの名無しさん [sage] 2020/03/12(木) 19:21:51.59 ID:TmXPZpmc 自分の回線だけだったら書き込まないが・・・ http://mevius.5ch.net/test/read.cgi/tech/1411399211/635
636: デフォルトの名無しさん [] 2020/03/25(水) 09:30:19.85 ID:C+0WfFNh0 回線があまりに遅いと向こうからお断りしてくるのでは http://mevius.5ch.net/test/read.cgi/tech/1411399211/636
637: デフォルトの名無しさん [sage] 2020/03/28(土) 13:48:39.21 ID:Mtf58BEo サーバー不調なだけだぞ、公式でも話題になってた https://github.com/msys2/MINGW-packages/issues/6256 http://mevius.5ch.net/test/read.cgi/tech/1411399211/637
638: デフォルトの名無しさん [sage] 2020/04/02(木) 18:00:43.50 ID:1pp0Yvcl 今更 pacmanでfork errorでまくったので見切った。 wslでLinux入れてmingw64クロスコンパイルしている。 wslのコンソールでwindowsバイナリもそのまま動くし良い。 cygwinやmsysみたいにcygwin, msysバイナリとwindowsバイナリが混在することの混乱もないしさらに良い http://mevius.5ch.net/test/read.cgi/tech/1411399211/638
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 349 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s