[過去ログ] 【Bash】Windows Subsystem for Linux【WSL】3 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(1): login:Penguin [sage] 2018/06/05(火) 04:49:41.27 ID:ZoJ8+rBb(1/2) AAS
Install the Windows Subsystem for Linux
外部リンク:docs.microsoft.com

前スレ
【Bash】Windows Subsystem for Linux【Ubuntu】2 2chスレ:linux
978: login:Penguin [sage] 2018/11/08(木) 22:20:45.25 ID:p9+Em52w(1) AAS
「何言ってっだ」という東北なまり?に微妙に心が安らぐ。
979: login:Penguin [sage] 2018/11/09(金) 00:19:12.35 ID:nZbJ72jS(1/2) AAS
WSLに追加する手順を教えろくだせー
980: login:Penguin [sage] 2018/11/09(金) 00:52:20.26 ID:6LiDE00M(1) AAS
外部リンク:news.mynavi.jp
981: login:Penguin [sage] 2018/11/09(金) 01:02:32.29 ID:eMu9wHXZ(1) AAS
WLinuxが記事になってる時、東南アジアにいて、Windowsの国と地域の設定を東南アジアの国にしてたせいか、WLinuxが100%割引になってたんよね
それで買った
982: login:Penguin [sage] 2018/11/09(金) 02:05:50.82 ID:nZbJ72jS(2/2) AAS
面倒だわw
983: login:Penguin [sage] 2018/11/09(金) 07:42:55.32 ID:F2RsN0P0(1) AAS
俺はこれでDドライブとかにWSL環境構築してるわ

外部リンク:github.com
984
(1): login:Penguin [] 2018/11/09(金) 12:48:55.28 ID:3WMswF4A(1/7) AAS
-OyomiオプションつきでWSL版mecabで開いた状態だと、Windows版mecabで同じ辞書フォルダを開けない。
Windows側でCreateFile()の共有指定をFILE_SHARE_READからFILE_SHARE_READ | FILE_SHARE_WRITEに変更して再ビルドすることで回避できた。
同じ問題が、いろんなアプリで起きそうな予感。

WSLで読み取りで開いているファイルにアクセスできないWindowsアプリとか潜在的に多そう。
ちなみにMSのCライブラリだとfopen(filename, "r") でFILE_SHARE_READ | FILE_SHARE_WRITEが指定されるので大丈夫。
CreateFile()というWindows固有のWin32APIを直接呼び出すコードで問題が起きる可能性がある。
読み取りで開くからといって共有指定をILE_SHARE_READ | FILE_SHARE_WRITE ではなくFILE_SHARE_READだけにするとハマる。
985: login:Penguin [sage] 2018/11/09(金) 13:10:43.96 ID:93OjXMJz(1/2) AAS
なんだそのクソ仕様は・・・
986
(1): 984 [] 2018/11/09(金) 13:51:52.09 ID:3WMswF4A(2/7) AAS
説明補足。Mecabは、オープンソース 形態素解析エンジン。
以下URLが公式。多分。
外部リンク:taku910.github.io

>>984 で再ビルドしたってのはソースを修正してmecabバイナリ群をリビルトしたという意味。
CreateFile()を呼び出している箇所は一ヶ所だけなので修正はさほど手間ではない。

開発者の方には、そろそろMecabの最新版を公式リリースしてもらいたい。64bit対応とかあるだろうし。
なお、Mecabの最終更新が2013-02-18と5年以上前。

Mecabに限らず、WSLとWindowsで同時にファイルを開くアプリは要注意。
Bzという割とメジャーなバリナリエディタもCreateFile()の共有指定がFILE_SHARE_READだけなので同じ現象が起きる。

この件、WSLの仕様がおかしいようにも思える。
987: login:Penguin [sage] 2018/11/09(金) 14:01:12.91 ID:93OjXMJz(2/2) AAS
WSLのファイルシステムかメタデータ周りの問題かもな。
WSLなんて所詮オマケみたいなもんだ。遊びでしか使えん。
988
(2): login:Penguin [sage] 2018/11/09(金) 14:14:02.13 ID:+MT3NdP/(1/2) AAS
>>986
えとさ、安全かどうかでちゃんと考えてる?

読み取りで開いているって言ってるけど、
読み取り専用じゃねーからな。読み込み共有モードだからな

私は読み取りしかしない!と宣言してファイルを開いた時
その他のプロセスが書き込みしたら、一回目に読み取ったときと
二回目に読み取ったときでデータが変わってしまう

FILE_SHARE_READっていうのは自分が読み込みしかしない!と
宣言することじゃない。自分は書き込まないから他の人が読み込んでも
いつだって同じデータが読み取れるよ。
他の人は書き換えないと宣言するなら、読み取ってOKって言ってることになる。

