<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel><title>Akirava's Blog</title><link>https://blog.marusiru.com/</link><description>Akirava's Blog</description><language>zh-CN</language><atom:link href="https://blog.marusiru.com/rss.xml" rel="self" type="application/rss+xml" /><lastBuildDate>Tue, 01 Sep 2026 00:00:00 +0000</lastBuildDate><item><title>在 Debian 12 中安装 Miniconda3 并配置 Python 虚拟环境</title><link>https://blog.marusiru.com/p/20260901-01/</link><guid isPermaLink="true">https://blog.marusiru.com/p/20260901-01/</guid><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><description><![CDATA[在 Debian 12 安装 Miniconda3、创建 Python 虚拟环境，并在 Jupyter Notebook 中启用该环境。]]></description><content:encoded><![CDATA[<h2 id="1-miniconda3">1 安装 Miniconda3</h2>
<pre><code class="language-Bash">$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ bash Miniconda3-latest-Linux-x86_64.sh
</code></pre>
<p>在选择是否需要修改 <code>.bashrc</code> 文件时，建议选择 <code>Yes</code>，这样可以在打开终端时自动激活 conda。</p>
<h2 id="2">2 创建和激活虚拟环境</h2>
<pre><code class="language-Bash">$ conda create --name &lt;your_env_name&gt; python=x.x.x
$ conda activate &lt;your_env_name&gt;
</code></pre>
<h2 id="3-jupyter-notebook">3 在 Jupyter Notebook 中启用虚拟环境</h2>
<pre><code class="language-Bash">$ conda install ipykernel
$ python -m ipykernel install --user --name &lt;your_env_name&gt; --display-name &lt;your_env_display_name&gt;
</code></pre>
<p>然后就可以在 Notebook 中选择你的环境了。</p>
<h2 id="4">4 导出环境配置、使用配置文件创建环境</h2>
<p>在环境中执行以下命令，将配置导出到 <code>env.yml</code> 文件</p>
<pre><code class="language-Bash">$ conda env export &gt; env.yml
</code></pre>
<p>使用 env.yml 创建环境</p>
<pre><code class="language-Bash">$ conda env create -f env.yml
</code></pre>]]></content:encoded><category>技术</category><category>Debian</category><category>Miniconda</category><category>Python</category><category>Jupyter</category></item><item><title>在 Debian 12 中使用 Docker 与 Docker Compose</title><link>https://blog.marusiru.com/p/20260901-02/</link><guid isPermaLink="true">https://blog.marusiru.com/p/20260901-02/</guid><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><description><![CDATA[在 Debian 12 安装 Docker Engine、使用 Docker Compose、配置 IPv6 网络及管理容器和镜像。]]></description><content:encoded><![CDATA[<h2 id="1-docker">1 安装 Docker</h2>
<pre><code class="language-Bash">$ wget -qO- get.docker.com | bash
$ systemctl enable docker
</code></pre>
<h2 id="2-docker-compose-1">2 安装 Docker Compose（在步骤 1 中应该已经装好了，可以跳过）</h2>
<pre><code class="language-Bash">$ curl -L &quot;https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)&quot; -o /usr/local/bin/docker-compose
</code></pre>
<h2 id="3-ipv6">3 开启 IPv6</h2>
<p>编辑 <code>/etc/docker/daemon.json</code> 文件，加入下面的内容</p>
<pre><code class="language-Json">{
  &quot;ipv6&quot;: true,
  &quot;fixed-cidr-v6&quot;: &quot;2001:db8:1::/64&quot;,
  &quot;experimental&quot;: true,
  &quot;ip6tables&quot;: true
}
</code></pre>
<p>可以省略 <code>fixed-cidr-v6</code> 字段</p>
<pre><code class="language-Json">{
  &quot;ipv6&quot;: true,
  &quot;experimental&quot;: true,
  &quot;ip6tables&quot;: true
}
</code></pre>
<p>重启 Docker 服务，并创建 IPv6 网络（同时也支持 IPv4）</p>
<pre><code class="language-Bash">$ systemctl restart docker
</code></pre>
<p>可以将 <code>share-net</code> 改成其他名称</p>
<pre><code class="language-Bash">$ docker network create --ipv6 share-net
</code></pre>
<h2 id="4-docker-composeyml">4 在 <code>docker-compose.yml</code> 中使用共享网络的方法</h2>
<pre><code class="language-Yaml">services:
  service-name:
    image: 'xxxx'
    ports:
      - 'xxxx:xxxx'
    networks:
      - &lt;my-shared-network&gt;

