0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

 PowerShellのアップグレードから、WinGetでアプリをインストールしてg++コマンドを実行するまで。ついでに、その他諸々のアプリのインストールや設定など。

PowerShell

最新版にしよう

 とりあえず最新にしておきたいよね。PowerShellを起動する度に、下記のメッセージが表示されるのも煩わしいし。

新機能と改善のために最新の PowerShell をインストールしてください!

  という訳で最新版をインストールする。まずは、現在のPowerShellのバージョンを確認しよう。そのために使用するのは$PSVesionTable変数だ。これは変数であって、PowersShellのコマンドではない。

 ちなみに、PowerShellのコマンドはコマンドレット(cmdlets)という。基本的に変数やコマンドレットの大文字、小文字はあまり区別されないようだ。先程の$PSVesionTable変数も$psversiontable$PSVERSIONTABLEと書いても問題ない。

$PSVersionTable
PS C:\Users\dorayaki> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.5369
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.5369
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

 最初に入っていたのはWindows PowerShell 5.1だったようだ。現在はPowerShell 7なので、最新版にアップグレードしよう。

最新版を検索

 WinGetを使ってPowerShellの最新版を検索してみる。winget search 調べたいもので、名前やID、タグなどで引っ掛かるものが検索できる。

PowerShellの最新版を検索
PS C:\Users\dorayaki> winget search Microsoft.PowerShell
名前               ID                           バージョン ソース
------------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.4.6.0    winget
PowerShell Preview Microsoft.PowerShell.Preview 7.6.0.2    winget

 普通のPowwerShellでも、Preview版でも好きなのを選べばいいので、とりあえず普通の安定してそうな方をインストールする。ちなみにPowerShellでWinGetを実行した場合、下図のように文字化けすることがある。

PowerShell文字化け.png

 デフォルトでは通常時のフォントは「MS ゴシック」なのたが、何故かWinGet実行中のフォントは違うフォントになることが原因のようだ。私の環境では「Lucida Console」だったかな。とりあえず、これを「MS ゴシック」に直せば下図の通り文字化けは直る。

PowerShell文字化け_対処後.png

 これに関しては下記サイトが詳しかったです。

インストール

 インストールしたいものが決まったのでwinget installでインストールしよう。

PS C:\Users\dorayaki> winget install --id Microsoft.PowerShell --source winget
見つかりました PowerShell [Microsoft.PowerShell] バージョン 7.4.6.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

 こうして、無事にPowerShell 7がインストールされた。

最近追加されたもの.png

image.png

 なお、スタートメニューでPowerShellと調べると下図のように表示される。これから分かるように、新しくインストールしたPowerShell 7と、従来標準搭載されていたPowerShell(下図でのWindows PowerShell)は別物である。

image.png

 Windows PowerShellとかPowerShell Core 6だとか、PowerShell 7だとかの話は下記の記事だったり、PowerShellの英語版Wikipediaがまとまってて良さそう。

アップデート/アンインストール

winget upgrade パッケージ名
winget uninstall パッケージ名

 upgradeが必要なものを表示するには、単にwinget upgradeと実行する。必要なものすべてをインストールする場合はwinget upgrade --allを実行する。

PowerShellのwhere

 コマンドプロンプトだと、ソフトがどこにインストールされているのかwhereで調べていた。PowerShellではGet-Commandらしい。実行結果でVersionが表示されるが、これはwingetで表示されるVersionが表示されるわけでもないらしい。

PS C:\Users\dorayaki> Get-Command nvim

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     nvim.exe                                           0.0.0.0    C:\Program Files\Neovim\bin\nvim.exe

-e、--exactオプション

 ネットでWinGetによるインストールなどを調べていると、よく-eオプションを指定したコマンドを目にした。これは、指定した文字列と完全に一致するものを検索するオプションのようだ。

一致するものがあった場合
PS C:\Users\dorayaki> winget search Microsoft.PowerShell -e
名前       ID                   バージョン ソース
--------------------------------------------------
PowerShell Microsoft.PowerShell 7.4.6.0    winget
一致するものがない場合
PS C:\Users\dorayaki> winget search Microsoft.Powershell -e
入力条件に一致するパッケージが見つかりませんでした。

 こうして自分なりに調べたものをまとめてみたものの、公式を見るのが最も信頼できて、まとまっている気がするよね。

