当前位置: 首页 > news >正文

Ubuntu24.04初始化教程(包含基础优化、ros2)

目录

  • 构建系统
  • 建立系统备份
      • **Timeshift: 系统快照和备份工具**
      • **安装 Timeshift**
      • **使用 Timeshift 创建快照**
      • **还原快照**
      • **自动创建快照**
  • 最基本配置
    • 换源
  • 软件配置
    • 打开新世界大门
  • 谷歌浏览器
    • 星火应用商城
    • 更换输入法
    • 安装vscode
  • 完全删除snap
    • 删除
      • **删除软件**
      • **彻底删除**
      • 禁止重新安装Snap
    • 如果出现了任何问题,重装snap
  • **安装 Nala**
        • **1. 在 Ubuntu 或基于 Debian 的系统中安装**
      • **使用 Nala**
        • **1. 基本命令**
        • **2. 查看历史记录**
        • **3. 修复损坏的依赖**
    • **Fastfetch: 系统信息显示工具**
      • **安装 Fastfetch**
        • **Ubuntu/Debian 系统**
        • **从源码安装**
      • **使用 Fastfetch**
    • Conda: Miniconda
      • 步骤:
      • **配置环境和安装包**
  • 基础优化终端
    • 安装kitty
        • 步骤 1: 安装 Kitty 终端
        • 步骤 2: 设置 Kitty 为默认终端
      • **Kitty 基本配置**
        • 1.1 创建配置文件
        • 1.2 编辑配置文件
        • 1.3 基本设置
        • 2.2 使用第三方主题
      • **删除**
        • 1. **用包管理器下载**
        • 2. **如果是从源代码编译安装**
      • 3. **删除配置文件和缓存**
      • 4. **检查是否删除干净**
    • 安装starship
  • (可选)安装NVIDIA驱动
    • **删除NVIDIA驱动及其相关文件(如果发生了问题)**
      • **:通过 GRUB 菜单进入恢复模式**
      • **步骤 :确保卸载干净**
        • **6. 卸载后重新安装驱动(可选)**
      • **验证驱动安装**
  • (可选)安装ros2-jazzy
  • 安装jupyter
    • Jupyter **nbextensions** 一个拓展
      • 如何安装和使用 Jupyter nbextensions
        • 1. 安装 `jupyter_contrib_nbextensions`
        • 2. 安装和启用扩展
    • 其他小的支持下载

构建系统

参照经典教程
Windows11 安装 Ubuntu 避坑指南
Windows 和 Ubuntu 双系统的安装和卸载
一些值得注意的点
如果是GPT的磁盘(我使用这个)
同时使用双硬盘的笔记本

那么在Ubuntu24.04中,无需要创建一个efi分区。
当创建根挂载点之后,将自动生成一个fat32格式的引导分区。

推荐使用最简配置

其他的正常操作即可。非常简单。

建立系统备份

Timeshift: 系统快照和备份工具

Timeshift 是一款用于 Linux 的强大工具,它可以创建系统快照并在需要时还原系统到指定的时间点,非常适合在进行高风险操作(如删除关键系统组件、更新系统等)之前使用。


安装 Timeshift

sudo nala update
sudo nala install timeshift

使用 Timeshift 创建快照

  1. 启动 Timeshift

    • 使用图形界面:

      sudo timeshift-gtk
      
    • 使用终端界面:

      sudo timeshift
      
  2. 选择快照类型

    • RSYNC(推荐):适用于大多数场景,它使用文件同步的方式创建快照。
    • BTRFS:适用于 Btrfs 文件系统。
  3. 选择快照存储位置

    • 选择存储快照的磁盘分区(建议使用外部磁盘或与系统分区不同的磁盘分区)。
  4. 创建快照

    • 单击 “Create” 按钮即可开始创建快照。

    • 或者在终端中运行:

      sudo timeshift --create --comments "Before removing Snap"
      

还原快照

如果删除关键组件后系统出现问题,可以通过以下步骤还原快照:

  1. 启动 Timeshift:

    • 图形界面:

      sudo timeshift-gtk
      
    • 终端:

      sudo timeshift --restore
      
  2. 选择要还原的快照。

  3. 按照提示操作,完成系统还原。


自动创建快照

为了避免忘记创建快照,您可以设置 Timeshift 自动创建快照:

  1. 启动 Timeshift。
  2. 转到 Settings > Schedule,启用定时快照。
  3. 根据需求选择创建快照的频率(如每天、每周等)。

最基本配置

  1. 首先更新apt
sudo apt update
  1. 然后同步时间
sudo apt install ntpdate
sudo apt install util-linux
sudo apt install util-linux-extra
sudo ntpdate time.windows.com
sudo timedatectl set-local-rtc 1
# 不要使用下面这个,在当前版本不支持
# sudo hwclock --localtime --systohc
  1. 然后换源
    你可以手动操作,但是错误率高。
    这里我是用fishros的脚本
wget http://fishros.com/install -O fishros && . fishros

注意
我不再认为fishros一键换源很好用,有可能会引发一些依赖问题,并且可能速度很慢。
我推荐手动换源。