同様にFILE_SHARE_WRITEは、自分はうまいことやるから
他の人書き込んでもOK!っていうことだ。

つまりは、自分は読み込みしかしないが他人に書き換えられたら困る!
ってときはFILE_SHARE_READだけにするんだよ
たいていは読み込み途中に書き換えられたら困るだろう?
mecabは他人に書き換えられてもOKと言ってるのか?
989: login:Penguin [sage] 2018/11/09(金) 14:15:35.87 ID:+MT3NdP/(2/2) AAS
自分は読み取りしかしない!と宣言していても、
他人に書き換えられても大丈夫ってことにはならないからな
990
(1): login:Penguin [sage] 2018/11/09(金) 14:38:57.87 ID:30xrhl21(1/5) AAS
Bzでの再現手順教えてくださいな
wsl上のemacsでc:/wsl/test.txtを開いたまま
win上のBz162でc:/wsl/test.txt開いてみたけど
問題なく開けるのでどうすればいいのかわからない
991
(2): login:Penguin [sage] 2018/11/09(金) 15:03:07.22 ID:3WMswF4A(3/7) AAS
>>988
書き込み側、読み込み側、どちらかが優先されるべきかは
それはアプリ次第であって、こうすべきと決めつけるものでもないでしょう。
起動中の読み取りアプリを犠牲にしてでも書き込み優先するという割り切り方もある。

>>990
後学のためにmecabをインストールしてみては?
992
(1): login:Penguin [sage] 2018/11/09(金) 15:22:02.65 ID:30xrhl21(2/5) AAS
>>991
mecabでの再現の手順教えてもらえますか?
それよりはBzのほうが簡単だと思ったので、Bzで訪ねたんですけど
993
(1): login:Penguin [sage] 2018/11/09(金) 15:34:43.90 ID:3WMswF4A(4/7) AAS
>>992
以下のプログラムをWSLでコンパイルし、第一引数に開きたいファイルパスを渡して実行してください。
次に、Windows側で同じファイルをBzで開こうとすれば再現します。なお、当方は64bit版Windows10。
使っているWSLはUbuntu 18.04.1 LTS

#include <cstdio>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>

int main(int argc, char* argv[])
{
const char* filename = argv[1];
int fd = ::open(filename, O_RDONLY);
int prot = PROT_READ;
char *p = reinterpret_cast<char *>(::mmap(0, 1024, prot, MAP_SHARED, fd, 0));
printf("%s %d %p\n", filename, fd, p);
fputs("input [ENTER].\n", stdout);
fgetc(stdin);
::close(fd);
fputs("bye.", stdout);
return 0;
}
994: login:Penguin [sage] 2018/11/09(金) 15:54:06.61 ID:30xrhl21(3/5) AAS
>>993
ありがと
wsl内部でファイルをreadonlyで開いても、windows側からはSHARE_RWで開いたとみなされて
SHARE_Rだけのcreatefileだとコケるという話ですね
fall 2018 updateでwslfsへ変換した環境でも再現できた
995: login:Penguin [sage] 2018/11/09(金) 15:58:22.34 ID:G9J1BokI(1) AAS
次スレは?
996: login:Penguin [sage] 2018/11/09(金) 16:00:31.66 ID:30xrhl21(4/5) AAS
たててみる
997: login:Penguin [] 2018/11/09(金) 16:03:18.95 ID:3WMswF4A(5/7) AAS
>>988
> えとさ、安全かどうかでちゃんと考えてる?

たかが読み取りオンリーなプログラムの分際で、自分の安全しか考えない身勝手なプログラムはダメでしょう。
読み取り側が排他ロックしたい時だけロックするべきで、それ以外の時は書き込み側を優先するのが基本でしょう。
998: login:Penguin [sage] 2018/11/09(金) 16:03:55.61 ID:30xrhl21(5/5) AAS
次スレ
Bash】Windows Subsystem for Linux【WSL】4
2chスレ:linux
999: login:Penguin [sage] 2018/11/09(金) 17:09:55.48 ID:3WMswF4A(6/7) AAS
スキルの低い人ほど宗教的な信条を他人に押し付けたがる法則
1000: login:Penguin [] 2018/11/09(金) 17:10:47.97 ID:3WMswF4A(7/7) AAS
スキルの低さを宗教的な信条で補っているともいえる。
1001
(1): 1001 [] Over 1000 Thread AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 157日 12時間 21分 7秒
1002
(1): 1002 [] Over 1000 Thread AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。

───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
外部リンク:premium.5ch.net

▼ 浪人ログインはこちら ▼
外部リンク[php]:login.5ch.net
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.187s*