その他ソフトのインストール

WinLibs

 Make、GCC、MinGW-w64、LLVMなど色々と入ってるみたいでよさそう。インストールには1時間くらい掛かった。

winget install BrechtSanders.WinLibs.POSIX.UCRT.LLVM
PS C:\Users\dorayaki> winget install BrechtSanders.WinLibs.POSIX.UCRT.LLVM
見つかりました WinLibs (POSIX threads, UCRT runtime, LLVM included) [BrechtSanders.WinLibs.POSIX.UCRT.LLVM] バージョン 14.2.0-19.1.1-12.0.0-r2
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/brechtsanders/winlibs_mingw/releases/download/14.2.0posix-19.1.1-12.0.0-ucrt-r2/winlibs-x86_64-posix-seh-gcc-14.2.0-llvm-19.1.1-mingw-w64ucrt-12.0.0-r2.zip
  ██████████████████████████████   360 MB /  360 MB
インストーラーハッシュが正常に検証されました
アーカイブを展開しています...
アーカイブが正常に展開されました
パッケージのインストールを開始しています...
パス環境変数が変更されました; 新しい値を使用するにはシェルを再起動してください。
コマンド ライン エイリアスが追加されました: "addr2line"
コマンド ライン エイリアスが追加されました: "amdgpu-arch"
コマンド ライン エイリアスが追加されました: "ar"
コマンド ライン エイリアスが追加されました: "as"
コマンド ライン エイリアスが追加されました: "bugpoint"
コマンド ライン エイリアスが追加されました: "c++"
コマンド ライン エイリアスが追加されました: "c++filt"
コマンド ライン エイリアスが追加されました: "ccache"
コマンド ライン エイリアスが追加されました: "clang"
コマンド ライン エイリアスが追加されました: "clang++"
コマンド ライン エイリアスが追加されました: "clang-apply-replacements"
コマンド ライン エイリアスが追加されました: "clang-change-namespace"
コマンド ライン エイリアスが追加されました: "clang-check"
コマンド ライン エイリアスが追加されました: "clang-cl"
コマンド ライン エイリアスが追加されました: "clang-cpp"
コマンド ライン エイリアスが追加されました: "clangd"
コマンド ライン エイリアスが追加されました: "clang-doc"
コマンド ライン エイリアスが追加されました: "clang-extdef-mapping"
コマンド ライン エイリアスが追加されました: "clang-format"
コマンド ライン エイリアスが追加されました: "clang-include-cleaner"
コマンド ライン エイリアスが追加されました: "clang-include-fixer"
コマンド ライン エイリアスが追加されました: "clang-installapi"
コマンド ライン エイリアスが追加されました: "clang-linker-wrapper"
コマンド ライン エイリアスが追加されました: "clang-move"
コマンド ライン エイリアスが追加されました: "clang-nvlink-wrapper"
コマンド ライン エイリアスが追加されました: "clang-offload-bundler"
コマンド ライン エイリアスが追加されました: "clang-offload-packager"
コマンド ライン エイリアスが追加されました: "clang-pseudo"
コマンド ライン エイリアスが追加されました: "clang-query"
コマンド ライン エイリアスが追加されました: "clang-refactor"
コマンド ライン エイリアスが追加されました: "clang-rename"
コマンド ライン エイリアスが追加されました: "clang-reorder-fields"
コマンド ライン エイリアスが追加されました: "clang-repl"
コマンド ライン エイリアスが追加されました: "clang-scan-deps"
コマンド ライン エイリアスが追加されました: "clang-tblgen"
コマンド ライン エイリアスが追加されました: "clang-tidy"
コマンド ライン エイリアスが追加されました: "cmake"
コマンド ライン エイリアスが追加されました: "cmcldeps"
コマンド ライン エイリアスが追加されました: "count"
コマンド ライン エイリアスが追加されました: "cpack"
コマンド ライン エイリアスが追加されました: "cpp"
コマンド ライン エイリアスが追加されました: "cppcheck"
コマンド ライン エイリアスが追加されました: "ctags"
コマンド ライン エイリアスが追加されました: "ctest"
コマンド ライン エイリアスが追加されました: "diagtool"
コマンド ライン エイリアスが追加されました: "dlltool"
コマンド ライン エイリアスが追加されました: "dllwrap"
コマンド ライン エイリアスが追加されました: "dos2unix"
コマンド ライン エイリアスが追加されました: "doxygen"
コマンド ライン エイリアスが追加されました: "dsymutil"
コマンド ライン エイリアスが追加されました: "elfedit"
コマンド ライン エイリアスが追加されました: "FileCheck"
コマンド ライン エイリアスが追加されました: "find-all-symbols"
コマンド ライン エイリアスが追加されました: "g++"
コマンド ライン エイリアスが追加されました: "gcc"
コマンド ライン エイリアスが追加されました: "gcc-ar"
コマンド ライン エイリアスが追加されました: "gcc-nm"
コマンド ライン エイリアスが追加されました: "gcc-ranlib"
コマンド ライン エイリアスが追加されました: "gcov"
コマンド ライン エイリアスが追加されました: "gcov-dump"
コマンド ライン エイリアスが追加されました: "gcov-tool"
コマンド ライン エイリアスが追加されました: "gdb"
コマンド ライン エイリアスが追加されました: "gdbserver"
コマンド ライン エイリアスが追加されました: "gendef"
コマンド ライン エイリアスが追加されました: "genidl"
コマンド ライン エイリアスが追加されました: "gfortran"
コマンド ライン エイリアスが追加されました: "gprof"
コマンド ライン エイリアスが追加されました: "iconv"
コマンド ライン エイリアスが追加されました: "jwasm"
コマンド ライン エイリアスが追加されました: "ld.bfd"
コマンド ライン エイリアスが追加されました: "ld"
コマンド ライン エイリアスが追加されました: "ld.lld"
コマンド ライン エイリアスが追加されました: "ld64.lld"
コマンド ライン エイリアスが追加されました: "llc"
コマンド ライン エイリアスが追加されました: "lld"
コマンド ライン エイリアスが追加されました: "lldb"
コマンド ライン エイリアスが追加されました: "lldb-argdumper"
コマンド ライン エイリアスが追加されました: "lldb-dap"
コマンド ライン エイリアスが追加されました: "lldb-mi"
コマンド ライン エイリアスが追加されました: "lldb-server"
コマンド ライン エイリアスが追加されました: "lld-link"
コマンド ライン エイリアスが追加されました: "lli"
コマンド ライン エイリアスが追加されました: "lli-child-target"
コマンド ライン エイリアスが追加されました: "llvm-addr2line"
コマンド ライン エイリアスが追加されました: "llvm-ar"
コマンド ライン エイリアスが追加されました: "llvm-as"
コマンド ライン エイリアスが追加されました: "llvm-bcanalyzer"
コマンド ライン エイリアスが追加されました: "llvm-bitcode-strip"
コマンド ライン エイリアスが追加されました: "llvm-cat"
コマンド ライン エイリアスが追加されました: "llvm-cfi-verify"
コマンド ライン エイリアスが追加されました: "llvm-config"
コマンド ライン エイリアスが追加されました: "llvm-cov"
コマンド ライン エイリアスが追加されました: "llvm-cvtres"
コマンド ライン エイリアスが追加されました: "llvm-cxxdump"
コマンド ライン エイリアスが追加されました: "llvm-cxxfilt"
コマンド ライン エイリアスが追加されました: "llvm-cxxmap"
コマンド ライン エイリアスが追加されました: "llvm-debuginfo-analyzer"
コマンド ライン エイリアスが追加されました: "llvm-debuginfod"
コマンド ライン エイリアスが追加されました: "llvm-debuginfod-find"
コマンド ライン エイリアスが追加されました: "llvm-diff"
コマンド ライン エイリアスが追加されました: "llvm-dis"
コマンド ライン エイリアスが追加されました: "llvm-dlltool"
コマンド ライン エイリアスが追加されました: "llvm-dwarfdump"
コマンド ライン エイリアスが追加されました: "llvm-dwarfutil"
コマンド ライン エイリアスが追加されました: "llvm-dwp"
コマンド ライン エイリアスが追加されました: "llvm-exegesis"
コマンド ライン エイリアスが追加されました: "llvm-extract"
コマンド ライン エイリアスが追加されました: "llvm-gsymutil"
コマンド ライン エイリアスが追加されました: "llvm-ifs"
コマンド ライン エイリアスが追加されました: "llvm-install-name-tool"
コマンド ライン エイリアスが追加されました: "llvm-jitlink"
コマンド ライン エイリアスが追加されました: "llvm-jitlink-executor"
コマンド ライン エイリアスが追加されました: "llvm-lib"
コマンド ライン エイリアスが追加されました: "llvm-libtool-darwin"
コマンド ライン エイリアスが追加されました: "llvm-link"
コマンド ライン エイリアスが追加されました: "llvm-lipo"
コマンド ライン エイリアスが追加されました: "llvm-lto"
コマンド ライン エイリアスが追加されました: "llvm-lto2"
コマンド ライン エイリアスが追加されました: "llvm-mc"
コマンド ライン エイリアスが追加されました: "llvm-mca"
コマンド ライン エイリアスが追加されました: "llvm-ml"
コマンド ライン エイリアスが追加されました: "llvm-modextract"
コマンド ライン エイリアスが追加されました: "llvm-mt"
コマンド ライン エイリアスが追加されました: "llvm-nm"
コマンド ライン エイリアスが追加されました: "llvm-objcopy"
コマンド ライン エイリアスが追加されました: "llvm-objdump"
コマンド ライン エイリアスが追加されました: "llvm-opt-report"
コマンド ライン エイリアスが追加されました: "llvm-otool"
コマンド ライン エイリアスが追加されました: "llvm-pdbutil"
コマンド ライン エイリアスが追加されました: "llvm-PerfectShuffle"
コマンド ライン エイリアスが追加されました: "llvm-profdata"
コマンド ライン エイリアスが追加されました: "llvm-profgen"
コマンド ライン エイリアスが追加されました: "llvm-ranlib"
コマンド ライン エイリアスが追加されました: "llvm-rc"
コマンド ライン エイリアスが追加されました: "llvm-readelf"
コマンド ライン エイリアスが追加されました: "llvm-readobj"
コマンド ライン エイリアスが追加されました: "llvm-readtapi"
コマンド ライン エイリアスが追加されました: "llvm-reduce"
コマンド ライン エイリアスが追加されました: "llvm-remarkutil"
コマンド ライン エイリアスが追加されました: "llvm-rtdyld"
コマンド ライン エイリアスが追加されました: "llvm-sim"
コマンド ライン エイリアスが追加されました: "llvm-size"
コマンド ライン エイリアスが追加されました: "llvm-split"
コマンド ライン エイリアスが追加されました: "llvm-stress"
コマンド ライン エイリアスが追加されました: "llvm-strings"
コマンド ライン エイリアスが追加されました: "llvm-strip"
コマンド ライン エイリアスが追加されました: "llvm-symbolizer"
コマンド ライン エイリアスが追加されました: "llvm-tblgen"
コマンド ライン エイリアスが追加されました: "llvm-tli-checker"
コマンド ライン エイリアスが追加されました: "llvm-undname"
コマンド ライン エイリアスが追加されました: "llvm-windres"
コマンド ライン エイリアスが追加されました: "llvm-xray"
コマンド ライン エイリアスが追加されました: "lto-dump"
コマンド ライン エイリアスが追加されました: "mac2unix"
コマンド ライン エイリアスが追加されました: "mingw32-make"
コマンド ライン エイリアスが追加されました: "modularize"
コマンド ライン エイリアスが追加されました: "nasm"
コマンド ライン エイリアスが追加されました: "ndisasm"
コマンド ライン エイリアスが追加されました: "ninja"
コマンド ライン エイリアスが追加されました: "nm"
コマンド ライン エイリアスが追加されました: "not"
コマンド ライン エイリアスが追加されました: "nvptx-arch"
コマンド ライン エイリアスが追加されました: "obj2yaml"
コマンド ライン エイリアスが追加されました: "objcopy"
コマンド ライン エイリアスが追加されました: "objdump"
コマンド ライン エイリアスが追加されました: "opt"
コマンド ライン エイリアスが追加されました: "optscript"
コマンド ライン エイリアスが追加されました: "pexports"
コマンド ライン エイリアスが追加されました: "pp-trace"
コマンド ライン エイリアスが追加されました: "ranlib"
コマンド ライン エイリアスが追加されました: "readelf"
コマンド ライン エイリアスが追加されました: "readtags"
コマンド ライン エイリアスが追加されました: "reduce-chunk-list"
コマンド ライン エイリアスが追加されました: "sancov"
コマンド ライン エイリアスが追加されました: "sanstats"
コマンド ライン エイリアスが追加されました: "size"
コマンド ライン エイリアスが追加されました: "split-file"
コマンド ライン エイリアスが追加されました: "strings"
コマンド ライン エイリアスが追加されました: "strip"
コマンド ライン エイリアスが追加されました: "UnicodeNameMappingGenerator"
コマンド ライン エイリアスが追加されました: "unix2dos"
コマンド ライン エイリアスが追加されました: "unix2mac"
コマンド ライン エイリアスが追加されました: "verify-uselistorder"
コマンド ライン エイリアスが追加されました: "vsyasm"
コマンド ライン エイリアスが追加されました: "wasm-ld"
コマンド ライン エイリアスが追加されました: "widl"
コマンド ライン エイリアスが追加されました: "windmc"
コマンド ライン エイリアスが追加されました: "windres"
コマンド ライン エイリアスが追加されました: "x86_64-w64-mingw32-c++"
コマンド ライン エイリアスが追加されました: "x86_64-w64-mingw32-g++"
コマンド ライン エイリアスが追加されました: "x86_64-w64-mingw32-gcc"
コマンド ライン エイリアスが追加されました: "x86_64-w64-mingw32-gcc-14.2.0"
コマンド ライン エイリアスが追加されました: "x86_64-w64-mingw32-gcc-ar"
コマンド ライン エイリアスが追加されました: "x86_64-w64-mingw32-gcc-nm"
コマンド ライン エイリアスが追加されました: "x86_64-w64-mingw32-gcc-ranlib"
コマンド ライン エイリアスが追加されました: "x86_64-w64-mingw32-gfortran"
コマンド ライン エイリアスが追加されました: "yaml2obj"
コマンド ライン エイリアスが追加されました: "yaml-bench"
コマンド ライン エイリアスが追加されました: "yasm"
コマンド ライン エイリアスが追加されました: "ytasm"
インストールが完了しました

 これでg++コマンドなどが使えるようになる。
 もしMake単体が欲しければ、ezwinports:make、GnuWin32:Makeあたりだろうか。ezwinportsの方が最新のVersionではあった。