在软件更新中,选择Ubuntu的官方源是一个很好的选择,然后进入source.d中修改相关源文件

换源

  1. Ubuntu24.04的源地址配置文件发生改变,不再使用以前的sources.list文件,升级24.04之后,而是使用如下文件
    /etc/apt/sources.list.d/ubuntu.sources
    
  2. 备份源配置文件
    sudo cp /etc/apt/sources.list.d/ubuntu.sources  /etc/apt/sources.list.d/ubuntu.sources.bak
    
  3. 编辑源配置文件
    sudo vim /etc/apt/sources.list.d/ubuntu.sources
    
  4. 覆盖掉系统源(我在软件更新中使用阿里云源,只不过是多了suites而已)
    Types: deb
    URIs: http://mirrors.aliyun.com/ubuntu/
    Suites: noble noble-security noble-updates noble-proposed noble-backports
    Components: main restricted universe multiverse
    Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg                                                
    
  5. 然后将另一个官方系统源注释掉.
  6. 使用以下命令更新,apt-get切记
    sudo apt-get update
    sudo apt-get upgrade
    

还有别的系统源,可以参考

  • Ubuntu24.04换源方法(新版源更换方式,包含Arm64)
  • Ubuntu 24 换国内源及原理 (阿里源)

软件配置

打开新世界大门

谷歌浏览器

先安装这个,因为后面要删除所有snap应用
去官网下载,我使用的是谷歌。

星火应用商城

在这里下载国产应用很好用,我的微信,qq音乐和邮箱就是在这里下载的

更换输入法

我的文章

  • 在Ubuntu22.04上安装rime中文输入法的基本教程
  • 安装Fcitx5输入框架和输入法自动部署脚本(来自Mark24)-Ubuntu通用

第一篇已经接近废弃。

安装vscode

安装官网下载
同时向你推荐我的配置:

  • vscode基本配置-基于clang-format
  • vscode的c/c++ 环境配置(包含clang-format配置)
  • vscode插件推荐

记得,使用clang-format之前先

sudo apt install clang-format

相关教程,在上述链接中,都包含。

完全删除snap

删除

注意顺序似乎socket要先被禁用才能禁用service

  • 禁用开机启动
sudo systemctl disable snapd.socket
sudo systemctl disable snapd.service
sudo systemctl disable snapd.seeded.service

删除软件

  1. 检查应用

    snap list
    
  2. 逐一移除 Snap 应用(先商店再软件):

    sudo snap remove snap-store
    sudo snap remove firefox
    sudo snap remove gnome-42-2204 
    sudo snap remove core20
    sudo snap remove bare
    

    如果仍然看到类似于 /usr/lib/snapd/snapd 的进程,使用以下命令终止它:

    sudo killall snapd
    
  3. 移除 Snap 相关服务和残留:

    sudo apt purge snapd
    sudo rm -rf /snap /var/snap /var/lib/snapd ~/snap
    

彻底删除

  1. 删除残留文件:

    sudo rm -rf /snap
    sudo rm -rf /var/snap
    sudo rm -rf /var/lib/snapd
    sudo rm -rf ~/snap
    
  2. 验证 Snap 是否已彻底移除:

    which snap
    

    如果无输出,说明 Snap 已完全卸载。


禁止重新安装Snap

我们可以利用APT可配置禁用安装哪些依赖的特性,来实现禁止重新自动安装Snap服务
创建一个配置文件

sudo vim /etc/apt/preferences.d/nosnap.pref

输入如下内容

Package: snapd
Pin: release a=*
Pin-Priority: -10

如果出现了任何问题,重装snap

  1. 重新安装 Snap 包管理器

    sudo apt update
    sudo apt install snapd
    
  2. 启用 Snap 服务

    sudo systemctl enable --now snapd.socket
    
  3. 检查 Snap 是否正常工作

    snap version
    

安装 Nala

1. 在 Ubuntu 或基于 Debian 的系统中安装
  1. 添加 Nala 的 PPA:

    sudo add-apt-repository ppa:volian/nala
    sudo apt update
    
  2. 安装 Nala:

    sudo apt install nala
    

使用 Nala

1. 基本命令

apt 类似,Nala 提供了以下常用命令:

  • 更新软件包索引:

    sudo nala update
    
  • 安装软件包:

    sudo nala install <package_name>
    
  • 升级系统:

    sudo nala upgrade
    
  • 删除软件包:

    sudo nala remove <package_name>
    
2. 查看历史记录

Nala 提供了查看包管理历史记录的功能:

sudo nala history
3. 修复损坏的依赖

如果系统中有依赖问题,可以使用 Nala 修复:

sudo nala fix

Fastfetch: 系统信息显示工具

用于显示系统信息.


安装 Fastfetch

Ubuntu/Debian 系统
sudo apt update
sudo apt install fastfetch
从源码安装

如果在官方仓库中没有找到 Fastfetch,可以通过源码安装:

  1. 克隆 GitHub 仓库:

    git clone https://github.com/SnowflakeMC/fastfetch.git
    
  2. 进入仓库目录:

    cd fastfetch
    
  3. 安装:

    sudo make install
    