networks:
  &lt;my-shared-network&gt;:
    external: true
</code></pre>
<p>使用同一个网络的服务可以通过 service-name 相互访问。</p>
<h2 id="5">5 启动、停止和更新容器</h2>
<p>创建</p>
<pre><code class="language-Bash">$ docker-compose up -d
</code></pre>
<p>重启服务</p>
<pre><code class="language-Bash">$ docker-compose restart
</code></pre>
<p>关闭服务</p>
<pre><code class="language-Bash">$ docker-compose down
</code></pre>
<p>更新镜像</p>
<pre><code class="language-Bash">$ docker-compose pull
$ docker-compose up -d --remove-orphans
</code></pre>
<p>删除旧的镜像</p>
<pre><code class="language-Bash">$ docker image prune
</code></pre>
<h2 id="6-docker">6 删除某个 Docker 服务</h2>
<p>停止容器</p>
<pre><code class="language-Bash">$ docker-compose down
</code></pre>
<p>查看容器的ID和运行状态</p>
<pre><code class="language-Bash">$ docker ps -a
</code></pre>
<p>删除容器</p>
<pre><code class="language-Bash">$ docker rm &lt;container_id&gt;
</code></pre>
<p>查看镜像的ID</p>
<pre><code class="language-Bash">$ docker images
</code></pre>
<p>删除镜像</p>
<pre><code class="language-Bash">$ docker rmi &lt;image_id&gt;
</code></pre>
<h2 id="7">7 在容器内执行命令</h2>
<h3 id="docker-run">使用 <code>docker run</code> 执行命令</h3>
<p>基本语法</p>
<pre><code class="language-Bash">$ docker run [OPTIONS] IMAGE_NAME COMMAND [ARG...]
</code></pre>
<p>执行一次性命令，执行完毕后容器删除</p>
<pre><code class="language-Bash">$ docker run --rm ubuntu echo &quot;Hello from Ubuntu&quot;
</code></pre>
<p>进入交互式 shell</p>
<pre><code class="language-Bash">$ docker run -it ubuntu /bin/bash
</code></pre>
<h3 id="docker-exec">使用 <code>docker exec</code> 在正在运行的容器中执行命令</h3>
<p>进入正在运行的容器的交互式 shell</p>
<pre><code class="language-Bash">$ docker exec -it &lt;容器ID或名称&gt; /bin/bash
</code></pre>
<p>使用 docker exec 在现有容器中执行命令而非进入 shell</p>
<pre><code class="language-Bash">$ docker exec &lt;容器ID或名称&gt; &lt;命令&gt;
</code></pre>
<h2 id="8-docker">8 更改 docker 数据目录</h2>
<p>默认情况下数据目录是 <code>/var/lib/docker</code>，修改或新建 <code>/etc/docker/daemon.json</code></p>
<pre><code class="language-Json">{
  &quot;data-root&quot;: &quot;/your/path&quot;
}
</code></pre>
<p>然后重启 docker 服务。</p>
<h2 id="9">9 导出/加载本地镜像文件</h2>
<pre><code class="language-Bash">$ docker save -o myimage.tar &lt;镜像名称&gt;:&lt;标签&gt;
$ docker load -i myimage.tar
</code></pre>]]></content:encoded><category>技术</category><category>Debian</category><category>Docker</category><category>Docker Compose</category><category>IPv6</category></item><item><title>Debian 13 中启用、关闭与配置 Swap</title><link>https://blog.marusiru.com/p/20260901-03/</link><guid isPermaLink="true">https://blog.marusiru.com/p/20260901-03/</guid><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><description><![CDATA[在 Debian 13 中检查 Swap 状态、创建并持久化 Swap 文件、关闭删除 Swap，以及配置 swappiness。]]></description><content:encoded><![CDATA[<h2 id="1-swap">1 检查当前 SWAP 状态</h2>
<pre><code class="language-Bash">$ free -h
$ swapon --show
</code></pre>
<h2 id="2-swap-2-gib">2 创建 SWAP 文件，2 GiB</h2>
<pre><code class="language-Bash">$ dd if=/dev/zero of=/swapfile bs=1M count=2048
</code></pre>
<h2 id="3">3 设置权限</h2>
<pre><code class="language-Bash">$ chmod 600 /swapfile
</code></pre>
<h2 id="4-swap">4 格式化为 SWAP，并启用</h2>
<pre><code class="language-Bash">$ mkswap /swapfile
$ swapon /swapfile
</code></pre>
<h2 id="5">5 永久化配置</h2>
<p>修改文件 <code>/etc/fstab</code>，添加下面的内容</p>
<pre><code>/swapfile none swap sw 0 0
</code></pre>
<h2 id="6-swap-swap">6 关闭 SWAP 删除 SWAP 文件</h2>
<pre><code class="language-Bash">$ swapoff /swapfile
$ rm /swapfile
</code></pre>
<p>删除文件 <code>/etc/fstab</code> 中的有关内容。</p>
<h2 id="7-swappiness">7 swappiness 设置</h2>
<p>查看</p>
<pre><code class="language-Bash">$ sysctl vm.swappiness
</code></pre>
<p>临时设置</p>
<pre><code class="language-Bash">$ sysctl vm.swappiness=60
</code></pre>
<p>永久设置：在 <code>/etc/sysctl.conf</code> 中加一行 <code>vm.swappiness=60</code>，然后应用配置</p>
<pre><code class="language-Bash">$ sysctl -p
</code></pre>]]></content:encoded><category>技术</category><category>Debian</category><category>Linux</category><category>Swap</category><category>系统管理</category></item><item><title>Debian 12 中 systemctl 与 systemd 服务的使用</title><link>https://blog.marusiru.com/p/20260901-04/</link><guid isPermaLink="true">https://blog.marusiru.com/p/20260901-04/</guid><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><description><![CDATA[在 Debian 12 创建、启动、设置开机自启、卸载 systemd 服务，并使用 journalctl 查看服务日志。]]></description><content:encoded><![CDATA[<h2 id="1-systemctl">1 注册 <code>systemctl</code> 服务</h2>
<p>编辑 <code>.service</code> 文件</p>
<pre><code class="language-Bash">$ nano /etc/systemd/system/myapp.service
</code></pre>
<p>文件内容示例</p>
<pre><code class="language-Toml">[Unit]
Description=My Custom Application
After=network.target

