<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Posts on lastfantasy的博客</title>
        <link>https://blog.lastfantasy.top/post/</link>
        <description>Recent content in Posts on lastfantasy的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>liunianmolian@163.com</copyright>
        <lastBuildDate>Sun, 02 Nov 2025 12:36:53 +0800</lastBuildDate><atom:link href="https://blog.lastfantasy.top/post/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>常用资源整合收集</title>
        <link>https://blog.lastfantasy.top/p/%E5%B8%B8%E7%94%A8%E8%B5%84%E6%BA%90%E6%95%B4%E5%90%88%E6%94%B6%E9%9B%86/</link>
        <pubDate>Sun, 02 Nov 2025 11:48:15 +0800</pubDate>
        
        <guid>https://blog.lastfantasy.top/p/%E5%B8%B8%E7%94%A8%E8%B5%84%E6%BA%90%E6%95%B4%E5%90%88%E6%94%B6%E9%9B%86/</guid>
        <description>&lt;h1 id=&#34;资源整合&#34;&gt;资源整合
&lt;/h1&gt;&lt;h2 id=&#34;markdown&#34;&gt;markdown
&lt;/h2&gt;&lt;h3 id=&#34;改字体颜色&#34;&gt;改字体颜色
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;代码&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;效果&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;颜色&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;进制表示&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=Aqua&amp;gt;测试\&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=Aqua&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Aqua&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#00FFFF&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=Black&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=Black&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Black&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#000000&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=Blue&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=Blue&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Blue&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#0000FF&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=BlueViolet&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=BlueViolet&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;BlueViolet&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#8A2BE2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=Brown&amp;gt; 测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=Brown&gt; 测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Brown&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#A52A2A&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=BurlyWood&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=BurlyWood&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;BurlyWood&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#DEB887&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=CadetBlue&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=CadetBlue&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;CadetBlue&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#5F9EA0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=Chocolate&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=Chocolate&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Chocolate&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#D2691E&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=Coral&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=Coral&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Coral&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#FF7F50&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=CornflowerBlue&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=CornflowerBlue&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;CornflowerBlue&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#6495ED&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=Crimson&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=Crimson&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Crimson&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#DC143C&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=Cyan&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=Cyan&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Cyan&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#00FFFF&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkBlue&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkBlue&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkBlue&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#00008B&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkCyan&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkCyan&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkCyan&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#008B8B&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkGoldenRod&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkGoldenRod&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkGoldenRod&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#B8860B&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkGreen&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkGreen&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkGreen&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#006400&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkKhaki&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkKhaki&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkKhaki&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#BDB76B&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkMagenta&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkMagenta&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkMagenta&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#8B008B&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkOliveGreen&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkOliveGreen&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkOliveGreen&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#556B2F&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=Darkorange&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=Darkorange&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Darkorange&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#FF8C00&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkOrchid&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkOrchid&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkOrchid&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#9932CC&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkRed&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkRed&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkRed&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#8B0000&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkSalmon&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkSalmon&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkSalmon&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#E9967A&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkSeaGreen&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkSeaGreen&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkSeaGreen&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#8FBC8F&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkSlateBlue&amp;gt; 测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkSlateBlue&gt; 测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkSlateBlue&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#483D8B&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;font color=DarkSlateGray&amp;gt;测试&amp;lt;font&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;font color=DarkSlateGray&gt;测试&lt;font&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;DarkSlateGray&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;#2F4F4F&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote class=&#34;alert alert-note&#34;&gt;
    &lt;p&gt;相关数据来自：&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/m0_62965736/article/details/148528590&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Markdown入门（1）：一招修改字体颜色，附代码和常用颜色！！！_markdown 颜色-CSDN博客&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;其中做此部分文档参考了如下链接技术：（涉及markdown表格及原生html显示方法）&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/jamieblue1/article/details/89247751&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Markdown中原格式显示html标签_从apache2 下载的makrdown 打开是html样式-CSDN博客&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://zhuanlan.zhihu.com/p/139007418&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Markdown更改字体、颜色、大小，设置文字背景色，调整图片大小设置居中，插入表格等方法 - 知乎&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>本地环境搭建BettaFish舆论查询工具</title>
        <link>https://blog.lastfantasy.top/p/%E6%9C%AC%E5%9C%B0%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BAbettafish%E8%88%86%E8%AE%BA%E6%9F%A5%E8%AF%A2%E5%B7%A5%E5%85%B7/</link>
        <pubDate>Sun, 02 Nov 2025 10:30:15 +0800</pubDate>
        
        <guid>https://blog.lastfantasy.top/p/%E6%9C%AC%E5%9C%B0%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BAbettafish%E8%88%86%E8%AE%BA%E6%9F%A5%E8%AF%A2%E5%B7%A5%E5%85%B7/</guid>
        <description>&lt;h1 id=&#34;本地搭建前提环境准备&#34;&gt;本地搭建前提环境准备
&lt;/h1&gt;&lt;h2 id=&#34;conda命令安装&#34;&gt;conda命令安装
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/ViatorSun/article/details/118578818&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;「详解」conda 安装与使用-CSDN博客&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;简单来说可以直接参考上述文档进行。&lt;/p&gt;
&lt;blockquote class=&#34;alert alert-note&#34;&gt;
    &lt;p&gt;&lt;b&gt;&lt;font color=#00BFFF&gt;conda的安装&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;miniconda 官网：https://conda.io/miniconda.html
anaconda 官网：https://www.anaconda.com/download&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;miniconda为精简版的conda，这里无需安装过多功能，因此直接选择miniconda.&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anaconda.com/docs/getting-started/miniconda/install#windows-powershell&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Installing Miniconda - Anaconda&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;进入相关网站可以找到对应的下载方式，这里采用powershell的方式进行&lt;/p&gt;
&lt;blockquote class=&#34;alert alert-note&#34;&gt;
    &lt;p&gt;&lt;b&gt;&lt;font color=#00BFFF&gt;powershell安装miniconda&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Invoke-WebRequest -Uri &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe%22&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe&#34;&lt;/a&gt; -outfile &amp;ldquo;.\miniconda.exe&amp;rdquo;