使用 Fastfetch

  • 显示系统信息:

    fastfetch
    
  • 常用选项

    • 禁用 ASCII 图形(仅显示文字信息):

      fastfetch --no-ascii
      
    • 自定义配置信息(指定配置文件):

      fastfetch --config /path/to/config.conf
      
  • 修改配置Fastfetch 的配置文件通常位于 ~/.config/fastfetch/config.conf。你可以编辑它来定制输出的内容,比如隐藏某些信息或调整颜色主题。


Conda: Miniconda

Miniconda 是 Conda 的轻量级版本,只包含 Conda 和一些基本的工具,而没有像 Anaconda 那样自带大量的包,适合想要自定义环境和包的用户。

步骤:

  1. 下载 Miniconda 安装脚本

    打开终端并运行以下命令来下载适用于 Linux 的 Miniconda 安装脚本:

    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
    
  2. 为脚本添加执行权限

    给下载的脚本添加执行权限:

    chmod +x miniconda.sh
    
  3. 运行安装脚本

    运行 Miniconda 安装脚本并按提示完成安装:

    ./miniconda.sh
    

    安装过程中,默认的安装路径通常是 ~/miniconda3,你可以根据需要选择更改。安装完成后,按提示让脚本添加 Conda 到你的 shell 配置文件中。

  4. 初始化 Conda

    安装完成后,运行以下命令来初始化 Conda,使其在终端启动时自动加载:

    source ~/miniconda3/bin/activate
    conda init
    

    这将修改你的 shell 配置文件,使 Conda 在每次打开终端时自动激活。

  5. 关闭并重新打开终端

    完成安装并初始化后,重新打开终端。你应该会看到 Conda 的提示符,如 (base),表示 Conda 环境已经激活。

  6. 检查安装是否成功

    输入以下命令检查 Conda 是否安装成功:

    conda --version
    

配置环境和安装包

# 创建一个新的环境
conda create --name myenv python=3.9# 激活环境
conda activate myenv# 安装 TensorFlow
conda install tensorflow

这样,你就可以在独立的环境中运行不同版本的包,避免不同项目之间的冲突。


基础优化终端

安装kitty

步骤 1: 安装 Kitty 终端
sudo nala update
sudo nala install kitty
步骤 2: 设置 Kitty 为默认终端

你可以通过 update-alternatives 将 Kitty 设置为默认终端。这样当你打开终端时,默认会启动 Kitty。

sudo update-alternatives --config x-terminal-emulator
  • 在弹出的选择菜单中选择 Kitty(通常会显示 Kitty 的路径,例如 /usr/bin/kitty)。
  • 按照提示输入对应的数字,按回车

Kitty 基本配置

https://github.com/kovidgoyal/kitty-themes

官网中有足够清晰的教程.

1.1 创建配置文件

首先确保你有一个 kitty.conf 配置文件,通常位于 ~/.config/kitty/kitty.conf。如果没有,先创建它:

mkdir -p ~/.config/kitty
touch ~/.config/kitty/kitty.conf
1.2 编辑配置文件

打开 kitty.conf 配置文件:

nano ~/.config/kitty/kitty.conf
1.3 基本设置

我的基本设置,主要依赖官方样式

# 1. 字体设置
font_family FiraCode  # 设置字体为 FiraCode(支持连字的字体)
font_size 14.0        # 设置字体大小为 14# 3. 启用字体连字(需要支持连字的字体,如 FiraCode)
enable_ligatures yes# 5. 透明背景
background_opacity 0.85  # 设置背景透明度(0 为全透明,1 为不透明)# 6. 设置窗口边距
window_padding 10      # 设置窗口内边距(单位:像素)# 7. 启用软换行(文本自动换行)
soft_wrap 1            # 开启软换行```bash
# 引入 Solarized Light 主题
include /usr/share/kitty/themes/solarized-light.conf
2.2 使用第三方主题

你可以从 kitty-themes GitHub 下载更多的主题,然后在 kitty.conf 中引入。

在kitty终端中输入

kitty +kitten themes

删除

如果遇到任何问题,删除所有的文件.

1. 用包管理器下载

如果通过 nala 安装的,可以使用以下命令:

sudo nala remove --purge kitty
sudo nala autoremove

如果你是使用apt(当然nala remove之后就无须使用apt remove了),或者conda,使用它们相关的卸载方式

2. 如果是从源代码编译安装
  1. 进入 kitty 源代码目录(即你当初克隆或下载源码的文件夹)。

  2. 执行 make uninstall 命令,前提是安装时有安装卸载规则。

    sudo make uninstall
    
  3. 删除安装目录(通常是 /usr/local/bin/opt)。

    你可以手动删除 kitty 的二进制文件和配置文件。例如,假设你将 kitty 安装到了 /opt/kitty

    sudo rm -rf /opt/kitty
    sudo rm /usr/local/bin/kitty
    sudo rm /usr/local/bin/kitty_config
    

    确保删除相关的二进制文件、配置文件以及任何安装时创建的目录。

