<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>技術 on M15tak3のBlog</title>
    <link>https://blog.m15tak3.com/ja/categories/%E6%8A%80%E8%A1%93/</link>
    <description>Recent content from M15tak3のBlog</description>
    <generator>Hugo</generator>
    <language>ja</language>
    
    <managingEditor>skyman.soul@gmail.com (M15tak3)</managingEditor>
    <webMaster>skyman.soul@gmail.com (M15tak3)</webMaster>
    
    <copyright>本ブログのすべての文書は、特に指定されていない限り、BY-NC-SAライセンスに従っています。引用の際は出典を明記してください！</copyright>
    
    <lastBuildDate>Wed, 06 May 2026 11:00:00 +0800</lastBuildDate>
    
    
    <atom:link href="https://blog.m15tak3.com/ja/categories/%E6%8A%80%E8%A1%93/index.xml" rel="self" type="application/rss&#43;xml" />
    

    
      
    

    <item>
      <title>LinuxでのPython管理（pyenvのインストールと使い方）</title>
      <link>https://blog.m15tak3.com/ja/post/pyenv/</link>
      <pubDate>Wed, 06 May 2026 11:00:00 &#43;0800</pubDate>
      <author>skyman.soul@gmail.com (M15tak3)</author>
      <guid>https://blog.m15tak3.com/ja/post/pyenv/</guid>
      <description>
        <![CDATA[<h1>LinuxでのPython管理（pyenvのインストールと使い方）</h1><p>著者: M15tak3(skyman.soul@gmail.com)</p>
        
          <h1 id="linuxでのpython管理pyenvのインストールと使い方">
<a class="header-anchor" href="#linux%e3%81%a7%e3%81%aepython%e7%ae%a1%e7%90%86pyenv%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%a8%e4%bd%bf%e3%81%84%e6%96%b9"></a>
LinuxでのPython管理（pyenvのインストールと使い方）
</h1><p>新しいLinux（例: Ubuntu 24.04）では、<code>pip</code> でシステム全体にパッケージを入れようとすると <code>externally-managed-environment</code> エラーが出ることがあります。つまり、<code>pip</code> によるグローバルインストールがそのままでは許可されません。</p>
<p>システムのPython環境を壊さず、Pythonバージョン管理もしやすくするために、<code>pyenv</code>（必要に応じて仮想環境）を使うのがおすすめです。</p>
<h2 id="ビルド依存関係のインストール">
<a class="header-anchor" href="#%e3%83%93%e3%83%ab%e3%83%89%e4%be%9d%e5%ad%98%e9%96%a2%e4%bf%82%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab"></a>
ビルド依存関係のインストール
</h2><p><strong>Ubuntu/Debian の場合:</strong></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo apt-get update<span class="p">;</span> sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
</span></span></code></pre></div><p><strong>CentOS 系の場合:</strong></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo yum install -y gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel findutils
</span></span></code></pre></div><h2 id="pyenv-のインストール">
<a class="header-anchor" href="#pyenv-%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab"></a>
pyenv のインストール
</h2><p>公式スクリプトでインストールします。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl https://pyenv.run <span class="p">|</span> bash
</span></span></code></pre></div><h2 id="シェル設定を追加して反映">
<a class="header-anchor" href="#%e3%82%b7%e3%82%a7%e3%83%ab%e8%a8%ad%e5%ae%9a%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%97%e3%81%a6%e5%8f%8d%e6%98%a0"></a>
シェル設定を追加して反映
</h2><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;export PYENV_ROOT=&#34;$HOME/.pyenv&#34;&#39;</span> &gt;&gt; ~/.bashrc
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;command -v pyenv &gt;/dev/null || export PATH=&#34;$PYENV_ROOT/bin:$PATH&#34;&#39;</span> &gt;&gt; ~/.bashrc
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;eval &#34;$(pyenv init -)&#34;&#39;</span> &gt;&gt; ~/.bashrc
</span></span><span class="line"><span class="cl"> 
</span></span><span class="line"><span class="cl"><span class="c1"># Zsh を使う場合は .bashrc を .zshrc に置き換えてください</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nb">source</span> ~/.bashrc
</span></span><span class="line"><span class="cl"><span class="c1"># Zsh を使う場合は .bashrc を .zshrc に置き換えてください</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 確認</span>
</span></span><span class="line"><span class="cl">pyenv --version
</span></span></code></pre></div><h2 id="pyenv-の基本操作">
<a class="header-anchor" href="#pyenv-%e3%81%ae%e5%9f%ba%e6%9c%ac%e6%93%8d%e4%bd%9c"></a>
pyenv の基本操作
</h2><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># pyenv install python-version 例: 3.13.3 をインストール</span>
</span></span><span class="line"><span class="cl">pyenv install 3.13.3
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># pyenv global python-version 例: グローバルを 3.13.3 に設定</span>
</span></span><span class="line"><span class="cl">pyenv global 3.13.3
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># pyenv local python-version 例: プロジェクトローカルを 3.13.3 に設定</span>
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> my-project/
</span></span><span class="line"><span class="cl">pyenv <span class="nb">local</span> 3.13.3
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># pyenv shell python-version 例: 現在のシェルだけ 3.13.3 に設定</span>
</span></span><span class="line"><span class="cl">pyenv shell python-version
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># pyenv virtualenv python-version myproject-env 例: 3.13.3 の ctf 仮想環境を作成</span>
</span></span><span class="line"><span class="cl">pyenv virtualenv 3.13.3 ctf
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># pyenv activate myproject-env 例: ctf 仮想環境を有効化</span>
</span></span><span class="line"><span class="cl">pyenv activate ctf
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># pyenv deactivate 仮想環境を終了</span>
</span></span><span class="line"><span class="cl">pyenv deactivate
</span></span></code></pre></div>
        
        <hr><p>この記事は2026-05-06に<a href='https://blog.m15tak3.com/'>M15tak3のBlog</a>で公開され、最終更新日は2026-05-06です</p><p>本ブログのすべての文書は、特に指定されていない限り、BY-NC-SAライセンスに従っています。引用の際は出典を明記してください！</p>]]>
      </description>
      
        <category>技術</category><category>CTF</category>
      
    </item>
    
      
    

    <item>
      <title>WSL2 &#43; Ubuntu をゼロから導入する</title>
      <link>https://blog.m15tak3.com/ja/post/wsl1/</link>
      <pubDate>Wed, 06 May 2026 09:00:00 &#43;0800</pubDate>
      <author>skyman.soul@gmail.com (M15tak3)</author>
      <guid>https://blog.m15tak3.com/ja/post/wsl1/</guid>
      <description>
        <![CDATA[<h1>WSL2 + Ubuntu をゼロから導入する</h1><p>著者: M15tak3(skyman.soul@gmail.com)</p>
        
          <h1 id="wsl2--ubuntu-をゼロから導入する">
<a class="header-anchor" href="#wsl2--ubuntu-%e3%82%92%e3%82%bc%e3%83%ad%e3%81%8b%e3%82%89%e5%b0%8e%e5%85%a5%e3%81%99%e3%82%8b"></a>
WSL2 + Ubuntu をゼロから導入する
</h1><h2 id="はじめに">
<a class="header-anchor" href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab"></a>
はじめに
</h2><p>WSL は、Windows 上で動く軽量な仮想環境として捉えられ、VMware よりローカルファイル連携がしやすいのが特徴です。</p>
<p><strong>注意</strong>: サブシステム導入後に Windows を Home から Pro へアップグレードすると、サブシステム側のファイルが破損する可能性があります。必ずバックアップを取ってください。</p>
<h2 id="wsl-のインストール">
<a class="header-anchor" href="#wsl-%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab"></a>
WSL のインストール
</h2><h3 id="機能の有効化">
<a class="header-anchor" href="#%e6%a9%9f%e8%83%bd%e3%81%ae%e6%9c%89%e5%8a%b9%e5%8c%96"></a>
機能の有効化
</h3><p><code>Windows の設定 -&gt; システム -&gt; オプション機能 -&gt; Windows のその他の機能</code> を開きます。</p>
<p><img src="/images/wsl/image-20260506091424950.png" alt="image-20260506091424950"></p>
<p><strong>Linux 用 Windows サブシステム</strong> と <strong>仮想マシン プラットフォーム</strong> を有効にして OK を押します。機能のインストール後、再起動を求められるので再起動します。</p>
<p><img src="/images/wsl/image-20260506091524142.png" alt="image-20260506091524142"></p>
<h2 id="wsl-ubuntu-のインストール">
<a class="header-anchor" href="#wsl-ubuntu-%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab"></a>
WSL Ubuntu のインストール
</h2><p>ターミナルを開いて次を実行します。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">wsl</span> <span class="p">-</span><span class="n">-install</span> <span class="n">-d</span> <span class="n">Ubuntu</span><span class="p">-</span><span class="mf">22.04</span>
</span></span></code></pre></div><p>この環境では Ubuntu 24.04 が自動取得されるので、進行バー完了まで待てばOKです。</p>
<p><img src="/images/wsl/image-20260506092344701.png" alt="image-20260506092344701"></p>
<p>インストール後はサブシステムが自動で起動し、ユーザー名設定を求められます。ディストリによって命名規則が少し異なるため、弾かれた場合は指示に合わせて修正してください。</p>
<p><img src="/images/wsl/image-20260506092455924.png" alt="image-20260506092455924"></p>
<h2 id="サブシステムを別ドライブへ移動する">
<a class="header-anchor" href="#%e3%82%b5%e3%83%96%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e5%88%a5%e3%83%89%e3%83%a9%e3%82%a4%e3%83%96%e3%81%b8%e7%a7%bb%e5%8b%95%e3%81%99%e3%82%8b"></a>
サブシステムを別ドライブへ移動する
</h2><p>WSL で取得した Linux は通常 C ドライブに入ります。移動したい場合は、まず Linux シェルで <code>exit</code> を実行します。</p>
<p>次に、WSL を停止して導入済み Ubuntu 22.04 をエクスポート（バックアップ）します。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">wsl</span> <span class="p">-</span><span class="n">-shutdown</span>
</span></span><span class="line"><span class="cl"><span class="n">wsl</span> <span class="p">-</span><span class="n">-export</span> <span class="n">Ubuntu</span><span class="p">-</span><span class="mf">22.04</span> <span class="n">E:</span><span class="p">\</span><span class="n">WSL</span><span class="p">\</span><span class="n">ubuntu2204</span><span class="p">.</span><span class="py">tar</span>
</span></span></code></pre></div><p><img src="/images/wsl/image-20260506093742003.png" alt="image-20260506093742003"></p>
<p>保存先は任意ですが、ファイル名は <code>.tar</code> で終わる必要があります。</p>
<p>続いて現在のサブシステムを登録解除し、先ほどの tar を指定して希望パスへインポートします。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">wsl</span> <span class="p">-</span><span class="n">-unregister</span> <span class="n">Ubuntu</span><span class="p">-</span><span class="mf">22.04</span>
</span></span><span class="line"><span class="cl"><span class="n">wsl</span> <span class="p">-</span><span class="n">-import</span> <span class="n">Ubuntu</span><span class="p">-</span><span class="mf">22.04</span> <span class="n">E:</span><span class="p">\</span><span class="n">WSL</span><span class="p">\</span><span class="n">Ubuntu2204</span> <span class="n">E:</span><span class="p">\</span><span class="n">WSL</span><span class="p">\</span><span class="n">ubuntu2204</span><span class="p">.</span><span class="py">tar</span>
</span></span><span class="line"><span class="cl"><span class="n">wsl</span> <span class="n">-d</span> <span class="n">Ubuntu</span><span class="p">-</span><span class="mf">22.04</span>
</span></span></code></pre></div><p><img src="/images/wsl/image-20260506093901064.png" alt="image-20260506093901064"></p>
<p>これでサブシステムの保存先が変更され、既存ファイルもそのまま保持されます。</p>

        
        <hr><p>この記事は2026-05-06に<a href='https://blog.m15tak3.com/'>M15tak3のBlog</a>で公開され、最終更新日は2026-05-06です</p><p>本ブログのすべての文書は、特に指定されていない限り、BY-NC-SAライセンスに従っています。引用の際は出典を明記してください！</p>]]>
      </description>
      
        <category>技術</category><category>CTF</category>
      
    </item>
    
  </channel>
</rss>
