【Bash】Windows Subsystem for Linux【WSL】3
■ このスレッドは過去ログ倉庫に格納されています
>>10
wsl と mingwって全くの別物だと思うんだけど、どう関係させるの? >>15
WSLにmingwパッケージを入れてWindowsのバイナリをコンパイルできる。
クロスコンパイルってやつ。 >>14
C++17だと大丈夫みたいだぞ。
C++03の頃は、clで確認後、gccでビルドすると通らないのが普通だった。
必ず修正が必要で、すり合わせを行っていた。
ところがC++17を指定するとgccが賢くなるらしく、すり合わせの必要が全くない。
ちなみにC++17はgcc7からなので、例えばUbuntu16.04などにはパッケージがない。 SwiftをWSLで動かそうとしたが、コンパイルが低速でVMでやったほうが速かった・・・ Visual Studio 2017、CMakeプロジェクト、WSLという環境だと、インテリセンスがLinux側の標準ヘッダを拾ってくれなくてWindows側にフォールバックするな。
何か設定が必要なんだろうか。 >>19
LinuxにもVCPKG導入して使うことにしたんだけど、Boostですら何とかなってるけどな。 新しめの環境が使いたいC++使いは、WSLにUbuntu18.04を入れるのがお勧め。
これでgcc7が使える。
それでも、ライブラリは最新じゃないから、パッケージマネージャとしてVCPKGを導入したほうが良い。 >>23
まあ何かそういう単純なことなんだろうけどな。 ビルドはできるので、CMakeCacheには入っているはずなんだけどなあ。 >>16
なるほど win 上のlinuxでwinのバイナリを作るのは不思議な気がするけど、msys使うのと変わらないのか インテリセンスの問題は、Linuxから情報を収集するのに時間が必要だっただけで、普通にLinux側のヘッダに合わさったわ。
Linux側のSSHサーバーを情報収集が終わるまで起動したままにしとかないとダメってことだな。 Linux側のシステム・ヘッダでインテリセンスが効くようになったものの、問題発生。
CMakeで指定しているC++17の設定が反映されていない。
__cplusplus < 201103Lに引っかかってしまう。
ビルド時はきちんと設定されているのだが。 環境を作ることが目的になってなければいいけど。
どういうプロジェクトに参画してるんだろう。 今のところ、clとgccの違いはテンプレート仮引数名の衝突だけだな。
C++17を有効にするとだいぶ統一されるようだ。 Excelから出力したCSVのように一行(?)の中に改行が含まれた
データを扱うにはどうしたら良いでしょうか? >>37
セル内改行は\n、カラムの改行は\r\nになってるらしいよ。 もう少し具体的に書きます。
カンマ区切りのCSVデータだと仮定して、
シェルスクリプトの中に関数を一行ごとに呼び出し、
列を引数に対応させたいです。
例えば以下のような内容のファイルがあったとして
a1,a2,a3,a4
b1,b2,b3,b4
c1,c2,c3,c4
syori "a1" "a2" "a3" "a4"
syori "b1" "b2" "b3" "b4"
syori "c1" "c2" "c3" "c4"
という風にsyori関数を呼び出したいのです。
ただし実際には各項目(a1等の部分)にExcelから出力したデータのように
改行やカンマやダブルクォートやシングルクォートや空白が入ることがあるのです >>37
どういうレベルで扱いたいんだ?
プログラム組めるならその言語用CSV用ライブラリ使えば普通に対応できる。 >>40
それで思い出しました。
各項目には \ が入ることもあります。
今回はCSVではありませんが、RFC4180(=ExcelのCSVの仕様)では
改行が\nのようにエスケープされません
https://ja.wikipedia.org/wiki/Comma-Separated_Values
> フィールドがコンマ、ダブルクォート、改行を含む場合は、かならずダブルクォートで囲む。
> また、フィールドに含まれるダブルクォートは2つ並べてエスケープする。
>
> "日本 CRLF
> 国","""東京""","127,767,944" CRLF
↑「日本国」の国の前に改行が入っている場合 あ、スレ間違えました。移動します。(おかしいなぁ?) Awkマスターのスレで聞くとわかるんじゃないだろか。
まさにWSLの有効な使い方だろな。 Bashとスレタイに入ってるから、ここに来たのか。 awkじゃ改行コードの検出は無理だろうな。perlとかPythonの領域じゃね UNIX板のスレによると、Linuxのawkは普通のawkより強いらしいぞ。 行単位で処理するawkでフルスペックCSVが処理出来る程強化
されているのかぁ凄いなぁ >>52
LinuxというかGNUのな。GNUはオリジナルに機能拡張している
LinuxのコマンドはほとんどオリジナルのではなくGNUの。Linuxはオリジナルを入れてないからGNU Awkをawkとしている。オリジナルがあるとこではgawk(GNU自体がgawkと称しもする)だな
>>51
getlineを使えばやってやれないこともないだろう April 2018 UpdateしたらWSLの環境が消滅したんだけど
どうしてくれるの なんかストアから新しいディストリビューション入れたら旧いUbuntu環境も立ち上がるようになった
わけがわからないよ 電源入れた後はエラーで起動せず、再起動後にやっと動くという謎の不具合。 DockerみたいにExportしてあとで環境を再構築できる機能が欲しいな。
そうじゃないと安心して使えない。 >>60
ようするに環境構築の話だろ?
ansibleとか使えば? >>60
WSLにこだわるなら、 tarで / のバックアップとってとかじゃダメ?
まか、そういう使いかたならVirtualbox なり VMWareが向いていると思う。 というかだよ。
WSLの設計としては、ソースコードはC:\Users\name 以下に置いて
それを /mnt/c/Users/name から参照する想定でしょ?
シンボリックリンクをつければ ~/ 以下から参照できるし
だからWSLの環境が削除されてもデータは残る >>64
うん。だからシンボリックリンクでHOME以下に
持ってくればいいわけだよ そういうことじゃなくてdrvfs上で作業したくないという話 だからdrvfs上で作業しろよ
パーミッション、タイムスタンプ、保存できるようになっただろ >>66
drvfsで作業したくない理由ってなに、? Ubuntu 16.04 も、自動的に、新しいバージョンに更新されていた 漏れは、~/.bash_aliases に、ドキュメントフォルダーへのalias を定義してる
export LANG=ja_JP.UTF-8
shopt -s expand_aliases
alias mydoc='cd /mnt/c/Users/Owner/Documents' WindowsにLinuxが入った!
今度のWindowsはLinux入り! Linuxは入ってねーよ。
もしLinuxはGPLなんだからWindowsもソース公開しなきゃならない!
とかいうやつが現れたりしても無駄。
なにせLinuxは入ってない
Windowsが独自にLinux互換機能を搭載しただけ
WindowsというOSを作っていながら、
片手間でLinux OS互換にするとはすごいね 入った!
超入った!
Windows + Linuxのお得なWindowsが今度のWindows! あー、まあそれでいいよw
WindowsがLinux相当の機能を含んだのはそのとおりだし
鬼に金棒ってやつだ。
もうわざわざLinuxを使う必要がない Linuxの機械学習系のソフトで、実用的な速度で学習ができれば申し分ないんだが・・・ 機械学習を計算サーバでない場所でやろうというのがおかしい
しかも「実用的な速度」などとのたまう unixもどきのlinuxもどきが使えるようになったとか言って喜んでる欠陥OSユーザーwww
本物のunixであるmacの前にひれ伏すが良い MacもMacで独特のクセがある。
ユーザーランドはGNUなのかBSDなのかどっちつかずで・・・ 本物のWindowsであるWinndowsに敬礼! Microsoft Linuxの時代来たーー!!! Microsoftが作った本物のLinuxキターー!! 中身うぶんつとかすーぜーじゃん
せんとくんもってこいや セント君はレッドハットとの契約上、Microsoft社のカーネルで稼働させられないらしいけど。 >>86
商用パッケージが含まれるRHELならともかく、
CentOSはもともとRHELと無関係のプロジェクトで
レッドハットと何ら契約を結んでないのでそれはありえない
そんなことをしたらGPL違反になる WSL上でCentOSが使いたいなら、こんなものもある
https://github.com/RoliSoft/WSL-Distribution-Switcher
これらに対応しているようだ(多分イメージを用意すればその他も動くのだろう)
debian, ubuntu, fedora, centos, opensuse, mageia,
oraclelinux, alpine, crux, clearlinux >>87
今となってはRedHat様がスポンサーのプロジェクトですがw >>87
セント君はレッドハットと協業契約を結んでいて、そのおかげで訴訟の心配なく使えるようになったのが売りだと思いますが。 セント君を使ってもレッドハットから訴えられることはありません。
だけども、Windows上で動かすことはできません。
まあそんな仕組み。 何を言ってるんだ? CentOSとレッドハットが協業したからって
OSのライセンスがGPLである以上、Windows上で動かすことが
できないなんて追加ライセンスはつけられないんだが?
それにマイクロソフトもレッドハットと協業している。仲いいんやで?w
マイクロソフトとレッドハットがついに結んだ画期的パートナーシップの全貌
https://forbesjapan.com/articles/detail/10256
Microsoft AzureではRHELとCentOSもサポートしている
https://azuremarketplace.microsoft.com/ja-jp/marketplace/apps/category/compute?page=1&subcategories=operating-systems
ほんと、なんですぐバレる嘘をつくんだろう?w >>92
Redhatをコピーして売ることはできません。 レッドハットはオープンソース企業なので、大規模にセント君売ったら、訴訟起こされるだけですよ。 レッドハット傘下で細々とやる分にはお目こぼしいただけるのです。
体験版みたいな感じですね。 >>94
> RedhatはしらんけどCentOSは売れるぞ
CentOSはコピーして売っても良いことを知ってるから
>>93はあえてRedhatだけしかかかなかったんだよ。
つまりCentOSは使ってもいいと
本当は知ってるわけw RedhatよりオープンなWindowsを推薦します! モバイルはGoogle Android/Linux。
デスクトップはMicrosoft WSL/Linux。 Windows/NTカーネル
Ubuntu/NTカーネル
Debian/NTカーネル IBM純正UNIXがあるように、Microsoft純正Linuxがあるのです! Microsoft純正LinuxならRedhatに訴えられません。 WSLはlinuxカーネルを乗っけてるんじゃなくて、linuxのシステムコールをWindowsカーネルで処理してるだけ。
だからhtopコマンドを打ってもシステム全体が見えるだろ?Windowsの開発チームは優秀だし、linuxのAPIは移植可能なぐらいきれいだったってことだ。
だけど、逆は無理だろうな、wineはwindowsがオープンソースじゃないからバイナリ依存してる。
でもJavaなんかのシステムコールはwindowsに直接投げるより、WSLに投げたほうが遥かに早いので、なんだか皮肉だけど。 Microsoft純正WSLな
Linuxじゃなくて、Windows Subsystem for Linux
LinuxのためのWindowsサブシステム
WSLを使うとLinux上で動くディストリ
例えばUbuntuなどが動いてしまう
Ubuntuから見ると、WindowsがまるでLinuxのように見えてしまう
それを実現しているのがWSL >>108
> だからhtopコマンドを打ってもシステム全体が見えるだろ?
そこはよくわからん。
タスクマネージャーからWSL上のプロセスは見えるが、
WSLの中からWSLの外のプロセスは見れないようになってる
でないと、複数のディストリを動かしたりできない >>111
システム全体ってのが悪かった、ハードのシステムが見渡せるでもいい。つまり、メモリが割当いくらとか、CPUのコアがいくつとか、そういうたぐいの仮想化じゃないってこと。 ■ このスレッドは過去ログ倉庫に格納されています