windowsでcurl導入しようとしたらつまづいた話

CouchDBに興味を持ったのでいじってみようかな、と思って、CouchDBの操作にcurl使ってる記事が多いので、curl導入しようかな、と思ったらつまづいたのでメモ。

PowerShellcurlを呼ぶとデフォルトではcurlでない似た何かが呼び出される

まず最初に ここ の一番下からcurlWindows x86-84版zipを入手して、環境変数を設定し、 curl -X GET と動かしたら、-Xってなんぞや?、ってみたいなのが英語で返ってきたので違和感。 curl --helpしてもそんなようなことを返されたので、これはおかしいぞ、ということで「curl windows」と調べた。 そうすると、

qiita.com

curlコマンドはPower ShellではInvoke-WebRequestが呼び出されるらしい(wgetもそうらしい)。 対処法を探しにこの記事にリンクがあった、下のサイトへ。

devadjust.exblog.jp

Power Shellのよくわからんやつ(Invoke-WebRequest)を使いたくないので、恒久的に関連付けを切ろうと対処その3をすすめた。 %HOMEPATH%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1を編集するらしいが存在しない。

Microsoft.PowerShell_profile.ps1を編集してみた

調べ進めると、

qiita.com

この記事を見つけた。記事に従って PS> $profile

Microsoft.PowerShell_profile.ps1の居場所をPSに聞き、

PS> new-item -path $profile -itemtype file -force

で強引にファイルを作った。

また、前の記事の戻って、Microsoft.PowerShell_profile.ps1に

del alias:curl

と記述して保存。 そしてPowerShellを再起動。しかし、

. : このシステムではスクリプトの実行が無効になっているため、ファイル %HOMEPATH%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 を読み込むことができません。詳細については、「about_Exec
ution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

と出た。

Shellの実行権限関連のエラー

またいろいろ調べてみると、

totech.hateblo.jp

なるほど。どうも、権限のエラーらしい。ということで、

PS> powershell -ExecutionPolicy RemoteSigned .\Microsoft.PowerShell_profile.ps1

を実行。しかし、

del : パス 'Alias:\curl' が存在しないため検出できません。
+ del alias:curl
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Alias:\curl:String) [Remove-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand

と出る。

結論 del alias:curlは古かった

この原因を2,30分くらい探していたら、

qiita.com

上の記事を発見。どうも、

del alias:curl

と書くのは古いらしく、最近ではsalで変更できるらしい。 ただ、salも永続的に設定を保存してくれるわけではなさそうで、 上の記事Microsoft.PowerShell_profile.ps1をcurl.exeのある場所に値を一部替えれば出来るはず…。 まだPowerShellでは成功するもののHyperでは権限関連でエラーが。再起動しても上手くいかない…

感想

M$さん、破壊的変更はやめてくれ… あと、PowerShellはcmdよりエラーが分かり難いイメージがすごいですね…今更ながら。curl軽く使うくらいなら普通にWSLインストールすればよかったなぁ、って今では結構後悔。 CouchDBの話はまた別の機会にでも。

WindowsでHyperをざっくりと導入してみた

Twitterでみなさんが使ってみているとのことだったので導入してみました。

Hyperとは

Electronで作られたターミナルらしいです。カスタマイズ性が高く、テーマがいろいろ開発されているらしいです。

Hyperの導入

公式サイトからインストーラを入手して起動するだけで、あとは自動でインストールしてくれました。

設定を変更する

HyperにPowerShellを認識させるようにする

デフォルトではPowerShellではなく、コマンドプロンプトを参照するので、コマンドプロンプトよりPowerShellの方が使い慣れている、私にとっては使いにくかったのですが、設定を変更すればPowerShellが使えるとのことで設定を変えることに。

しかし、設定ファイルに書いてある通りに設定を変更してもエラーを吐いたので調べると、How to use PowerShell with Hyper? · Issue #2645 · zeit/hyper · GitHubのように設定すればよいとのことで、試すと成功しました。

他にもWindows on Bashにも対応しているとか(WSLに対応しているかはわからないです)。

導入したテーマ

ミライアカリのテーマをTwitterで使っている人が多かったのでインストールしてみました。
hyper-akari - npm

感想

HyperがもともとMac向けのアプリケーションとして配布されていたせいもあってか、Windows向けの環境構築の記事が少なかったので少し大変でした。
最初、cdコマンドが認識しなかったので、????となっていましたが、コマンドプロンプトを参照していたので驚きました。


他のWindowsでHyperを導入される方に少しでもお役に立てれば幸いです。
ではまた。

初投稿なので自己紹介を

初投稿です。
私は高専の電気・電子系学科に通う学生です。 電気系学科の学生なのですが、プログラミング(主にPython)をやってます。 このブログで話すことはプログラミング、コンピュータ関連のお話が多くなるかと思います。
しかし、理系の学問のみならず、社会学や経済学などの社会科学、歴史学など人文科学といろいろなことに興味があります。
また、語彙力が皆無なため、読み難い記事ばかりになってしまうかと思いますが、暖かい目で読んでいただけるとありがたいです。
これからよろしくお願いします。