[Service]
ExecStart=/usr/bin/python3 /opt/myapp/app.py
Restart=always
User=nobody
Group=nogroup

[Install]
WantedBy=multi-user.target
</code></pre>
<p>重新加载 <code>systemd</code> 配置</p>
<pre><code class="language-Bash">$ systemctl daemon-reload
</code></pre>
<p>启动服务</p>
<pre><code class="language-Bash">$ systemctl start myapp
</code></pre>
<p>开机自启</p>
<pre><code class="language-Bash">$ systemctl enable myapp
</code></pre>
<h2 id="2-systemctl">2 完全卸载一个 <code>systemctl</code> 服务</h2>
<p>停止服务</p>
<pre><code class="language-Bash">$ systemctl stop myapp
</code></pre>
<p>禁用开机自启</p>
<pre><code class="language-Bash">$ systemctl disable myapp
</code></pre>
<p>删除服务文件</p>
<pre><code class="language-Bash">$ rm /etc/systemd/system/myapp.service
</code></pre>
<p>重载 <code>systemd</code> 配置</p>
<pre><code class="language-Bash">$ systemctl daemon-reload
</code></pre>
<p>（可选）清理残留信息</p>
<pre><code class="language-Bash">$ systemctl reset-failed myapp
</code></pre>
<h2 id="3-journalctl">3 查看服务日志（<code>journalctl</code>）</h2>
<p>查看服务日志</p>
<pre><code class="language-Bash">$ journalctl -u nginx
</code></pre>
<p>实时跟踪日志</p>
<pre><code class="language-Bash">$ journalctl -f -u nginx
</code></pre>
<p>最近 50 行日志</p>
<pre><code class="language-Bash">$ journalctl -u nginx -n 50
</code></pre>
<p>当前启动日志</p>
<pre><code class="language-Bash">$ journalctl -u nginx -b
</code></pre>
<p>按时间范围过滤</p>
<pre><code class="language-Bash">$ journalctl --since &quot;1 hour ago&quot; -u nginx
</code></pre>
<p>按错误级别过滤</p>
<pre><code class="language-Bash">$ journalctl -u nginx -p err
</code></pre>]]></content:encoded><category>技术</category><category>Debian</category><category>systemd</category><category>systemctl</category><category>Linux</category></item><item><title>我的第一篇文章</title><link>https://blog.marusiru.com/p/20260722-01/</link><guid isPermaLink="true">https://blog.marusiru.com/p/20260722-01/</guid><pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate><description><![CDATA[这是一段用于首页和搜索引擎的摘要。]]></description><content:encoded><![CDATA[<p>正文从这里开始。</p>]]></content:encoded><category>日常</category><category>博客</category><category>记录</category></item><item><title>Markdown 能力展示</title><link>https://blog.marusiru.com/p/20260201-01/</link><guid isPermaLink="true">https://blog.marusiru.com/p/20260201-01/</guid><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><description><![CDATA[Tabs、代码块与 ANSI 终端渲染示例。]]></description><content:encoded><![CDATA[<h3 id="_1">代码</h3>
<pre><code class="language-python">print(&quot;hello, higan&quot;)
</code></pre>
<h3 id="tabs">Tabs</h3>
<div class="nsk-magic-tabs enabled" data-tab-group="tabs-1"><div class="nsk-magic-tab-title is-active" data-tab-index="0" data-tab-group="tabs-1" role="button" tabindex="0" aria-selected="true">简介</div><div class="nsk-magic-tab-body is-active" data-tab-index="0" data-tab-group="tabs-1"><p>轻量、静态、可托管在 Pages。</p></div><div class="nsk-magic-tab-title" data-tab-index="1" data-tab-group="tabs-1" role="button" tabindex="0" aria-selected="false">构建</div><div class="nsk-magic-tab-body" data-tab-index="1" data-tab-group="tabs-1"><p><code>python build.py</code> 输出到 <code>dist/</code>。</p></div></div>