FireFox

 winget search firefoxと実行するとESRとかDeveloper Editionとか色々と引っ掛かるけれど、普通に使用するならIDがMozilla.Firefoxのものでよさそう。

 ブラウザに関して個人的には何となくChromeやEdgeではなくFireFox推しです。FalkonやMinといったニッチなブラウザも使用してみたかったのだけど、Androidでは使えなかったので断念。

PS C:\Users\dorayaki> winget search Mozilla.Firefox -e
名前            ID              バージョン ソース
--------------------------------------------------
Mozilla Firefox Mozilla.Firefox 134.0.1    winget
PS C:\Users\dorayaki> winget install Mozilla.Firefox -e

Windows Terminal

 WindowsのCUIはWindows Terminalの時代みたいですね。下図の通り公式で書かれているようにインストール。

image.png

PS C:\Users\dorayaki>winget install --id Microsoft.WindowsTerminal -e

 Windowsターミナルを起動した際に実行されるのがWindows PowerShellになっていたら、PowerShellに変えておこう。

 「Windows Terminalって何やねん、コマンドプロンプトとかPowerShellと何が違うんや」と思って探して読んだのが下記の記事。いまいちシェルとターミナルの違いとか分かっていなかったので助かった。

Neovim

 エディタは特に拘りが無ければVisual Studio Codeで良いとは思っている。でもVimってカッコいいよね、という心の声に負けて最近Vimの勉強中。ワタシヴィムゼンゼンワカラナイ

PS C:\Users\dorayaki>winget install Neovim.Neovim

Git

 ソフトウェア開発をするならGitは必要じゃろう。

PS C:\Users\dorayaki>winget install --id Git.Git -e --source winget

Mery

 最近、ただのテキストやMarkdownを書く時に使っている。その内、小説でも書こうかな。

PS C:\Users\dorayaki>winget install --id Kuro.Mery.Beta
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?