【Bash】Windows Subsystem for Linux【Ubuntu】2©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
OS標準機能だけにしたいならDocker MachineはHyper-Vで動かす方がいい。 WSL自体をアップデートする方法として公式に
lxrun /update
と書かれてるが....最新リリースを試す方法ないの?
FCUの公式リリースで変わったんですか? DockerMachineなんてほぼ使わねーんだが Docker Toolbox だろ
>>420
10月の、Windows 10 Fall Creators Update では、
WSL 正式版を、Windows ストアからインストール
正式版になったから、ベータ版をアップデートできないのでは?
GUI を使うには、Windows 側で、
VcXsrv Windows X Server Docker Toolbox は レガシーあつかい
https://docs.docker.com/toolbox/toolbox_install_windows/
今はDocker for Windowsを使う
https://docs.docker.com/docker-for-windows/install/
違いは前者がVirtualBoxを使って後者がHyper-Vを使うと考えていい。
Docker推奨のDocker for Windowsを使うならVirtualBoxは諦めるしかない。
VagrantのためにVirtualBoxを使っているという人も多いかもしれないが
VagrantはHyper-Vでも使える
VirtualBoxとHyper-Vが同居できると良いんだがな
Docker MachineはDocker Toolboxで使うんだっけな
要するにDockerっていうのはサーバーがあってクライアントから
接続するものだからその接続先をDocker Toolboxに切り替えるために使う
Docker for Windowsの場合はそういう切り替えなしに接続できる >>418
> Ubuntu 側では、Dockerデーモンが動かないため、
> Windows 側の、VirtualBox に、Vagrant で、CoreOS を入れて、
> その中に、Dockerデーモンをインストール
よんでないけどそんなこと書いてあるのか?
WSLのUbuntu側ではDockerデーモンが動かないため
Docker for WindowsでインストールしたDockerに対して接続する。
VirtualboxもVagrantもCentOSもいらない
コマンドプロンプトの(つまりWindows版の)Dockerクライアントからは普通にDockerサーバーに接続できる
WSLのUbuntuのDockerクライアントから接続したい場合は
まずDocker for Windowsの設定「Expose daemon on tcp://localhost:2375 without TLS」
これにチェックをいれる
あとはUbuntu環境で export DOCKER_HOST='tcp://0.0.0.0:2375' を実行する
(これをdocker-machineを使ってやっても良い) Linux では、Hyper-V は見たことない
VirtualBox か、VMware >>426
ttps://msdn.microsoft.com/ja-jp/commandline/wsl/reference 警告: lxrun.exe は、Linux ディストリビューションのためにレガシ Windows サブシステムを構成するだけに使用されます。
ディストリビューションは次の Windows ストアを訪問してインストールすることができます:
https://aka.ms/wslstore
使用法:
/install - サブシステムをインストールします
オプションの引数:
/y - ユーザーに許可を求めないか、ユーザー サブシステムを作成しない
/uninstall - サブシステムをアンインストールします
オプションの引数:
/full - 完全アンインストールを実行します
/y - ユーザーに確認を求めません
/setdefaultuser - 既定のサブシステム ユーザーを設定します。ユーザー アカウントが存在しない場合は作成されます。
オプションの引数:
username - ユーザー名を指定します
/y - ユーザー名が指定された場合、パスワードの作成を求めません >>423
>Docker MachineはDocker Toolboxで使うんだっけな
>要するにDockerっていうのはサーバーがあってクライアントから
接続するものだからその接続先をDocker Toolboxに切>り替えるために使う
>
>Docker for Windowsの場合はそういう切り替えなしに接続できる
docker-machineはホスト操作のcliってだけでToolbox限定じゃない
Docker for WindowsでもインストールされるしHyper-Vのホストも立てられる
まぁリモートのホストに切り替えたりするのが主な用途だろうが >>424
ちなみにその方法だとTLS接続できないからセキュリティ的に問題がある場合はdocker-machineでホスト立てる、つーのが割と使われる回避策
こだわりがあるならvagrantなり諸々の方法で立ててもいいけど、そこまでの事情があるなら自力で何とでもできるわな 俺達のMicrosoftが本気を出せばUTF-8のサポートなど容易いことだ
Windows 10のInsider PreviewでシステムロケールをUTF-8にするオプションが追加される
https://srad.jp/story/17/11/14/0640253/ ええな
不具合は出るだろうけど強引にでもutf8へ移行させるべき >>433
LinuxでUTF16対応できないのは、
カーネルを含めC言語ライブラリが幅を利かせているからだよ
C言語ライブラリは文字を一文字ずつ眺めていってNULL文字が
登場したらそこが文字列の終わり。ASCII互換の文字列以外は扱えない
だからUTF16やUTF32のようなマルチバイトの中にNULL文字が
含まれてるような文字コードには簡単には対応できない
Windowsのように当初からASCII互換以外の文字列も
扱えるように設計されているOSと比べるのはかわいそう C言語「wchar_t系ライブラリもあるのに対応出来ないのはお前の頭が悪いからだぞ」 Windowsもwcharで対応してるだけなのにID:gh7zcXCzは何を言ってるんだろう... そのwcharがLinuxカーネルで使われてないという話 あとwcharはUTF16のような2バイト or 4バイトのような
可変長文字を扱うのが面倒ってのもあるな UTF16 は、2バイト文字だけなら、
例えば10バイトなら、5文字って簡単に計算できるけど、
4バイト文字(サロゲートペア)があるから「2, 4, 2, 2, 2」で4文字になったりするから、
前から順番に、すべて走査しないと、文字数がわからない
UTF32 にすると、すべてが4バイト文字になるから、簡単に文字数が計算できるけど、
メモリを2倍使うから、無駄が大きい
また、mac では「が」などを、「か」+ 濁点で表すから、「が」が検索できない
Windows, Linux は、合成済み文字・NFC。
mac は、結合文字列・NFD Firefox Quantum 激早!
HTTP/2の恩恵を受けてるわ・・・ 業務のPCに窓以外を導入した団体はだいたいメンテやサポートのコストが増えて後悔してる
上記の理由でDELLのubuntuプリインストールも即消えた いまいちよく解ってないんだがubuntu使ってて
/以下に通常のubuntuのaptで入るもの以外のWSL固有なファイルってあるの?
Windowsのリリース・ビルドが変わらない限りWSLも更新されないで合ってる? /initはupstartでもsystemdでもないWSL独自だよね systemdじゃないのか
systemctlどうなってんだろ archlinuxにしたいんだけど、WSL部分のアップデートがどうなるのか解らなくて踏み切れない >>448
WSLはOSじゃない。Ubuntu用のバイナリが動くってだけ
OSはWindowsのままだよ。新しいOSが動き出すわけじゃない
だからWindowsからいきなりバイナリが実行される
それがbashなわけ boot: linux init=/bin/bash
ぐらいに考えとくのがよろしい chrootやdockerで何かのプロセスを
隔離された環境で起動したことがあればわかると思うけどね
WSLは隔離することが目的じゃないから
ネットワーク空間などを共有してる。
その点でchrootに近い。
Windows上でLinux環境でchrootするようなものだ
実際にWindows上のUserディレクトリの深い場所が
rootになるわけだしな まさしくそうなんだよなぁ。
ファイルシステムがボトルネックになってる。 /init はMS-DOSのコマンドインタプリタ様なるぞ
皆の衆頭が高い、ひかえおろう
root@NOTE:(/root) # cat dos-script
#/init
dir /mnt/c
/mnt/c/Windows/notepad.exe
root@NOTE:(/root) # chmod +x ./dos-script
root@NOTE:(/root) # ./dos-script zshの過去に使ったコマンドの補完が効かないんだけど何か対処法はありますかね?
いちいち全文打ったり検索したりするのが面倒臭い... >DrvFs creates NT symlinks when certain conditions are met. [GH 353, 1475, 2602]
>Add wslpath to do WSL<->Windows path conversions. [GH 522, 1243, 1834, 2327, et al.]
Release Notes
https://msdn.microsoft.com/en-us/commandline/wsl/release-notes#build-17046 > 同社は「sshd、httpd、screenもしくはtmuxを起動した場合、
> コンソールウィンドウを開き続ける必要があったものの、ビルド17046以降は
> 最後のコンソールウィンドウを閉じても、プロセスはバックグラウンドで実行し続ける」と説明した。
マジか、これでひとまずはsshd使ってWindows側でWSL側のファイルを編集できそうだ
本当はWSL側のファイルシステムをWindows側のドライブとして参照できてほしいけどね
>>462
Linux互換レイヤーを持っているだけでカーネルはWindows
Linuxはまったく使ってないのでLinux Serverとはいえないと思う
Ubuntu Serverという言い方なら正しいかもね 最初のsshd起動するにはやっぱり窓開かなあかんのか Fedoraまだなんですか?
仕事でRedhatしか使わないから、Ubuntuとか覚える気にならない…… WslRegisterDistributionでCentOSのDockerイメージがイミフなエラーでインストールできないんだけど、っていうissue上がってるしFedoraも案外同じ問題にぶつかってたりしてな こんなのlinuxじゃねえから
これ使ってlinux使ってますアピするやつ見かけると笑われるよ Linuxをまったく使ってないんだからLinuxなわけないだろw Linuxのバイナリがそのまま動いてるから
カーネル的な意味では確かにLinuxではないがユーザーランド的な意味ではLinux(互換)と言っても差し支えないと思う >>471-474
20年ぐらい昔、LinuxとUNIXで似たようなこと騒ぐやつが転がってたが
脳味噌が全く進歩しとらんな ややこしいもんな
UbuntuのカーネルをBSDにしたUbuntuBSDというものがある
だけどWSL上で動くUbuntuは通常のLinuxカーネルのUbuntu
普通に使っている分にはLinuxに見えてしまう
だけどカーネルはWindows coLinuxはカーネルが2.6のままだし、実質終了してるな・・・
10年ぐらい前にKNOPPIXで遊んだ覚えがある。
あと、Wubiなんてのがあったな。 cygwinなんて少しでも複雑なことしようとすると、
すぐにremapがどうのとfatalが出て、rebaseallでも直らないような……
perlやrubyだけ? rebase問題はWindowsのバージョンが上がるごとに問題が起きやすくなってる
気がする fedoraはなんで遅れているんだろうな
27でモジュラー化するとか言っていたからその変更を待ってからにするつもりとかかな
モジュラー化は27では結局失敗したけど Win10 v1709のEOLより先にFedora 27のEOLが来る可能性が非常に高いあたりに折り合いがついてなさそう あまり関係ないかもしれないがExcelにpythonのせる計画もあるらしいな まあwindowsでLinux環境を使いたいっていうのは変わらないからな Fedora来年の定期アップデートにすら間に合わないに0.0001BTC >>478
UbuntuBSDは事実上終わったよ。
Debian GNU/kFreeBSD がもっと盛り上がったら良かったんだけどなー。 そういえば、FreeBSD/NetBSDも終わってるのかね
まぁやたらと内輪もめが好きな集団というイメージだが 組み込みやゲーム機で生き残ってる。
PSはFreeBSDだし、NECのルーターはNetBSDなのは有名。 開発者にとってはWindows 10が使いやすくなってると
小さなバージョンアップのたびに感じてるよな
>>490
busyboxをビルトインしてほしい
そうすりゃ簡単なシェルスクリプトが動くんだ 誰もやらんかもしれないけど
@ WSL の Ubuntu の bash から使う git
A Git for Windows の Git Bash から使う git
これらを混ぜると危険
Aでサブモジュールを含むローカルコピーを取ってきた後
サブモジュールを取り直す時に
間違って@で取ると
以降 git status --porcelain が失敗する
TortoiseGit が Git for Windows に依存するので
TortoiseGit でのいろんな操作も失敗するようになる
ようやく気づいたよ、、
修復方法はサブモジュールを
Git for Windows のGit Bash から取り直すこと >>496
>Note: We fixed a bug in the metadata format used by DrvFs.
>While metadata works on this build for experimentation, future builds will not correctly read metadata created by this build.
>You might need to manually update owner for modified files and devices with a custom device ID will have to be recreated. >>501
んなばかなクライアントが違ったら壊れるとか使い物にならないだろう
windowsからWSLのファイルにアクセスしてるだけでは? >>502
もしかしてこれのせい?
確かにWindowsアップデートしてから起きるようになったよ ようやくバックグラウンドでsshが動くようになったみたいだな VirtualBoxでUbuntu動かした方がすっきりする気がするんだが。わざわざサブシステムで無理やり動かすメリットって何? わざわざ仮想マシンで動かすオーバーヘッドと容量が気になる
Windowsとファイルシステムやコマンドをシームレスに連携
とかとか
(仮想的な)別マシンではなく一つのマシンで済ませたい
マカーがUnix環境使いたいときはわざわざVMにLinux入れたりせずそのままMacの端末使うでしょ(OS XはUnix互換だし)
Windowsがそれに近づいた 今はまだVirtualBoxでいいとかcygwinでいいとかあるけど
・WindowsとWSL上で相互にファイル読み書きができるようになる
・Dockerが動くほどカーネルの互換機能が高まる
のどちらか、または両方が実現できたら大きく化けるよ
クラウドの関係のアプリ開発はWindowsだけでできるようになる あとwsl側でwindows側のコマンド実行できたらcygwinはいらなくなるけどできるんかな? あともう一個
wsl環境をvmの仮想マシンのように複数個作れるようになること
これができればvmの出番も少なくなる ■ このスレッドは過去ログ倉庫に格納されています