3. 删除配置文件和缓存

删除它的配置文件和缓存,这样就可以完全清除所有相关的文件。

rm -rf ~/.config/kitty
rm -rf ~/.local/share/kitty
rm -rf ~/.cache/kitty

4. 检查是否删除干净

检查是否还存在 kitty 的安装痕迹:

which kitty

如果终端返回空结果,则表示 kitty 已成功卸载。如果仍然显示路径,可以手动删除相应的文件。

安装starship

starship的安装参照官网即可

  • starship

不要在kitty中安装
去终端中安装!!!

(可选)安装NVIDIA驱动

原本的开源驱动以及足够使用,但是为了追求效益,我决定安装官方驱动。
教程请见:

  • ubuntu 24.04 安装 Nvidia 显卡驱动 + CUDA + cuDNN,配置 AI 深度学习训练环境,简单易懂,一看就会!

删除NVIDIA驱动及其相关文件(如果发生了问题)

还有其他方案比如说:

NVIDIA显卡的Ubuntu驱动程序安装方法

:通过 GRUB 菜单进入恢复模式

  1. 重启系统

    • 在系统启动时,按住 Shift 键,直到出现 GRUB 菜单。
    • 如果您使用的是 UEFI 启动,请尝试按 Esc 键。
  2. 选择恢复模式

    • 在 GRUB 菜单中,选择您的内核版本带有 Recovery Mode 的选项。
  3. 进入根终端

    • 在恢复模式菜单中,选择 root 进入根终端。
  4. 停止图形界面

    • 如果图形界面服务仍在运行,可以使用以下命令停止:

      sudo systemctl stop gdm       # GNOME
      sudo systemctl stop sddm      # KDE
      sudo systemctl stop lightdm   # LightDM
      
  5. 卸载 NVIDIA 模块:

    sudo rmmod nvidia_drm nvidia_modeset nvidia
    

步骤 :确保卸载干净

  1. 确保 NVIDIA 驱动已完全卸载

    sudo apt-get purge '^nvidia-.*'
    
  2. 移除残留的 NVIDIA 配置文件和内核模块: 这些文件可能会在卸载过程中留下,需要手动清理:

    sudo rm -rf /lib/modules/$(uname -r)/kernel/drivers/video/nvidia*
    sudo rm -rf /etc/X11/xorg.conf.d/10-nvidia.conf
    sudo rm -rf /etc/modprobe.d/nvidia.conf
    sudo rm -rf /etc/modprobe.d/nvidia-installer-disable-nouveau.conf
    
  3. 更新 initramfs: 确保内核模块的更改被加载:

    sudo update-initramfs -u
    
  4. 重启计算机: 在清理完后,最好重启一次:

    sudo reboot
    

6. 卸载后重新安装驱动(可选)

卸载模块后,可以重新安装兼容的 NVIDIA 驱动:

  • 使用 NVIDIA .run 文件重新安装:

    sudo ./NVIDIA-Linux-x86_64-560.31.02.run
    
  • 或使用 Ubuntu 驱动管理工具:(在软件更新器的图形化界面中也可以)

    sudo ubuntu-drivers autoinstall
    sudo reboot
    

验证驱动安装

安装完成并重启后,您可以通过以下命令验证 NVIDIA 驱动是否正确安装:

  1. 检查 NVIDIA 驱动

    nvidia-smi
    

    如果成功,应该看到类似以下内容,显示当前驱动和显卡信息:

    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 460.80    Driver Version: 460.80    CUDA Version: 11.2           |
    |-------------------------------+----------------------+----------------------+
    
  2. 检查 NVIDIA 内核模块

    lsmod | grep nvidia
    

    应该能看到 nvidia, nvidia_modeset, nvidia_drm 等模块。


(可选)安装ros2-jazzy

教程请见:

  • ubuntu24.04安装jazzy版ros2的前置操作(防报错)
    这个教程并不完全正确。
    似乎是安装版本上有些错误,但我不确定。

以下是参考,无须参考换源.
有问题去对应配置文件里面删除即可。

  • 主要是Ubuntu 24.04 安装 ROS2 Jazzy

安装jupyter

注意python版本的系统和conda虚拟环境的差别!!

如何检查?
jpynb中执行,看看它是不是调用了conda环境还是系统环境!!

import sys
print(sys.executable)

为了防止出错
使用 Conda 安装 Jupyter
如果 Jupyter 安装在 conda 环境中,最好通过 conda 安装 Jupyter,而不是使用 pip,以确保所有依赖都能正确处理:

conda install jupyter

Jupyter nbextensions 一个拓展

如何安装和使用 Jupyter nbextensions

1. 安装 jupyter_contrib_nbextensions

要使用 Jupyter nbextensions,首先需要安装 jupyter_contrib_nbextensions 包,它包含了多个扩展和配置工具。

# 在 conda 环境中运行以下命令
conda install -c conda-forge jupyter_contrib_nbextensions
2. 安装和启用扩展
jupyter contrib nbextension install --user

这会把扩展文件放到你的 Jupyter 配置目录中。