Start-Process -FilePath &amp;ldquo;.\miniconda.exe&amp;rdquo; -ArgumentList &amp;ldquo;/S&amp;rdquo; -Wait
del .\miniconda.exe&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在powershell中完成安装conda，这里预备安装的第一步已经完成。&lt;/p&gt;
&lt;p&gt;注意，如果按照此方式安装完之后，在普通的powershell中还是无法直接使用conda命令（显示如下报错），本地尝试将miniconda3（上述命令行安装的目录）加入环境变量也是不行的。&lt;/p&gt;
&lt;p&gt;![[Pasted image 20251102104816.png]]&lt;/p&gt;
&lt;p&gt;后续发现在执行完上述命令后，系统的开始菜单已经多出了两个终端窗口文件&amp;quot;Anaconda PowerShell Prompt&amp;quot;和“Anaconda Prompt”，点击进入就可以直接使用conda了。
![[Pasted image 20251102105150.png]]&lt;/p&gt;
&lt;h2 id=&#34;bettafish源码下载&#34;&gt;BettaFish源码下载
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/666ghj/BettaFish/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/666ghj/BettaFish/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;进入开源项目的release页面下载源码并进行解压。
解压好本地目录进入下一步。&lt;/p&gt;
&lt;h2 id=&#34;基于conda的python环境处理&#34;&gt;基于conda的python环境处理
&lt;/h2&gt;&lt;p&gt;这里首先通过&amp;quot;Anaconda PowerShell Prompt&amp;quot;进入相应环境，跳转到解压好的本地BettaFish目录后开始进行python环境创建。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 创建conda环境&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;conda create -n pytorch_python11 &lt;span class=&#34;nv&#34;&gt;python&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;3.11
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;conda activate pytorch_python11
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;![[Pasted image 20251102110033.png]]&lt;/p&gt;
&lt;p&gt;出现上述命令显示状态即可。&lt;/p&gt;
&lt;p&gt;随后我们需要根据自己的需求定制requirements.txt文件，定制完成后可以进行依赖安装。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 安装依赖&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;等待所有依赖包安装完成即可
![[Pasted image 20251102110947.png]]&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 安装浏览器驱动&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright install chromium
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;![[Pasted image 20251102111050.png]]&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 启动系统&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python app.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这里使用该命令就可以用 &lt;a class=&#34;link&#34; href=&#34;http://localhost:5000/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://localhost:5000&lt;/a&gt; 访问系统了，但是实际上还是用不了的，因为这个需要用到AI，因此需要大模型的API进行配置。这里就先不做具体描述了。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>ubuntu和windows双系统grub修复</title>
        <link>https://blog.lastfantasy.top/p/ubuntu%E5%92%8Cwindows%E5%8F%8C%E7%B3%BB%E7%BB%9Fgrub%E4%BF%AE%E5%A4%8D/</link>
        <pubDate>Sun, 19 Oct 2025 10:59:15 +0800</pubDate>
        
        <guid>https://blog.lastfantasy.top/p/ubuntu%E5%92%8Cwindows%E5%8F%8C%E7%B3%BB%E7%BB%9Fgrub%E4%BF%AE%E5%A4%8D/</guid>
        <description>&lt;p&gt;近期系统自动更新导致grub引导出现异常，开机时候提示：