<h3 id="ansi">ANSI</h3>
<div class="terminal-container embedMode"><div class="terminal-padding"><div class="xterm-wrapper" style="max-height:unset;"><div dir="ltr" class="terminal xterm nsk-terminal"><div class="xterm-viewport"></div><div class="xterm-scrollable-element" role="presentation"><div class="xterm-screen"><div class="xterm-rows" aria-hidden="true"><div style="white-space:pre;"><span class="xterm-fg-2">OK</span><span> build complete</span></div></div></div><div class="invisible scrollbar horizontal" aria-hidden="true"></div><div class="invisible scrollbar vertical" aria-hidden="true"></div></div></div></div></div></div>]]></content:encoded><category>教程</category><category>Markdown</category><category>Tabs</category><category>ANSI</category></item><item><title>欢迎使用 这套博客</title><link>https://blog.marusiru.com/p/20260121-01/</link><guid isPermaLink="true">https://blog.marusiru.com/p/20260121-01/</guid><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><description><![CDATA[这是一套偏执追求轻与稳的静态博客引擎演示文章。]]></description><content:encoded><![CDATA[<p>这是示例文章，用来验证构建是否正常。</p>
<h2 id="_1">它能做什么</h2>
<ul>
<li>Markdown 写作，Python 一键构建</li>
<li>文章 / 说说 / 友链 / 留言板</li>
<li>Tabs、ANSI 终端块、暗色主题</li>
<li>构建期 SEO（meta / RSS / sitemap / prev-next）</li>
</ul>
<h2 id="_2">快速开始</h2>
<pre><code class="language-bash">pip install -r requirements.txt
export SITE_URL='https://example.com'
python build.py
</code></pre>
<p>把 <code>dist/</code> 丢到任意静态托管即可。</p>]]></content:encoded><category>日常</category><category>博客</category><category>静态站</category><category>Higan</category></item>
</channel></rss>