jupyter notebook
  • jupyter notebook 进阶使用:nbextensions

其他小的支持下载

conda install numpy
transforms3d

相关文章:

Ubuntu24.04初始化教程(包含基础优化、ros2)

目录 构建系统建立系统备份**Timeshift: 系统快照和备份工具****安装 Timeshift****使用 Timeshift 创建快照****还原快照****自动创建快照** 最基本配置换源 软件配置打开新世界大门 谷歌浏览器星火应用商城更换输入法安装vscode 完全删除snap删除**删除软件****彻底删除**禁止…...

C/C++ 数据结构与算法 【时间复杂度和空间复杂度】【日常学习,考研必备】

一、时间复杂度 定义&#xff1a;时间复杂度描述了算法运行时间随输入大小增长而增长的趋势。它主要关注的是算法中最耗时的部分&#xff0c;并忽略常数因子、低阶项等细节。表示方法&#xff1a;通常使用大O符号&#xff08;Big O notation&#xff09;来表示时间复杂度。例如…...

brew安装mongodb和php-mongodb扩展新手教程

1、首先保证macos下成功安装了Homebrew&#xff0c; 在终端输入如下命令&#xff1a; brew search mongodb 搜索是不是有mongodb资源&#xff0c; 演示效果如下&#xff1a; 2、下面来介绍Brew 安装 MongoDB&#xff0c;代码如下&#xff1a; brew tap mongodb/brew brew in…...

使用zabbix监控k8s

一、 参考文献 小阿轩yx-案例&#xff1a;Zabbix监控kubernetes云原生环境 手把手教你实现zabbix对Kubernetes的监控 二、部署经验 关于zabbix监控k8s&#xff0c;总体来说是分为两块内容&#xff0c;一是在k8s集群部署zabbix-agent和zabbix- proxy。二是在zabbix进行配置。…...

Brain.js(二):项目集成方式详解——npm、cdn、下载、源码构建

Brain.js 是一个强大且易用的 JavaScript 神经网络库&#xff0c;适用于前端和 Node.js 环境&#xff0c;帮助开发者轻松实现机器学习功能。 在前文Brain.js&#xff08;一&#xff09;&#xff1a;可以在浏览器运行的、默认GPU加速的神经网络库概要介绍-发展历程和使用场景中&…...

SQL Server管理员sa登录失败原因

文章目录 一、开启混合登录模式二、启用sa三、更改密码四、登录sa一、开启混合登录模式 用Windows身份登录数据库服务。 在连接名上右键→属性。 在安全性选项卡下,选择【SQL Server和Windows身份验证模式】,点击【确定】,提示需要重启服务。 Win+R,输入指令:services.ms…...

怎么样才算得上熟悉高并发编程?

提到并发编程很多人就会头疼了&#xff1b;首先就是一些基础概念&#xff1a;并发&#xff0c;并行&#xff0c;同步&#xff0c;异步&#xff0c;临界区&#xff0c;阻塞&#xff0c;非阻塞还有各种锁全都砸你脸上&#xff0c;随之而来的就是要保证程序运行时关键数据在多线程…...

conan2包管理菜鸟入门之------------------交叉编译和静态编译

