网站做营利性广告需要什么备案/月入百万的游戏代理

网站做营利性广告需要什么备案,月入百万的游戏代理,二手东西网站怎么做,建设局电话号码是多少Kubernetes 单节点集群搭建教程 本人尝试基于Ubuntu搭建一个单节点K8S集群,其中遇到各种问题,最大的问题就是网络,各种镜像源下载不下来,特此记录!注意:文中使用了几个镜像,将看来可能失效导致安…

Kubernetes 单节点集群搭建教程

本人尝试基于Ubuntu搭建一个单节点K8S集群,其中遇到各种问题,最大的问题就是网络,各种镜像源下载不下来,特此记录!注意:文中使用了几个镜像,将看来可能失效导致安装失败,但安装的逻辑不变可以自行寻找可以用的镜像。文末附上一个无脑脚本,保存为 xx.sh 直接bash 执行即可。

前置条件

  1. 操作系统:Ubuntu 20.04 或更高版本。
  2. 硬件要求
    • 至少 2 核 CPU 和 10GB 内存。
  3. 网络环境:确保服务器可以访问互联网。
  4. 权限:以 root 用户或使用 sudo 运行以下命令。

步骤 1:更新系统并安装必要工具

# 更新系统包
apt-get update && apt-get upgrade -y# 安装必要的工具
apt-get install -y curl apt-transport-https ca-certificates software-properties-common

步骤 2:安装和配置 containerd

apt-get install -y containerd
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
systemctl restart containerd

步骤 3:安装 crictl 工具

CRITCL_VERSION="v1.28.0"
curl -L https://github.moeyy.xyz/https://github.com/kubernetes-sigs/cri-tools/releases/download/$CRITCL_VERSION/crictl-${CRITCL_VERSION}-linux-amd64.tar.gz --output crictl-${CRITCL_VERSION}-linux-amd64.tar.gz
tar -xzvf crictl-${CRITCL_VERSION}-linux-amd64.tar.gz -C /usr/local/bin
rm -f crictl-${CRITCL_VERSION}-linux-amd64.tar.gz
cat <<EOF | tee /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF

步骤 4:配置 containerd 使用阿里云沙箱镜像

if ! grep -q "sandbox_image = \"registry.aliyuncs.com/google_containers/pause:3.9\"" /etc/containerd/config.toml; thensed -i 's|sandbox_image = .*|sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"|' /etc/containerd/config.toml
fi
systemctl restart containerd

步骤 5:清理现有 Kubernetes 集群(如果存在)