Minimal BASH-like line editing is supported.For the first word.TAB lists possible command completions.Anywhere else TAB lists possible device or file completions.&lt;/p&gt;
&lt;p&gt;类似下图：
![[Pasted image 20250511141716.png]]&lt;/p&gt;
&lt;p&gt;本地1确认了一下，大概率是win11这边系统导致的，win11提示意料之外的异常导致无法启动设备。&lt;/p&gt;
&lt;p&gt;反复折腾半天疑难解答几个选项都没有用，然后调整开机启动顺序，让优先启动ubuntu，结果就出现上述的提示。&lt;/p&gt;
&lt;p&gt;处理方法参考&lt;a class=&#34;link&#34; href=&#34;https://zhuanlan.zhihu.com/p/395608033&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;电脑开机出现GNU GRUB Minimal BASH-like line editing is supported - 知乎&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/weixin_39638464/article/details/113896650&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;grub ubuntu关闭gnu_grub ubuntu关闭gnu_Ubuntu开机进入GRUB手动引导-CSDN博客&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;处理方案&lt;/p&gt;
&lt;p&gt;第一步：找到根目录和GRUB&lt;/p&gt;
&lt;p&gt;在grub界面&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ls
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;先确认本地磁盘有哪些，比如&lt;/p&gt;
&lt;p&gt;(hd0), (hd0, msdos7), (hd0, msdos6), (hd0, msdos5), (hd0, msdos3), &amp;hellip;&lt;/p&gt;
&lt;p&gt;继续使用ls查看每个扇区的信息，需要注意：&lt;/p&gt;
&lt;p&gt;(hd0)≠hd0&lt;/p&gt;
&lt;p&gt;(hd0,msdos5)⇔(hd0,5)&lt;/p&gt;
&lt;p&gt;ls (hd0)⇒查看(hd0)扇区信息(盘符、空间&amp;hellip;)&lt;/p&gt;
&lt;p&gt;ls (hd0)/⇒查看(hd0)扇区下内容(多了一个`/``)&lt;/p&gt;
&lt;p&gt;通过挨个打印子目录内容，我们可能遇到以下两种情况：&lt;/p&gt;
&lt;p&gt;A目录下有boot/，boot/下还有grub/&lt;/p&gt;
&lt;p&gt;A目录下有boot/，B目录下有grub/&lt;/p&gt;
&lt;p&gt;去寻找grub所在的linux盘&lt;/p&gt;
&lt;p&gt;本地由于linux安装时专门对grub建了分区，因此boot和grub的分区方式属于上述第二种&lt;/p&gt;
&lt;p&gt;本地的(hd0,5)下有boot/, (hd0,6)下有grub/&lt;/p&gt;
&lt;p&gt;按照知乎的描述&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;hd0,6
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;prefix&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=(&lt;/span&gt;hd0,6&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;/grub
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;insmod normal
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;normal
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;执行之后，成功启动ubuntu。&lt;/p&gt;
&lt;p&gt;但是此时不可以直接重启，需要对于grub进行修复&lt;/p&gt;
&lt;p&gt;第三步：修复引导&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo update-grub &lt;span class=&#34;c1&#34;&gt;#grub情况下命令，具体参考之前的设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo update-grub2 &lt;span class=&#34;c1&#34;&gt;#grub2命令(高版本使用grub2)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo grub-install /dev/sda
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;执行结束后引导算是修复完成了。&lt;/p&gt;
&lt;p&gt;不过windows因为自己升级导致无法正常使用也需要修复。因此需要额外制作一下windows启动盘来修复当前的windows镜像。&lt;/p&gt;
&lt;p&gt;后面双系统引导又崩了，windows彻底进不去了，后面发现好像是固态挂了，然后ubuntu也出问题了，引导异常，用安装盘修复grub也失败了，按照boot-repair的那个方式搞，结果又扯出什么GPT分区的问题，疯了。&lt;/p&gt;
&lt;p&gt;直接重装一下根目录，保留之前的home数据&lt;/p&gt;
&lt;p&gt;==============================================================&lt;/p&gt;
&lt;p&gt;书接上回，windows自动更新动不动就自己打开了，导致双系统的引导又一次失效了，因此这次需要找一个彻底的解决方案。&lt;/p&gt;
&lt;p&gt;目前有两个方向：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[!双系统引导问题修复方案]&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;windows禁止自动更新&lt;/li&gt;
&lt;li&gt;换一个靠谱的grub引导方案&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;针对第一点，网上可以搜到教程。核心点就是注册表修改，把下次更新日期延长到很长时间之后&lt;/p&gt;
&lt;p&gt;可以参考下列链接中的注册表相关的处理方法&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.ceacer.cn/disable-win10-auto-update-permanently&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;关闭Win10自动更新最强方法，彻底禁止win10更新&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;第二点，这里找到了一个好用的软件rEFInd，这个软件在windows和ubuntu都可以下载根据相关教程设置配置就可以了&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://zhuanlan.zhihu.com/p/67114559&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;rEFInd引导使用教程 - 知乎&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>wokwi模拟环境搭建</title>
        <link>https://blog.lastfantasy.top/p/wokwi%E6%A8%A1%E6%8B%9F%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/</link>
        <pubDate>Sun, 19 Oct 2025 10:57:43 +0800</pubDate>
        
        <guid>https://blog.lastfantasy.top/p/wokwi%E6%A8%A1%E6%8B%9F%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/</guid>
        <description>&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;函数名&lt;/th&gt;&lt;th&gt;功能简介&lt;/th&gt;&lt;th&gt;参数详细说明&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;pinMode(pin, mode)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;设置某引脚为输入(INPUT)、输出(OUTPUT)或上拉输入(INPUT_PULLUP)&lt;/td&gt;&lt;td&gt;pin：引脚号；mode：引脚模式(INPUT、OUTPUT、INPUT_PULLUP)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;digitalWrite(pin, val)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;将引脚输出设为高(HIGH)或低(LOW)电平&lt;/td&gt;&lt;td&gt;pin：引脚号；val：电平值(HIGH或LOW)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;digitalRead(pin)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;读取引脚电平（HIGH/LOW）&lt;/td&gt;&lt;td&gt;pin：引脚号；返回HIGH或LOW&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;delay(ms)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;延时函数，单位毫秒&lt;/td&gt;&lt;td&gt;ms：延时时间（毫秒）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;Serial.begin(baud)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;初始化串口通讯&lt;/td&gt;&lt;td&gt;baud：串口波特率，常用115200&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;Serial.print()/println()&lt;/code&gt;&lt;/td&gt;&lt;td&gt;向串口输出数据，print不换行，println自动换行&lt;/td&gt;&lt;td&gt;输出的字符串或变量&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;analogRead(pin)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;读取模拟电压（返回0~4095）&lt;/td&gt;&lt;td&gt;pin：模拟输入引脚号；返回值范围0~4095&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;ledcSetup(channel, freq, resolution)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;配置PWM通道的频率与精度&lt;/td&gt;&lt;td&gt;channel：PWM通道号；freq：PWM频率（Hz）；resolution：PWM分辨率（位数）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;ledcAttachPin(pin, channel)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;将某个GPIO引脚绑定到PWM通道&lt;/td&gt;&lt;td&gt;pin：GPIO引脚号；channel：PWM通道号&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;ledcWrite(channel, duty)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;输出PWM信号，占空比为duty（0~255）&lt;/td&gt;&lt;td&gt;channel：PWM通道号；duty：PWM占空比（0~255）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;attachInterrupt(pin, ISR, mode)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;设置中断服务函数（ISR）和触发方式（如FALLING）&lt;/td&gt;&lt;td&gt;pin：引脚号；ISR：中断服务函数名；mode：中断触发模式(RISING、FALLING、CHANGE)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/weixin_49337111/article/details/136479524&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;嵌入式物联网在线仿真平台Wokwi使用配置笔记教程_wokwi仿真平台-CSDN博客&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/weixin_73987691/article/details/147013203&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Wokwi模拟器] ESP32无实物入门教程（一）：GPIO + PWM + 时间片轮询三合一实战_esp32实战教程-CSDN博客&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>ubuntu 22.04配置个人私有云盘NextCloud</title>
        <link>https://blog.lastfantasy.top/p/ubuntu-22.04%E9%85%8D%E7%BD%AE%E4%B8%AA%E4%BA%BA%E7%A7%81%E6%9C%89%E4%BA%91%E7%9B%98nextcloud/</link>
        <pubDate>Sun, 22 Dec 2024 15:59:05 +0800</pubDate>
        
        <guid>https://blog.lastfantasy.top/p/ubuntu-22.04%E9%85%8D%E7%BD%AE%E4%B8%AA%E4%BA%BA%E7%A7%81%E6%9C%89%E4%BA%91%E7%9B%98nextcloud/</guid>
        <description>&lt;h2 id=&#34;私有云盘选择&#34;&gt;私有云盘选择
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://zhuanlan.zhihu.com/p/44103820&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;如何搭建自己的私有云盘 - 知乎&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;现有的云盘很多都开始要会员了，奇奇怪怪的收费还有广告无法忍受，出于成本考虑不太想被再次收割（除非完全没招），个人对于云盘的使用主要还是存取数据，比如一些有助于学习提升的资料以及历史数据记录等等。&lt;/p&gt;
&lt;p&gt;网上的数据现在多多少少都会有安全性问题，而当前本地闲置笔记本刚好没有怎么使用，前段时间还搞了个ubuntu系统，而个人对于后续可能会有配置本地服务器的打算（比如搞个群晖NAS），可以暂时用ubuntu练手。&lt;/p&gt;
&lt;p&gt;当前主流的私有云盘有如下几个（摘抄自上述知乎链接）&lt;/p&gt;
&lt;h3 id=&#34;alist&#34;&gt;AList：
&lt;/h3&gt;&lt;p&gt;演示地址：&lt;a class=&#34;link&#34; href=&#34;https://alist.nn.ci&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://alist.nn.ci&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;下载地址：&lt;a class=&#34;link&#34; href=&#34;https://github.com/alist-org/alist-web&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/alist-org/alist-web&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;nextcloud&#34;&gt;Nextcloud
&lt;/h3&gt;&lt;p&gt;官网地址：&lt;a class=&#34;link&#34; href=&#34;https://nextcloud.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://nextcloud.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;下载地址：&lt;a class=&#34;link&#34; href=&#34;https://nextcloud.com/install/#instructions-server&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://nextcloud.com/install/#instructions-server&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;cloudreve&#34;&gt;Cloudreve
&lt;/h3&gt;&lt;p&gt;官网：&lt;a class=&#34;link&#34; href=&#34;https://cloudreve.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cloudreve.org&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;owncloud&#34;&gt;ownCloud
&lt;/h3&gt;&lt;p&gt;了解更多：&lt;a class=&#34;link&#34; href=&#34;http://www.iplaysoft.com/owncloud.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://www.iplaysoft.com/owncloud.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;官网地址：&lt;a class=&#34;link&#34; href=&#34;https://owncloud.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://owncloud.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;下载地址：&lt;a class=&#34;link&#34; href=&#34;https://owncloud.org/install/#edition&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://owncloud.org/install/#edition&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;seafile&#34;&gt;Seafile
&lt;/h3&gt;&lt;p&gt;官网：&lt;a class=&#34;link&#34; href=&#34;https://www.seafile.com/home/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.seafile.com/home/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;dzzoffice-大桌子办公&#34;&gt;DzzOffice-大桌子办公
&lt;/h3&gt;&lt;p&gt;官网地址：&lt;a class=&#34;link&#34; href=&#34;http://www.dzzoffice.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://www.dzzoffice.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;演示地址：&lt;a class=&#34;link&#34; href=&#34;http://dev.dzzoffice.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://dev.dzzoffice.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;下载地址：&lt;a class=&#34;link&#34; href=&#34;http://www.dzzoffice.com/download.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://www.dzzoffice.com/download.html&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;可道云&#34;&gt;可道云
&lt;/h3&gt;&lt;p&gt;官网地址：&lt;a class=&#34;link&#34; href=&#34;http://www.kalcaddle.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://www.kalcaddle.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;演示地址：&lt;a class=&#34;link&#34; href=&#34;http://demo.kalcaddle.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://demo.kalcaddle.com/&lt;/a&gt;（登录用户名与密码都是demo）&lt;/p&gt;
&lt;p&gt;下载地址：&lt;a class=&#34;link&#34; href=&#34;http://www.kalcaddle.com/download.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://www.kalcaddle.com/download.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;还有很多没完全抄下来，就这样吧，暂时先选了nextcloud来配置，原因就是在B站刚好刷到了&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1ac411w7Kg&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.bilibili.com/video/BV1ac411w7Kg&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;nextcloud在ubuntu系统的安装和搭建&#34;&gt;NextCloud在ubuntu系统的安装和搭建
&lt;/h2&gt;&lt;p&gt;这里是通过snap来安装nextcloud&lt;/p&gt;
&lt;h3 id=&#34;安装snap&#34;&gt;安装snap
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get install snapd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;安装snapcraft&#34;&gt;安装snapcraft
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get install snapcraft
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;通过snap安装nextcloud&#34;&gt;通过snap安装nextcloud
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo snap install nextcloud
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;查看snap历史修改确认nextcloud是否安装成功&#34;&gt;查看snap历史修改确认nextcloud是否安装成功
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;snap changes nextcloud
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;修改nextcloud端口可选&#34;&gt;修改nextcloud端口（可选）
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo snap &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; nextcloud ports.http&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;60001&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;启动nextcloud&#34;&gt;启动nextcloud
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo snap start nextcloud
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;此时可以在浏览器上访问127.0.0.1:60001来确认nextcloud开启状态，默认端口是80，这里修改成60001&lt;/p&gt;
&lt;p&gt;首次进入之后需要设置管理员账户和密码（太过简单不予演示），设置完毕后就可以本地使用了。&lt;/p&gt;
&lt;h2 id=&#34;内网穿透实现外网访问nextcloud&#34;&gt;内网穿透实现外网访问nextcloud
&lt;/h2&gt;&lt;p&gt;我这里使用的是樱花穿透（sakura frp），之前搭饥荒服务器有用到，继续复用。
ubuntu这边的配置需要根据实际情况先搭建sakura frp的服务&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://doc.natfrp.com/launcher/usage.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SakuraFrp 启动器安装 / 使用指南 | SakuraFrp 帮助文档&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;根据教程一步一步来，确保“远程管理”可以正常访问即可。&lt;/p&gt;
&lt;h3 id=&#34;创建隧道&#34;&gt;创建隧道
&lt;/h3&gt;&lt;p&gt;这里没有使用http或者https来创建，使用了TCP来创建隧道，设置好本地端口号（我这里是60001），然后同步打开自动https，点击保存即可创建完成&lt;/p&gt;
&lt;h3 id=&#34;打开隧道&#34;&gt;打开隧道
&lt;/h3&gt;&lt;p&gt;进入“远程管理”界面，刷新隧道列表，然后把对应隧道打开即可，后续就可以通过特定地址+端口直接访问nextcloud&lt;/p&gt;
&lt;h2 id=&#34;nextcloud设置http访问&#34;&gt;nextcloud设置http访问
&lt;/h2&gt;&lt;p&gt;在内网穿透配置完毕后，通过内网穿透地址和端口访问时，会提示“通过不被信任的域名访问”。&lt;/p&gt;
&lt;p&gt;实际按照参考视频的做法用如下命令行尝试，并不能解决问题：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo nextcloud.occ config:system:set trusted_domains &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; --value&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;*.*.*.*
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;执行上述命令时候，由于本地使用的是zsh而非bash，报了如下错误&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;zsh: no matches found: --value&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;*.*.*.*
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;后续是参考 &lt;a class=&#34;link&#34; href=&#34;https://blog.51cto.com/u_14355665/6099385&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://blog.51cto.com/u_14355665/6099385&lt;/a&gt; 才ok的&lt;/p&gt;
&lt;p&gt;实际修改内容为&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vim ~/.zshrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#最后一行添加如下内容&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;unsetopt nomatch
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#重新source&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; ~/.zshrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;不被信任这个问题通过百度使用类似下面的操作解决了。&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.cnblogs.com/jsrd/p/17488223.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Nextcloud允许不被信任的域访问 取消 trusted domains - 极速热度 - 博客园&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;更改存储位置&#34;&gt;更改存储位置
&lt;/h2&gt;&lt;p&gt;默认存储路径/var/snap/nextcloud/common/nextcloud/data 实际是在根目录下的，但本地ubuntu没有给根目录分配太多空间，所以尝试修改存储目录，&lt;del&gt;改变多次使用各种方法都失败了，网上的资料是一个抄一个，官方的文档里面内容也没有snap相关的。算了，后续打算换其他的私有云盘。&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;试了很多方案，终于找到可靠信息。&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.nextcloud.com/t/changing-data-directory-location-with-snap-installation-procedures/23841/2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Changing data directory location with snap installation procedures - ℹ️ Support - Nextcloud community&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.lastfantasy.top/post/nextCloud_ubuntu/move-snap-nextcloud.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;move-snap-nextcloud&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;(同样的引用方式，网页此图片显示不出来本地可以,必须写成post/xxxx/xxx.png的形式网页才会显示, 相对路径无法显示)&lt;/p&gt;
&lt;p&gt;这里是说，通过snap命令安装的软件是没有权限访问外部目录的，之前ubuntu预留了将近60GB的空间，在一通操作下把对应存储空间挂在到了/ext-data目录下，不论怎么操作nextcloud都是无法访问的。所以问题出在snap这里而不是nextcloud这里。&lt;/p&gt;
&lt;p&gt;根据官网的描述和操作，执行之后还是报错，一度陷入绝望。
&lt;a class=&#34;link&#34; href=&#34;https://github.com/nextcloud-snap/nextcloud-snap/wiki/Change-data-directory-to-use-another-disk-partition&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Change data directory to use another disk partition · nextcloud-snap/nextcloud-snap Wiki&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;实际上个人多个操作先后报错如下：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Internal Server Error
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The server encountered an internal error and was unable to complete your request.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;More details can be found in the server log.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;您的数据目录无效。 确保数据目录的根目录中有一个名为&amp;#34;.ncdata&amp;#34;的文件。它应该包含以下内容：&amp;#34;# Nextcloud data directory&amp;#34; 无法创建 “data” 目录 通常可以为 Web 服务器授予对根目录的写入权限来修复这个问题。查看：[https://docs.nextcloud.com/server/30/go.php?to=admin-dir_permissions](https://docs.nextcloud.com/server/30/go.php?to=admin-dir_permissions)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ncdata这个网上搜到的大多是&amp;quot;.ocdata&amp;quot;的东西，其实是owncloud的处理方式，对于新版本的nextcloud无用。&lt;/p&gt;
&lt;p&gt;中途尝试用docker来配置，也是失败了&lt;/p&gt;
&lt;p&gt;后面尝试把挂载位置从/ext-data换成/media/ext-data，修改/var/snap/nextcloud/current/nextcloud/config/config.php中的“datadirectory”，&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#39;datadirectory&amp;#39; =&amp;gt; &amp;#39;/media/ext-data/nextcloud/data&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;把之前建立的data目录下的存储文件拷贝到data中，根据提示新增.ncdata文件，并添加相应内容：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; /media/ext-data/nextcloud/data
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo vim .ncdata
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.ncdata内容直接按如下内容写
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Nextcloud data directory
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;随后重新执行如下命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo chown -R root:root /media/ext-data/nextcloud/data
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo chmod &lt;span class=&#34;m&#34;&gt;0770&lt;/span&gt; /media/ext-data/nextcloud/data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然后执行如下命令,&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo snap connect nextcloud:removable-media
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;重启nextcloud&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo snap restart nextcloud.php-fpm
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;或者
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo snap start nextcloud
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;访问127.0.0.1:60001测试，完美进入&lt;/p&gt;
&lt;h2 id=&#34;使用app同步访问nextcloud&#34;&gt;使用app同步访问nextcloud
&lt;/h2&gt;&lt;p&gt;nextcloud的安卓版本链接如下：
&lt;a class=&#34;link&#34; href=&#34;http://nextcloud.apks.software/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://nextcloud.apks.software/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这里我下载了Nextcloud 3.29.2才能使用&lt;/p&gt;
&lt;h2 id=&#34;其他参考&#34;&gt;其他参考
&lt;/h2&gt;&lt;p&gt;docker安装nextcloud的方法
&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/yijian0645/article/details/137109351&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Nextcloud个人云盘搭建与基本使用-CSDN博客&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;近期准备把原来的动态自动部署暂停，统一转到github的blog上。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>本地笔记本安装win11和ubuntu22.04双系统</title>
        <link>https://blog.lastfantasy.top/p/%E6%9C%AC%E5%9C%B0%E7%AC%94%E8%AE%B0%E6%9C%AC%E5%AE%89%E8%A3%85win11%E5%92%8Cubuntu22.04%E5%8F%8C%E7%B3%BB%E7%BB%9F/</link>
        <pubDate>Sun, 08 Dec 2024 10:15:43 +0800</pubDate>
        
        <guid>https://blog.lastfantasy.top/p/%E6%9C%AC%E5%9C%B0%E7%AC%94%E8%AE%B0%E6%9C%AC%E5%AE%89%E8%A3%85win11%E5%92%8Cubuntu22.04%E5%8F%8C%E7%B3%BB%E7%BB%9F/</guid>
        <description>&lt;h1 id=&#34;heading&#34;&gt;
&lt;/h1&gt;&lt;h2 id=&#34;实现windows11及ubuntu2204双系统联想thinkbook-15-iil&#34;&gt;实现windows11及ubuntu22.04双系统（联想thinkbook 15 iil）
&lt;/h2&gt;&lt;h3 id=&#34;背景&#34;&gt;背景
&lt;/h3&gt;&lt;p&gt;闲置笔记本电脑一直不开机容易落灰，而近期有服务器搭建的需求，当前笔记本win11系统使用频率也不高，恰好还有一些硬盘空间可以预留（500G固态+2T机械），因此考虑重新规划一下硬盘分配。
当前的硬盘是500G固态分了两个盘，2T分了三个盘（实际就是1.8T左右，因此一个盘大约620MB）。win11系统盘是放在了固态上，对于双系统方案，根据网上的建议需要将引导盘分开以防一个其中一个系统出现异常。因此这次装机选择在机械盘上留出一定空间来专门装ubuntu系统。&lt;/p&gt;
&lt;p&gt;所以 第一步需要从现有系统中分出一定空闲的空间，最初这边只分出了100G，但实际装了一次之后发现分区规划存在一些问题，根目录很容易就被占满了，而在重新规划过程中因为搞了个jenkins，处理一些权限问题时候把系统搞挂了，导致bash相关命令都无法正常使用（也有可能是搜狗输入法搞得问题），因此直接重装一下，就当练手了。&lt;/p&gt;
&lt;p&gt;刚好温习一下，踩踩坑，记录一下。&lt;/p&gt;
&lt;h3 id=&#34;关于系统选择&#34;&gt;关于系统选择
&lt;/h3&gt;&lt;p&gt;其实这个最开始规划的时候是根据个人的习惯来选的，上班和自行学习的话接触最多的就是ubuntu。而ubuntu的社区环境对于新手也是比较友好的，基本上有问题的话网上都可以搜到类似解决方案。 不过ubuntu这边是分桌面版和服务器版的，安装完之后才反应过来，自己可能更需要的是服务器这边的功能，理论上把笔记本当做服务器的话利用率会更高一些。&lt;/p&gt;
&lt;p&gt;不过，桌面版装了之后，自己也可以更加自由diy了，也挺不错，如果后面还有别的什么需求要搞成ubuntu server版本，也可以再整理一篇文档。&lt;/p&gt;
&lt;h3 id=&#34;规划空间&#34;&gt;规划空间
&lt;/h3&gt;&lt;p&gt;一个是预留整体的ubuntu系统空间，另一个是对于预留空间的实际大小规划。
预留整体空间之前留的100G感觉不太够用，因此后续对于三个盘各抽出了100G的空间，通过图吧工具箱的DiskGenius把现有的三个盘数据内容位置都做了一下调整，使三个盘抽出的总计300G空间为一个连续空间，这一步从个人的经验来看应该是必要的。&lt;/p&gt;
&lt;p&gt;对于ubuntu安装的分区规划，这里参考了网上的方案
&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/Kefenggewu_/article/details/121186356&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://blog.csdn.net/Kefenggewu_/article/details/121186356&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上面这个链接介绍的是ubuntu18.04分区方案，本地方案和这个基本一致：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;/home	180G&lt;/p&gt;
&lt;p&gt;swap 	10G&lt;/p&gt;
&lt;p&gt;/boot  	3G&lt;/p&gt;
&lt;p&gt;/ 		60G&lt;/p&gt;
&lt;p&gt;剩余空间不做单独分区，后续需要时候再做拓展&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;当然，上述分区方案都是计划，实际要实施还需要下一步的操作。&lt;/p&gt;
&lt;h3 id=&#34;安装ubuntu相关&#34;&gt;安装ubuntu相关
&lt;/h3&gt;&lt;p&gt;这个网上找了很多教程，实际上个人认为如下的教程挺全面的，一开始没有看这个视频，后面发现如果安装这个流程来会省去很多麻烦。&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1554y1n7zv&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.bilibili.com/video/BV1554y1n7zv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;装ubuntu的话有好几步，像镜像版本选择前面已经说了，这里选用的是ubuntu22.04版本（至于为什么，下面会提到），下载之后需要做U盘安装盘，网上有人介绍ventoy，这个我试了下，没怎么搞明白，后面有机会可以试试。最后还是用了之前使用过的rufus做了启动盘（注意启动盘的分区类型一定要和安装系统的盘类型一致，否则没法进行正常引导安装）。&lt;/p&gt;
&lt;p&gt;做完启动盘，BIOS这边需要将“Secure Boot”设置为“Disable”，对应硬盘模式从RST改成了AHCI（是不是必须这个不太清楚） 然后将启动顺序调整为U盘启动，然后重启电脑，进入BIOS界面，选择U盘启动。&lt;/p&gt;
&lt;p&gt;安装过程可以先选择英文，在安装结束后再添加中文支持，以免文件夹这边都被默认改成了中文。&lt;/p&gt;
&lt;p&gt;安装之后，由于是双系统，需要考虑时间同步问题，原理参考上面的链接视频即可。&lt;/p&gt;
&lt;h3 id=&#34;踩坑盘点&#34;&gt;踩坑盘点
&lt;/h3&gt;&lt;p&gt;最开始搞得时候选的镜像是24.04版本，但是在做了启动盘之后，发现进了引导选择“try or install ubuntu”的时候，发现无法进入系统，报错是“Out of Memory”，下面打印了几行之后显示“kernel panic”，担心是24.04版本的镜像有问题，重新找了个18.04的版本，跟着视频看了下，发现在做启动盘的时候启动盘这边有“MBR”和“GPT”两个选项，当时没注意，默认是MBR，而重新看了下我现在windows里面对应的磁盘类型，是GPT，因此对18.04的启动盘做了一次调整，调整成GPT，尝试了一下，这次没有再报错了，但是在点了“try or install ubuntu”之后，发现屏幕虽然亮着，但是没有任何显示，也就是只有背光亮没有实际内容，网上查了一下，怀疑是显卡驱动问题，跟着网上的教程在引导界面按e，在最后一行添加“nomodeset”，然后按ctrl+x启动，实际上并没有解决任何问题。 添加“nomodeset”这个是专门针对NVIDIA显卡驱动的，实际作用是在启动的时候不加载显卡驱动，但我笔记本是thinkbook 15 iil的，对应的显卡是intel的集成显卡，因此这个方法并不能解决问题。 随后我又尝试改bios的东西，比如禁用secure boot, 调整硬盘模式（RST-&amp;gt;AHCI）,使用18.04都没法正常安装。
&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/somken/article/details/140091092&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://blog.csdn.net/somken/article/details/140091092&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;后来我考虑到黑屏大概率还是和显卡驱动有关，有可能18.04版本没有集成我当前电脑的显卡驱动，百度了很久终于找到了一篇相关的文章，这里提到了22.04版本的可行性，因此整理了现有踩过的坑，用22.04做启动盘并且选择GPT分区，经过尝试，终于可以进入安装界面了&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://ubuntu.com/certified/laptops?q=thinkbook&amp;#43;15&amp;amp;limit=20&amp;amp;category=Laptop&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://ubuntu.com/certified/laptops?q=thinkbook+15&amp;limit=20&amp;category=Laptop&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这里简单小结一下：&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;U盘启动盘格式化类型要确保和目标硬盘一致（GPT或MBR，大容量硬盘一般为GPT）&lt;/li&gt;
&lt;li&gt;ubuntu系统选择要考虑到目标机器显卡的驱动是否有集成（NVIDIA显卡需要用“nomodeset”进行操作）&lt;/li&gt;
&lt;li&gt;禁用secure boot&lt;/li&gt;
&lt;li&gt;调整硬盘模式 RST-&amp;gt;AHCI (暂不清楚必要性)&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;后续&#34;&gt;后续
&lt;/h3&gt;&lt;p&gt;本地两台电脑，一台windows一台ubuntu，由于ubuntu新装，所以环境上使用起来会有一些不太方便的地方，需要两台电脑之间传送文件或者发送网址，这里找了一下网上的方案，本地测试有效。&lt;/p&gt;
&lt;p&gt;windows与ubuntu内网通信工具：
&lt;a class=&#34;link&#34; href=&#34;https://www.ywnz.com/linuxjc/3650.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.ywnz.com/linuxjc/3650.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;windows：内网通&lt;/p&gt;
&lt;p&gt;ubuntu: iptux&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;后续打算再写下ubuntu 22.04版本jenkins搭建及饥荒服务器自动化部署的相关内容。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cloudflare相关部署配置</title>
        <link>https://blog.lastfantasy.top/p/cloudflare%E7%9B%B8%E5%85%B3%E9%83%A8%E7%BD%B2%E9%85%8D%E7%BD%AE/</link>
        <pubDate>Sat, 30 Nov 2024 18:32:30 +0800</pubDate>
        
        <guid>https://blog.lastfantasy.top/p/cloudflare%E7%9B%B8%E5%85%B3%E9%83%A8%E7%BD%B2%E9%85%8D%E7%BD%AE/</guid>
        <description>&lt;h2 id=&#34;cloudflare-worker搭配meting-api配置&#34;&gt;cloudflare worker搭配meting-api配置
&lt;/h2&gt;&lt;p&gt;网上能搜到的搭建教程大多都是github项目上自带的说明，最新的版本说明中只有docker、deno、本地node、vercel以及反向代理等。&lt;/p&gt;
&lt;p&gt;具体原文如下：&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/xizeyoupan/Meting-API&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;xizeyoupan/Meting-API: 🐳 Meting API 的容器化与部署&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;（本地尝试多种方法部署，只有vercel以及本地node node.js命令可以成功，node命令使用时不能&lt;code&gt;CTRL+C&lt;/code&gt;不然就会退出）&lt;/p&gt;
&lt;h3 id=&#34;本地尝试以及cloudflare-pages搭建方案&#34;&gt;本地尝试以及cloudflare pages搭建方案
&lt;/h3&gt;&lt;p&gt;本地尝试如下步骤手动部署，发现在执行第二步时会报错&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm i
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run build:all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;报错如下：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[30060:1130/185937.420:ERROR:node_bindings.cc(378)] Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;通过百度发现目前并没有好的解决方案。&lt;/p&gt;
&lt;p&gt;对package.json研究了下，发现实际“build:all”对应“node esbuild.config.js”命令，我们转而直接使用对应指令，发现就可以直接编译过了。&lt;/p&gt;
&lt;p&gt;编译生成的部分在对应esbuild.config.js有描述：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;outfile: &amp;lsquo;./dist/cloudflare-workers.js&amp;rsquo;&lt;/p&gt;
&lt;p&gt;outfile: &amp;lsquo;./dist/cloudflare-workers-min.js&amp;rsquo;,&lt;/p&gt;
&lt;p&gt;outfile: &amp;lsquo;./dist/deno.js&amp;rsquo;,&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;也就是说实际生成的是dist目录下的三个文件，本地使用node xxx.js（xxx为对应上述js文件），可以实现对应功能，本地在对应&lt;code&gt;PORT&lt;/code&gt;链接中可以直接访问到对应网站且test成功，但实际单独部署到cloudflare上是失败的（cloudflare最初是打算部署到pages里面然后结合github实现自动部署，不过实际上不论采用哪种命令都无法正常部署成功，该node命令一旦主动停止，服务也就自己停了，而自动部署对应的就是正常退出后实际部署内容可以正常使用，因此pages不太符合当前的要求）&lt;/p&gt;
&lt;h3 id=&#34;cloudflare-worker方案探索&#34;&gt;cloudflare worker方案探索
&lt;/h3&gt;&lt;p&gt;在上述最新的部署说明中没有cloudflare相关的描述，但经过不懈探索，在另一个github上看到有历史版本对于cloudflare相关部署描述（具体链接如下）&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/cky008/Meting-API&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;cky008/Meting-API: 🐳 Meting API 的容器化与部署&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上述部署描述中有“Cloudflare Workers”相关描述，如果不仔细看的话很容易忽略，因为实际上相关内容被折叠了，打开之后会看到如下描述：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;由于cf会自动去除x-real-ip以及在headers中加shit，网易云可能会失效。使用网易云的同学请尝试其他部署方式。&lt;/p&gt;
&lt;p&gt;在全球拥有数据中心，提供的域名被阻断，使用自有域名后速度很快。冷启动速度很快。&lt;/p&gt;
&lt;p&gt;fork本项目，依次点击actions/publish/run workflow。保持默认即可。待CI构建结束后下载cloudflare-workers.js并解压。在Workers创建一个Service，点右上角Quick edit。把cloudflare-workers.js的内容复制进去deploy即可。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;前面一堆描述，应该就是后续版本删掉“Cloudflare Workers”方案的原因，但是为了刚开始学习部署，肯定要自己先尝试一下顺便学习一下worker怎么用，所以直接开整。&lt;/p&gt;
&lt;p&gt;方法可以参考上面这种，不过既然本地之前已经生成了对应文件，直接copy过来就可以了。&lt;/p&gt;
&lt;p&gt;不过，按照上述流程操作完之后直接访问依旧是访问不了，因此我这边是反复删除和创建多次尝试，依旧不行。奇怪的是等了一段时间，我把worker自定义域配置了一下，通过自定义域居然就能访问了。&lt;/p&gt;
&lt;p&gt;效果如下：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.lastfantasy.top/p/cloudflare%E7%9B%B8%E5%85%B3%E9%83%A8%E7%BD%B2%E9%85%8D%E7%BD%AE/meting-api.png&#34;
	width=&#34;670&#34;
	height=&#34;437&#34;
	srcset=&#34;https://blog.lastfantasy.top/p/cloudflare%E7%9B%B8%E5%85%B3%E9%83%A8%E7%BD%B2%E9%85%8D%E7%BD%AE/meting-api_hu2679701382117244862.png 480w, https://blog.lastfantasy.top/p/cloudflare%E7%9B%B8%E5%85%B3%E9%83%A8%E7%BD%B2%E9%85%8D%E7%BD%AE/meting-api_hu4374303704572110211.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;meting-api&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;153&#34;
		data-flex-basis=&#34;367px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;相关test也是没有问题的：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.lastfantasy.top/p/cloudflare%E7%9B%B8%E5%85%B3%E9%83%A8%E7%BD%B2%E9%85%8D%E7%BD%AE/meting-api-test.png&#34;
	width=&#34;1251&#34;
	height=&#34;651&#34;
	srcset=&#34;https://blog.lastfantasy.top/p/cloudflare%E7%9B%B8%E5%85%B3%E9%83%A8%E7%BD%B2%E9%85%8D%E7%BD%AE/meting-api-test_hu7066125982939677387.png 480w, https://blog.lastfantasy.top/p/cloudflare%E7%9B%B8%E5%85%B3%E9%83%A8%E7%BD%B2%E9%85%8D%E7%BD%AE/meting-api-test_hu15829411023214066252.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;meting-api-test&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;192&#34;
		data-flex-basis=&#34;461px&#34;
	
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cloudflare相关配置&#34;&gt;cloudflare相关配置
&lt;/h2&gt;&lt;h3 id=&#34;dns解析修改&#34;&gt;DNS解析修改
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/dreamingsleeping/article/details/139745997&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;详细图文手把手教你阿里云注册域名如何托管到CloudFlare DNS服务_阿里云域名转移到cloud-CSDN博客&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;cloudflare-设置域名301转发重定向&#34;&gt;cloudflare 设置域名301转发重定向
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/GeorgeSteven/article/details/127151470&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cloudflare设置301重定向，附常见问题和解决方法_dns cname的作用 301重定向-CSDN博客&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://zhuanlan.zhihu.com/p/495264377&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;使用 Cloudflare 进行域名跳转(重定向) - 知乎&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cloudflare-workers优秀项目收集&#34;&gt;Cloudflare Workers优秀项目收集
&lt;/h2&gt;&lt;p&gt;这里直接放上大佬的整理链接&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.igdux.com/workers?locale=zh&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cloudflare Workers优秀项目收集（持续更新） - iGdux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;目前个人在尝试下面的东西，不过还没成功，后续有进展再更新&lt;/p&gt;
&lt;h3 id=&#34;使用-cloudflare-workers-自建节点科学上网&#34;&gt;使用 Cloudflare Workers 自建节点科学上网
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://voxsay.com/posts/using-cloudflare-workers-build-proxy-for-internet-access/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;使用 Cloudflare Workers 自建节点科学上网 | 言外之音&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;自定义导航&#34;&gt;自定义导航
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/sleepwood/CF-Worker-Dir?tab=readme-ov-file&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;sleepwood/CF-Worker-Dir: A web directories base on Cloudflare worker.&lt;/a&gt;
（其实已经通过cf worker搞好了，只不过一开始部署需要等好一段时间才能访问网站）&lt;/p&gt;
&lt;h3 id=&#34;网站监测&#34;&gt;网站监测
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/lyc8503/UptimeFlare&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;lyc8503/UptimeFlare: ✔ Free and serverless uptime monitoring / status page on Cloudflare Workers, with Geo-specific checks&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;个人使用了lyc8503这个博主的uptimeflare结合cloudflare worker及kv进行了自动部署&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