在做嵌入式开发时,我们经常需要交叉编译,conan2可以通过新增profile,在profile配置交叉编译工具链,然后在conan build指定profile就可以进行交叉编译,具体步骤如下: 1.首先在profiles下新增目标平台配置,默认情况下是只有default,下面是一个example profile文件: [set…...

Go-MediatR:Go语言中的中介者模式

在Go语言中&#xff0c;确实存在一个与C#中的MediatR类似的组件包&#xff0c;名为Go-MediatR。 Go-MediatR是一个受.NET中MediatR库启发的Go语言实现&#xff0c;它专注于通过中介者模式简化命令查询责任分离&#xff08;CQRS&#xff09;模式的处理和在事件驱动架构中的应用…...

双向链表

目录 链表的分类 概念 双向链表的实现 ① 结构 ② 初始化 ③ 打印 ④ 插入数据 ⑤ 删除数据 ⑥ 查找数据 ⑦ 在pos位置之前插入数据 ⑧ 删除pos位置的数据 ⑨ 销毁链表 总结 链表的分类 虽然有这么多的链表的结构&#xff0c;但是我们实际中最常⽤还是两种结构&…...

Spring Boot使用JDK 21虚拟线程

JDK 21引入的虚拟线程&#xff08;Virtual Threads&#xff09;是 Project Loom 的一部分&#xff0c;旨在显著简化并发编程并提高 Java 应用的可扩展性。以下是虚拟线程的主要特点&#xff1a; 1. 概念 虚拟线程是轻量级线程&#xff0c;与传统的操作系统线程不同&#xff0…...

24/11/29 Vite

安装nodejs 直接下一步 node.js中自带NPM包(管理js库文件)管理工具 测试NPM命令 npm -v 检查版本 npm config set registry https://registry.npmmirror.com 设置远程仓库 2.安装vite vite是前端服务的工具集 vue团队主持开发 Vite 官网 使用vite安装命令 这个命令是安…...

黑马2024AI+JavaWeb开发入门Day04-SpringBootWeb入门-HTTP协议-分层解耦-IOCDI飞书作业

视频地址&#xff1a;哔哩哔哩 讲义作业飞书地址&#xff1a;day04作业&#xff08;IOC&DI&#xff09; 作业很简单&#xff0c;主要是练习拆分为三层架构controller、service、dao&#xff0c;并基于IOC & DI进行解耦。 1、结构&#xff1a; 2、代码 网盘链接&…...

[Unity] Inputfield光标移动到最后(不选中内容)

经过测试&#xff0c;要用Inputfield实现光标末尾显示但不选中内容非常麻烦&#xff0c;要么会选中全部&#xff0c;要么采用下面这种延迟显示&#xff0c;但会有明显的变化中间过程&#xff1a; protected override void OnPanelEnter() {// 先激活输入框&#xff08;这里的I…...

实践五 网络安全防范技术

1 实践内容 1.1 安全防范 为了保障"信息安全金三角"的CIA属性、即机密性、完整性、可用性&#xff0c;信息安全领域提出了一系列安全模型。其中动态可适应网络安全模型基于闭环控制理论&#xff0c;典型的有PDR和P^2DR模型。 1.1.1 PDR模型 信息系统的防御机制能抵抗…...

Spring Web开发注解和请求(1)

大家好我是小帅&#xff0c;今天我们来学习Spring Web MVC框架&#xff08;入门级&#xff09; 文章目录 1. 什么是 Spring Web MVC&#xff1f;1.1 MVC 定义1.2 什么是Spring MVC ? 2. 学习Spring MVC2.1 建⽴连接第一个spring MVC程序 3. web开发注解的解释3.1RestControlle…...

设计模式-适配器模式-注册器模式

设计模式-适配器模式-注册器模式 适配器模式 如果开发一个搜索中台&#xff0c;需要适配或接入不同的数据源&#xff0c;可能提供的方法参数和平台调用的方法参数不一致&#xff0c;可以使用适配器模式 适配器模式通过封装对象将复杂的转换过程隐藏于幕后。 被封装的对象甚至…...

保持角色一致性!flux新模型redux用法(含模型与工作流)

​ 目录 redux模型是什么&#xff0c;能干啥&#xff1f; 用到的工具有哪些&#xff1f; 工具和模型文件在哪里下载&#xff1f; 整合包&#xff1a; 下载后需要分别放到指定目录&#xff1a; redux模型怎么用&#xff1f; 加载工作流 上传图片和输入提示词 生成结果…...

点云3DHarris角点检测算法推导

先回顾2D的Harris角点检测算法推导 自相关矩阵是Harris角点检测算法的核心之一&#xff0c;它通过计算图像局部区域的梯度信息来描述该区域的特征。在推导Harris角点检测算法中的自相关矩阵时&#xff0c;我们首先需要了解自相关矩阵的基本思想和数学背景。 参考 1. 能量函数…...

ASUS/华硕天选5Pro酷睿版 FX607J 原厂Win11 22H2系统 工厂文件 带ASUS Recovery恢复

华硕工厂文件恢复系统 &#xff0c;安装结束后带隐藏分区&#xff0c;一键恢复&#xff0c;以及机器所有驱动软件。 系统版本&#xff1a;windows11 原厂系统下载网址&#xff1a;http://www.bioxt.cn 需准备一个20G以上u盘进行恢复 请注意&#xff1a;仅支持以上型号专用…...

CentOS修改yum.repos.d源,避免“Could not resolve host: mirrorlist.centos.org”错误

1、问题现象 由于CentOS停止维护&#xff0c;mirrorlist.centos.org网站也关闭不可访问。导致CentOS默认配置的yum.repos.d源也不可用&#xff0c;所以执行yum命令会报“Could not resolve host: mirrorlist.centos.org”错误。具体如下&#xff1a; Could not retrieve mirror…...

rest-assured multiPart上传中文名称文件,文件名乱码

rest-assured是一个基于java语言的REST API测试框架&#xff0c;在使用rest-assured的multipart 上传文件后&#xff0c;后端获取的文件名称乱码。截图如下&#xff1a; 原因是rest-assured multipart/form-data默认的编码格式是US-ASCII&#xff0c;需要设置为UTF-8。 Befo…...

Springfox迁移到 Springdoc OpenAPI 3

将项目从 Springfox 迁移到 Springdoc OpenAPI 3 时&#xff0c;主要的工作是将原先使用的 Springfox 注解替换为 Springdoc OpenAPI 3 中的对应注解。虽然 Springdoc OpenAPI 3 基于 OpenAPI 3 规范&#xff0c;并且有一些不同的命名方式和设计理念&#xff0c;但大部分注解的…...

基于Java Springboot考研论坛系统

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据库&#xff1a;…...

性别需不需要加索引?

1. 什么是索引&#xff1f; 索引就像一本书的目录&#xff0c;能够帮助数据库快速定位到特定的数据&#xff0c;减少扫描的工作量。使用索引的前提是能够有效缩小查询范围&#xff0c;否则索引的存在可能并不带来性能提升。 使用索引有额外的开销&#xff1a; 索引需要额外的…...

Subprocess 和 Multiprocessing 的区别与使用要点及进程关闭方法

Subprocess 和 Multiprocessing 的区别与使用要点及进程关闭方法 最近在使用这两个库比较多&#xff0c;所以就借此机会记录一下这两个库的使用方式 一、Subprocess 和 Multiprocessing 的区别 1. 功能目标不同 Subprocess&#xff1a;主要用于在 Python 程序中启动外部程序…...

美国网络安全态势感知(4):威胁情报发展现状

美国政府依托其不断发展完善的威胁情报共享技术&#xff0c;构建了名为“网络天气地图”的威胁情报管理体系&#xff0c;如下图所示&#xff1a; “网络天气地图”的威胁情报管理体系运行过程以及每个过程中的关键信息如下所述&#xff1a; 通过国家网络安全保护系统与互联网中…...

【VRChat 改模】开发环境搭建:VCC、VRChat SDK、Unity 等环境配置

一、配置 Unity 相关 1.下载 UnityHub 下载地址&#xff1a;https://unity.com/download 安装打开后如图所示&#xff1a; 2.下载 VRChat 官方推荐版本的 Unity 跳转界面&#xff08;VRChat 官方推荐页面&#xff09;&#xff1a;https://creators.vrchat.com/sdk/upgrade/…...

android将pcm byte[]通过Librtmp进行rtmp推流

需求 我们这边做的功能是智能戒指&#xff0c;戒指可以录音&#xff0c;然后app通过蓝牙连接&#xff0c;将音频的byte[]进行rtmp推流 技术 因为我们不涉及直播&#xff0c;也不涉及视频&#xff0c;工期也比较短&#xff0c;只是音频推流&#xff0c;所以没用更复杂的ffmpe…...

宠物领养技术:SpringBoot框架应用

摘 要 如今社会上各行各业&#xff0c;都在用属于自己专用的软件来进行工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。互联网的发展&#xff0c;离不开一些新的技术&#xff0c;而新技术的产生往往是为了解决现有问题而产生的。针对于宠物领养…...

【前端】跨域问题与缓存

报错如下&#xff1a; 原因&#xff1a; 浏览器 缓存跨域&#xff0c;顾名思义是由于浏览器的缓存机制导致的一种跨域情况。这种跨域一般会出现在浏览器通过一些无视跨域的标签和css(如img、background-image)缓存了一些图片资源之后&#xff0c;当再次发起图片请求时&#xff…...

DepthAI 2.29版本 发布

2024年11月29日 增加在设备运行时使用新的 dai::Device.setCalibration() 更改设备校准能力的方法&#xff0c;并使用 dai::Device.getCalibration() 进行检索校准 1&#x1f343; 新的立体深度预设属性&#xff1a; 预设 面部 高细节 机器人 2&#x1f343; 多项摄像…...

C7.5【x86汇编】底层分析范围for的执行过程

目录 1.反汇编代码 2.分析 1.栈区初始化 2.设置数组元素的值 3. 逐条分析范围for 1.arr的地址被放到[ebp-2Ch]处 2.[ebp-2Ch]指向的值被复制一份到[ebp-30h]处 3.eax暂存[ebp-2Ch]指向的值,加28h后存储到[ebp-34h]处 4.跳转指令 5.比较[ebp-30h]和[ebp-34h]指向的值,…...

你听说过MIPS吗?它和ARM有何区别?

探索MX2000-B BGA核心版为何选用MIPS指令集的君正X2000处理器&#xff0c;MIPS相较于ARM有哪方面优势&#xff1f; 前段时间ZLG致远电子推出了MX2000-B BGA核心版&#xff0c;这款产品的核心芯片搭载了基于MIPS指令集的君正X2000处理器。有些工程师对于MIPS不怎么了解&#xff…...

SQL面试50题 数据库准备(存储过程)

数据表关系图 数据表 CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT,name varchar(255) NOT NULL,sex enum(female,male) NOT NULL,birth date NOT NULL,credit float(5,2) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT25 DEFAULT CHARSETutf8;…...

Github 基本使用学习笔记

1. 基本概念 1.1 一些名词 Repository&#xff08;仓库&#xff09; 用来存放代码&#xff0c;每个项目都有一个独立的仓库。 Star&#xff08;收藏&#xff09; 收藏你喜欢的项目&#xff0c;方便以后查看。 Fork&#xff08;克隆复制项目&#xff09; 复制别人的仓库&…...

react + vite 中的环境变量怎么获取

一、Vite 环境变量基础 创建一个.env文件&#xff0c;Vite 定义的环境变量需要以VITE_开头。 VITE_API_URL "http://localhost:3000/api" 生产模式创建.env.production。 VITE_API_URL "https://production-api-url.com/api" 二、在 React 组件中获…...

leetcode hot100【 LeetCode 54.螺旋矩阵】java实现

LeetCode 54.螺旋矩阵 题目描述 给定一个 m x n 的矩阵&#xff0c;返回其元素按照螺旋顺序的数组。 示例 1: 输入: [[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ] ]输出: [1, 2, 3, 6, 9, 8, 7, 4, 5]示例 2: 输入: [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12] ]输出: [1, …...

Axios与FastAPI结合:构建并请求用户增删改查接口

在现代Web开发中&#xff0c;FastAPI以其高性能和简洁的代码结构成为了构建RESTful API的热门选择。而Axios则因其基于Promise的HTTP客户端特性&#xff0c;成为了前端与后端交互的理想工具。本文将介绍FastAPI和Axios的结合使用&#xff0c;通过一个用户增删改查&#xff08;C…...

插入排序算法

一、基本思想 插入排序通过构建有序序列&#xff0c;对于未排序的数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。它重复这个过程直到所有数据都被处理过。 二、示例 public class InsertionSort {public static void main(String[] args) {in…...

如何启动 Docker 服务:全面指南

如何启动 Docker 服务:全面指南 一、Linux 系统(以 Ubuntu 为例)二、Windows 系统(以 Docker Desktop 为例)三、macOS 系统(以 Docker Desktop for Mac 为例)四、故障排查五、总结Docker,作为一种轻量级的虚拟化技术,已经成为开发者和运维人员不可或缺的工具。它允许用…...

摄影相关常用名词

本文介绍与摄影相关的常用名词。 曝光 Exposure 感光元件接收光线的过程&#xff0c;决定图像的明暗程度和细节表现。 光圈 Aperture 控制镜头进光量的孔径大小&#xff0c;用 F 值&#xff08;f-stop&#xff09; 表示。 光圈越大&#xff08;F 值越小&#xff09;&#xff0c…...

kafka消费者组和分区数之间的关系是怎样的?

消费者组和分区数之间的关系决定了Kafka中消息的消费方式和负载均衡。合理配置分区数和消费者数量对于优化Kafka的性能和资源利用率至关重要。以下是这种关系的几个关键点&#xff1a; 一个分区只能被同一组的一个消费者消费&#xff1a;这是为了保证消息的顺序性。在同一个消费…...

【num_groups、 groups、init_filters以及归一化的选择】

目录 省流总结&#xff1a;一、num_groups与 groups的关系1. num_groups在代码中的作用(1) 定义(2) num_groups的值的不同影响1. 每组的通道数量&#xff1a;2. 计算效率&#xff1a;3. 对模型表现的影响&#xff1a;4. 对分割任务的影响&#xff1a;5. 训练稳定性&#xff1a;…...

Java设计模式——职责链模式:解锁高效灵活的请求处理之道

嘿&#xff0c;各位 Java 编程大神和爱好者们&#xff01;今天咱们要一同深入探索一种超厉害的设计模式——职责链模式。它就像一条神奇的“处理链”&#xff0c;能让请求在多个对象之间有条不紊地传递&#xff0c;直到找到最合适的“处理者”。准备好跟我一起揭开它神秘的面纱…...

ubuntu20配置mysql注意事项

目录 一、mysql安装 二、初始化配置密码 三、配置文件的位置 四、常用的mysql命令 五、踩坑以及解决方法 一、mysql安装 1.更新apt源 sudo apt update 2.安装mysql服务 sudo apt-get install mysql-server 3.初始化配置 sudo mysql_secure_installation 4.配置项 VALI…...

JDBC 设置 PostgreSQL 查询中 any(?) 的参数

这段时间都纠缠于 Java 如何操作 PostgreSQL 数据库上&#xff0c;千方百计的为求得更好的性能。为此我们用上了 Batch, 或用 id any(?) 这种更 PostgreSQL 化的数组参数操作。其实它还有更多数组方面的花样可以玩&#xff0c;毕竟 PostgreSQL 数据库有一种广纳百川的胸怀&am…...

论文笔记(五十七)Diffusion Model Predictive Control

Diffusion Model Predictive Control 文章概括摘要1. Introduction2. Related work3. 方法3.1 模型预测控制3.2. 模型学习3.3. 规划&#xff08;Planning&#xff09;3.4. 适应 4. 实验&#xff08;Experiments&#xff09;4.1. 对于固定奖励&#xff0c;D-MPC 可与其他离线 RL…...

【在Linux世界中追寻伟大的One Piece】多线程(三)

目录 1 -> Linux线程同步 1.1 -> 条件变量 1.2 -> 同步概念与竞态条件 1.3 -> 条件变量函数 1.4 -> 为什么pthread_cond_wait需要互斥量 1.5 -> 条件变量使用规范 2 -> 生产者消费者模型 2.1 -> 为什么要使用生产者消费者模型 2.2 -> 生产…...

eBay 基于 Celeborn RESTful API 进行自动化工具集成实践

作者&#xff1a;王斐&#xff0c;ebay Hadoop 团队软件工程师&#xff0c;Apache Kyuubi PMC member&#xff0c;Apache Celeborn Committer。 简介&#xff1a;Apache Celeborn 是一个统一的大数据中间服务&#xff0c;致力于提高不同MapReduce引擎的效率和弹性。为了Spark …...