systemctl stop kubelet || true
systemctl disable kubelet || true
kubeadm reset -f
rm -rf /etc/kubernetes/* /var/lib/kubelet/* /etc/cni/net.d/*
crictl ps -q | xargs -r crictl rm -f || true
crictl images -q | xargs -r crictl rmi -f || true

步骤 6:加载内核模块并启用 IP 转发

modprobe br_netfilter
echo "br_netfilter" | tee -a /etc/modules-load.d/modules.conf
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward=1" | tee -a /etc/sysctl.conf
sysctl -p

步骤 7:添加 Kubernetes 国内镜像源并安装组件

cat <<EOF | tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
apt-get update
apt-get install -y kubelet=1.28.0-00 kubeadm=1.28.0-00 kubectl=1.28.0-00
apt-mark hold kubelet kubeadm kubectl

步骤 8:关闭 swap 分区

swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

步骤 9:初始化 Kubernetes 集群

kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

步骤 10:安装 Flannel 网络插件

MIRROR_SOURCE="ghcr.monlor.com"
crictl pull ${MIRROR_SOURCE}/flannel-io/flannel:v0.26.4
ctr -n k8s.io images tag ${MIRROR_SOURCE}/flannel-io/flannel:v0.26.4 ghcr.io/flannel-io/flannel:v0.26.4
crictl pull ${MIRROR_SOURCE}/flannel-io/flannel-cni-plugin:v1.6.2-flannel1
ctr -n k8s.io images tag ${MIRROR_SOURCE}/flannel-io/flannel-cni-plugin:v1.6.2-flannel1 ghcr.io/flannel-io/flannel-cni-plugin:v1.6.2-flannel1
FLANNEL_YAML="https://github.moeyy.xyz/https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml"
curl -L $FLANNEL_YAML | kubectl apply -f -

步骤 11:验证集群状态

kubectl get nodes
kubectl get pods --all-namespaces

大功告成!

单节点调度需去除污点

kubectl taint nodes --all node-role.kubernetes.io/control-plane-

无脑脚本

#!/bin/bash# 设置脚本退出条件:任何命令失败则退出
set -e# 定义颜色变量,方便输出日志
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color# 打印信息函数
log_info() {echo -e "${GREEN}[INFO] $1${NC}"
}log_warn() {echo -e "${YELLOW}[WARN] $1${NC}"
}log_error() {echo -e "${RED}[ERROR] $1${NC}"exit 1
}# 检查是否以 root 用户运行
if [ "$EUID" -ne 0 ]; thenlog_error "请以 root 用户或使用 sudo 运行此脚本。"
fi# 更新系统包(仅在未更新时执行)
if ! grep -q "Last update" /var/log/apt/history.log 2>/dev/null || [ $(($(date +%s) - $(stat -c %Y /var/log/apt/history.log))) -gt 86400 ]; thenlog_info "更新系统包..."apt-get update && apt-get upgrade -y
elselog_warn "系统包已更新,跳过此步骤。"
fi# 安装必要的工具(仅在未安装时执行)
if ! dpkg -l | grep -q "curl"; thenlog_info "安装必要的工具(curl、apt-transport-https等)..."apt-get install -y curl apt-transport-https ca-certificates software-properties-common
elselog_warn "必要的工具已安装,跳过此步骤。"
fi# 安装 containerd(仅在未安装时执行)
if ! dpkg -l | grep -q "containerd"; thenlog_info "安装 containerd..."apt-get install -y containerd
elselog_warn "containerd 已安装,跳过此步骤。"
fi# 配置 containerd(仅在未配置时执行)
if [ ! -f /etc/containerd/config.toml ]; thenlog_info "配置 containerd..."mkdir -p /etc/containerdcontainerd config default > /etc/containerd/config.tomlsed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.tomlsystemctl restart containerd
elselog_warn "containerd 已配置,跳过此步骤。"
fi# 定义 crictl 下载 URL
CRITCL_VERSION="v1.28.0"
ACCELERATED_CRITCL_URL="https://github.moeyy.xyz/https://github.com/kubernetes-sigs/cri-tools/releases/download/$CRITCL_VERSION/crictl-${CRITCL_VERSION}-linux-amd64.tar.gz"# 安装 crictl 工具(仅在未安装时执行)
if ! command -v crictl &> /dev/null; thenlog_info "安装 crictl 工具..."# 尝试从加速镜像源下载if ! curl -L $ACCELERATED_CRITCL_URL --output crictl-${CRITCL_VERSION}-linux-amd64.tar.gz; thenlog_error "无法从加速镜像源下载 crictl,请检查网络或手动下载并安装。"fi# 解压并安装 crictltar -xzvf crictl-${CRITCL_VERSION}-linux-amd64.tar.gz -C /usr/local/binrm -f crictl-${CRITCL_VERSION}-linux-amd64.tar.gz
elselog_warn "crictl 已安装,跳过此步骤。"
fi# 配置 crictl(仅在未配置时执行)
if [ ! -f /etc/crictl.yaml ]; thenlog_info "配置 crictl..."cat <<EOF | tee /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF
elselog_warn "crictl 已配置,跳过此步骤。"
fi# 配置 containerd 使用阿里云的沙箱镜像
log_info "配置 containerd 使用阿里云的沙箱镜像..."# 修改 containerd 配置文件
if ! grep -q "sandbox_image = \"registry.aliyuncs.com/google_containers/pause:3.9\"" /etc/containerd/config.toml; then# 备份原始配置文件cp /etc/containerd/config.toml /etc/containerd/config.toml.bak# 修改配置文件,设置 sandbox_imagesed -i 's|sandbox_image = .*|sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"|' /etc/containerd/config.toml# 如果配置文件中不存在 sandbox_image,则直接添加if ! grep -q "sandbox_image" /etc/containerd/config.toml; thenecho 'sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"' >> /etc/containerd/config.tomlfilog_info "已配置 containerd 使用阿里云的沙箱镜像。"
elselog_warn "containerd 已配置为使用阿里云的沙箱镜像,跳过此步骤。"
fi# 重启 containerd 服务以应用更改
systemctl restart containerd## 检测是否需要清理现有集群
if [ -f /etc/kubernetes/admin.conf ] || systemctl is-active --quiet kubelet; thenlog_info "检测到已存在的 Kubernetes 集群,开始清理..."# 停止并禁用 kubelet 服务log_info "停止并禁用 kubelet 服务..."systemctl stop kubelet || truesystemctl disable kubelet || true# 重置 kubeadm 集群log_info "重置 kubeadm 集群..."kubeadm reset -f# 清理所有 Kubernetes 相关进程log_info "清理所有 Kubernetes 相关进程..."pkill -f kube-apiserver || truepkill -f kube-controller-manager || truepkill -f kube-scheduler || truepkill -f etcd || truepkill -f kubelet || true# 删除 /etc/kubernetes 目录log_info "删除 /etc/kubernetes 目录..."rm -rf /etc/kubernetes/*# 删除 /var/lib/kubelet 目录log_info "删除 /var/lib/kubelet 目录..."rm -rf /var/lib/kubelet/*# 清理 CNI 配置文件log_info "清理 CNI 配置文件..."rm -rf /etc/cni/net.d/*# 清理 containerd 中的残留容器和镜像log_info "清理所有容器..."crictl ps -q | xargs -r crictl rm -f || truelog_info "清理所有镜像..."crictl images -q | xargs -r crictl rmi -f || truelog_info "Kubernetes 集群清理完成,准备重新初始化。"
elselog_warn "未检测到已存在的 Kubernetes 集群,无需清理。"
fi# 加载 br_netfilter 内核模块并启用 IP 转发
log_info "加载 br_netfilter 内核模块并启用 IP 转发..."# 加载 br_netfilter 模块
if ! lsmod | grep -q "br_netfilter"; thenmodprobe br_netfilterlog_info "已加载 br_netfilter 模块。"
elselog_warn "br_netfilter 模块已加载,跳过此步骤。"
fi# 确保 br_netfilter 模块在系统启动时自动加载
if ! grep -q "br_netfilter" /etc/modules-load.d/modules.conf; thenecho "br_netfilter" | tee -a /etc/modules-load.d/modules.conflog_info "已配置 br_netfilter 模块开机自动加载。"
elselog_warn "br_netfilter 模块已配置为开机自动加载,跳过此步骤。"
fi# 启用 IPv4 转发
if [ "$(cat /proc/sys/net/ipv4/ip_forward)" != "1" ]; thenecho "1" > /proc/sys/net/ipv4/ip_forwardlog_info "已启用 IPv4 转发。"
elselog_warn "IPv4 转发已启用,跳过此步骤。"
fi# 确保 IPv4 转发配置在系统重启后仍然生效
if ! grep -q "net.ipv4.ip_forward=1" /etc/sysctl.conf; thenecho "net.ipv4.ip_forward=1" | tee -a /etc/sysctl.conflog_info "已配置 IPv4 转发开机生效。"
elselog_warn "IPv4 转发已配置为开机生效,跳过此步骤。"
fi# 应用 sysctl 配置
sysctl -p# 添加 Kubernetes 国内镜像源(仅在未添加时执行)
if [ ! -f /etc/apt/sources.list.d/kubernetes.list ]; thenlog_info "添加 Kubernetes 阿里云镜像源..."cat <<EOF | tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOFcurl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -apt-get update
elselog_warn "Kubernetes 镜像源已添加,跳过此步骤。"
fi# 安装 kubeadm、kubelet 和 kubectl(仅在未安装时执行)
if ! dpkg -l | grep -q "kubeadm"; thenlog_info "安装 Kubernetes 1.28..."apt-get install -y kubelet=1.28.0-00 kubeadm=1.28.0-00 kubectl=1.28.0-00apt-mark hold kubelet kubeadm kubectl
elselog_warn "Kubernetes 组件已安装,跳过此步骤。"
fi# 关闭 swap 分区(仅在未关闭时执行)
if swapon --show | grep -q "/dev/"; thenlog_info "关闭 swap 分区..."swapoff -ased -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
elselog_warn "swap 分区已关闭,跳过此步骤。"
fi# 配置 kubelet 使用国内镜像源(仅在未配置时执行)
if ! grep -q "registry.aliyuncs.com/google_containers" /etc/systemd/system/kubelet.service.d/20-aliyun.conf 2>/dev/null; thenlog_info "配置 kubelet 使用国内镜像源..."cat <<EOF | tee /etc/systemd/system/kubelet.service.d/20-aliyun.conf
[Service]
Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=systemd --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9"
EOFsystemctl daemon-reloadsystemctl restart kubelet
elselog_warn "kubelet 已配置为使用国内镜像源,跳过此步骤。"
fi# 初始化 Kubernetes 集群(仅在未初始化时执行)
if ! kubectl get nodes 2>/dev/null | grep -q "Ready"; thenlog_info "初始化 Kubernetes 集群..."# 清理现有集群log_info "清理现有 Kubernetes 集群..."kubeadm reset -frm -rf /etc/kubernetes/*rm -rf /var/lib/kubelet/*rm -rf /etc/cni/net.d/*crictl ps -q | xargs -r crictl rm -f || truecrictl images -q | xargs -r crictl rmi -f || true# 删除用户的 kubeconfig 文件if [ -f $HOME/.kube/config ]; thenlog_info "删除用户的 kubeconfig 文件..."rm -f $HOME/.kube/configfikubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers# 配置 kubectllog_info "配置 kubectl..."mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config
elselog_warn "Kubernetes 集群已初始化,跳过此步骤。"
fi# 设置镜像源变量
MIRROR_SOURCE="ghcr.monlor.com"# 提前拉取并标记 Flannel 镜像
log_info "提前拉取并标记 Flannel 镜像..."# 拉取 Flannel 主镜像
if ! crictl images | grep -q "${MIRROR_SOURCE}/flannel-io/flannel"; thenlog_info "拉取 Flannel 主镜像..."crictl pull ${MIRROR_SOURCE}/flannel-io/flannel:v0.26.4
elselog_warn "Flannel 主镜像已存在,跳过此步骤。"
fi# 重新标记 Flannel 主镜像
if ! ctr -n k8s.io images list | grep -q "ghcr.io/flannel-io/flannel:v0.26.4"; thenlog_info "重新标记 Flannel 主镜像..."ctr -n k8s.io images tag ${MIRROR_SOURCE}/flannel-io/flannel:v0.26.4 ghcr.io/flannel-io/flannel:v0.26.4
elselog_warn "Flannel 主镜像已标记,跳过此步骤。"
fi# 拉取 Flannel CNI 插件镜像
if ! crictl images | grep -q "${MIRROR_SOURCE}/flannel-io/flannel-cni-plugin"; thenlog_info "拉取 Flannel CNI 插件镜像..."crictl pull ${MIRROR_SOURCE}/flannel-io/flannel-cni-plugin:v1.6.2-flannel1
elselog_warn "Flannel CNI 插件镜像已存在,跳过此步骤。"
fi# 重新标记 Flannel CNI 插件镜像
if ! ctr -n k8s.io images list | grep -q "ghcr.io/flannel-io/flannel-cni-plugin:v1.6.2-flannel1"; thenlog_info "重新标记 Flannel CNI 插件镜像..."ctr -n k8s.io images tag ${MIRROR_SOURCE}/flannel-io/flannel-cni-plugin:v1.6.2-flannel1 ghcr.io/flannel-io/flannel-cni-plugin:v1.6.2-flannel1
elselog_warn "Flannel CNI 插件镜像已标记,跳过此步骤。"
fi# 安装 Flannel 网络插件(仅在未安装时执行)
if ! kubectl get pods -n kube-system | grep -q "kube-flannel"; thenlog_info "安装 Flannel 网络插件..."# 使用原始地址下载 Flannel 配置文件FLANNEL_YAML="https://github.moeyy.xyz/https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml"# 下载并应用配置文件curl -L $FLANNEL_YAML | kubectl apply -f -
elselog_warn "Flannel 网络插件已安装,跳过此步骤。"
fi# 等待所有系统 Pod 启动
log_info "等待所有系统 Pod 启动..."
sleep 10# 检查节点状态
log_info "检查节点状态..."
kubectl get nodes# 检查 Pod 状态
log_info "检查 Pod 状态..."
kubectl get pods --all-namespaceslog_info "Kubernetes 单节点集群已成功搭建!"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

专题三0~n-1中缺失的数字

1.题目 给一个数组&#xff0c;单调性是递增的&#xff0c;需要找到缺失的数字&#xff0c;加上这个数字就变为等差数组了。 2.算法原理 这里用二分来解决&#xff0c;而二段性是根据下标区分&#xff0c;临界值前的数字于下标相对应&#xff0c;临界值后的于下标相差1&#x…

【图像处理】ISP(Image Signal Processor) 图像处理器的用途和工作原理?

ISP&#xff08;图像信号处理器&#xff09;是数字影像设备的“视觉大脑”&#xff0c;负责将传感器捕获的原始电信号转化为我们看到的高清图像。以下从用途和工作原理两方面通俗解析&#xff1a; 一、ISP的核心用途&#xff1a;让照片“更像眼睛看到的” 提升画质&#xff1a…

python学习笔记-mysql数据库操作

现有一个需求&#xff0c;调用高德api获取全国县级以上行政区数据并保存为json文件&#xff0c;使用python获取&#xff1a; import requests import json# 高德API Key api_key "your_api_key"# 调用行政区域查询API def fetch_districts():url f"https://r…

Redisson 实现分布式锁源码浅析

大家好&#xff0c;我是此林。 今天来分享Redisson分布式锁源码。还是一样&#xff0c;我们用 问题驱动 的方式展开讲述。 1. redis 中如何使用 lua 脚本&#xff1f; Redis内置了lua解释器&#xff0c;lua脚本有两个好处&#xff1a; 1. 减少多次Redis命令的网络传输开销。…

【软件】免费的PDF全文翻译软件,能保留公式图表的样式

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 很多PDF全文翻译软件都是收费的&#xff0c;而划线翻译看着又很累。这个开源的PDF全文翻译软件非常好用&#xff0c;并且能够保留公式、图表、目录和注…

PentestGPT 下载

PentestGPT 下载 PentestGPT 介绍 PentestGPT&#xff08;Penetration Testing GPT&#xff09;是一个基于大语言模型&#xff08;LLM&#xff09;的智能渗透测试助手。它结合了 ChatGPT&#xff08;或其他 GPT 模型&#xff09;与渗透测试工具&#xff0c;帮助安全研究人员自…

防火墙虚拟系统实验

一实验拓扑 二实验过程 配置资源 创建虚拟系统 配置管理员 创建安全策略

Linux与深入HTTP序列化和反序列化

深入HTTP序列化和反序列化 本篇介绍 在上一节已经完成了客户端和服务端基本的HTTP通信&#xff0c;但是前面的传递并没有完全体现出HTTP的序列化和反序列化&#xff0c;为了更好得理解其工作流程&#xff0c;在本节会以更加具体的方式分析到HTTP序列化和反序列化 本节会在介绍…

基于Python+SQLite实现(Web)验室设备管理系统

实验室设备管理系统 应用背景 为方便实验室进行设备管理&#xff0c;某大学拟开发实验室设备管理系统 来管理所有实验室里的各种设备。系统可实现管理员登录&#xff0c;查看现有的所有设备&#xff0c; 增加设备等功能。 开发环境 Mac OSPyCharm IDEPython3Flask&#xff…

深拷贝and浅拷贝!

一、什么是拷贝&#xff1f;什么是深拷贝和浅拷贝&#xff1f; &#xff08;1&#xff09;拷贝&#xff1a;拷贝就是为了复用原对象的部分or全部数据&#xff0c;在原对象的基础上通过复制的方式创建一个新的对象。 拷贝对象可以分为三种类型&#xff1a;直接赋值、浅拷贝和深拷…

高频面试题(含笔试高频算法整理)基本总结回顾43

干货分享&#xff0c;感谢您的阅读&#xff01; &#xff08;暂存篇---后续会删除&#xff0c;完整版和持续更新见高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09;&#xff09; 备注&#xff1a;引用请标注出处&#xff0c;同时存在的问题请在相关博客留言…

网络爬虫【简介】

我叫补三补四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲视图 一、网络爬虫的定义 网络爬虫&#xff08;Web Crawler&#xff09;&#xff0c;又称为网络蜘蛛、网络机器人等&#xff0c;是一种按照一定规则自动抓取互联网信息的程序或脚本。它…

​AI时代到来,对电商来说是效率跃升,还是温水煮青蛙

​凌晨三点的义乌商贸城&#xff0c;95后创业者小王&#xff0c;静静地盯着屏幕上的AI工具&#xff0c;竟露出了笑容。这个月他的跨境玩具店销量提升了不少&#xff0c;从之前的状态翻了3倍&#xff1b;而且团队人数有所变化&#xff0c;从5人缩减到了2人&#xff08;其中包括他…

PDF文件密码保护破解:安全解密的步骤与技巧

PDF文件加密后&#xff0c;需要特定的密码才能访问内容。以下是一些常见的方法来解密PDF文件&#xff1a; 方法一&#xff1a;使用Adobe Acrobat 如果你有Adobe Acrobat Pro&#xff0c;可以使用它来解密PDF文件。 打开Adobe Acrobat Pro&#xff1a; 启动Adobe Acrobat Pro…

qt 自带虚拟键盘的编译使用记录

一、windows 下编译 使用vs 命令窗口&#xff0c;分别执行&#xff1a; qmake CONFIG"lang-en_GB lang-zh_CN" nmake nmake install 如果事先没有 指定需要使用的输入法语言就进行过编译&#xff0c;则需要先 执行 nmake distclean 清理后执行 qmake 才能生效。 …

C++刷题(二):栈 + 队列

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及刷题记录&#xff0c;使用语言为C。 每道题我会给出LeetCode上的题号&#xff08;如果有题号&#xff09;&#xff0c;题目&#xff0c;以及最后通过的代码。没有题号的题目大多来自牛客网。对于题目的…

精通游戏测试笔记(持续更新)

第一章、游戏测试的两条规则 不要恐慌 不要将这次发布当作最后一次发布 不要相信任何人 把每次发布当作最后一次发布 第二章&#xff1a;成为一名游戏测试工程师

Windows功能之FTP服务器搭建

一、创作背景 之前有用linux系统搭建过ftp服务器&#xff0c;最近想着用windows系统也顺便搭建一个&#xff0c;看网上有第三方服务软件一键部署&#xff0c;记得windows可以不借助第三方软件就可以搭建&#xff0c;就想顺便操作试试&#xff0c;结果老是连接不上&#xff0c;费…

星型组网模块的两种交互方式优缺点解析

星型组网模块简介 星型组网模块工作在433MHz频段&#xff1b;星型组网模块集主机&#xff08;协调器&#xff09;、终端为一体&#xff0c;星型组网模块具有长距离、高速率两种传输模式&#xff0c;一个主机&#xff08;协调器&#xff09;支持多达200个节点与其通讯&#xff0…

【2025.3.13】记一次双系统笔记本加装固态硬盘记录 linux扩容 linux更换/home和/opt所在硬盘 windows无法调整亮度

文章目录 &#x1f315;事情经过&#x1f315;更换/home和/opt的挂载硬盘&#x1f319;目的&#x1f319;初始化1t固态硬盘&#x1f319;打开Linux查看硬盘信息&#x1f319;给新1t固态硬盘分区&#x1f319;格式化分区&#x1f319;把新1t固态硬盘先挂载到/mnt/ssd_1t 用于后续…