解决 Gentoo 上编译升级 GCC 的报错问题
缘起简而言之咱最近在尝试 Gentoo,在升级 GCC 时碰到了这个问题:
1die "Varying l1-cache-size found, aborting
解决/etc/portage/make.conf 里的编译选项当中默认一般配置编译 flag 中都是 -march=native,从而导致了这个问题的产生,解决方案就是换成自己对应架构的 lake 名,例如 -march=meteorlake。
关闭 Linux 服务器的 sshd 密码登录
Why?密码这种东西终究是容易被爆破和泄漏的( 密码:我要泄了 ),因此比较安全的登录方式通常是配置公钥登录并关闭密码登录。
ssh 密钥生成我们通常可以使用 ssh-keygen 生成密钥对,似乎在 Windows/Linux/macOS 上默认都有这个程序,all 我们 need to 做 is 打开 terminal 然后输入 following 命令:
1ssh-keygen -t 算法 -C "标识符"
以前算法大家默认都用 RSA,但现在一般建议选 ED25519——基于圆锥曲线的加密,这也是 ssh-keygen 现在默认生成的密钥对类型。简而言之现在我们只需要输入如下命令并一路 enter:
1ssh-keygen -t ed25519 -C "example@youremail.com"
然后就会在当前用户目录下的 .ssh 文件夹生成密钥对文件,公钥是 ~/.ssh/id_ed25519.pub ,私钥则是 ~/.ssh/id_ed25519。
现在私钥咱们就先不用管他了,只要保证这个文件不会被泄漏就 ...
阿里云服务器 Docker 更新报错解决
阿里云 docker 更新遇到的问题 & 一些废话很早之前咱就买了一台阿里云服务器,虽然说一直没咋用上,因为日常也没有什么服务需要放在公网上面跑,加之阿里云的轻量服务器的性能一直都是令人诟病的不堪一用的级别,硬盘又小也放不了什么数据,我的博客又是一直寄居在各大互联网服务提供商的服务器上(例如,你现在看到的这个界面,其背后是 Microsoft 旗下的 Github 提供的 Github pages),因此此服务器便一直处于闲置状态。
不过作为一个拥有着公网 IP 的服务器,天天被打 & 天天被各种扫自然是常态了,但是咱并不懂网络安全,也不太知道比较高级的运维和溯源方案,那唯一的给自家服务器增添防御手段的方法便只有每天登录服务器尝试进行系统更新——好吧,咱承认其实只是隔几天登录一次,不过最近碰到了一个奇特的更新报错,报错信息如下:
相信看到这个 Failed to fetch 和 Cannot initiate the connection to 报错的小伙伴们都不难想到问题应该是出现在什么地方,那么对于服务器的肉身处在一个网络环境状况存在一些问题的地方的情况下,咱们该 ...
从源码编译安装 GCC 编译器
背景介绍GCC (GNU C Compiler)是 GNU 这一开源组织开发的编译器,也是目前绝大多数 Linux 发行版所默认使用的编译器。因为最近想简单折腾点乱七八糟的东,所以现在让咱们来看看怎么从源码编译这玩意。
源码下载我们使用 git 便能从官网进行 GCC 源码的拉取,通过如下命令完成,这里注意自行指定本地目标文件夹。
1git clone git://gcc.gnu.org/git/gcc.git your_local_dir
如果需要编译特定版本的 GCC,则只需要 checkout 到指定版本。
1git checkout releases/gcc-13.3.0
安装依赖如果直接开始编译可能会遇到这样的一条报错信息。
1configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+.
需要安装如下依赖,对于 openSUSE Tumbleweed 来说是这几个包,其他发行版请自行查询,不过包名应该都是差不多的,而且互相之间还存在一定的依赖关系(例如在 Ubuntu 上只需要 ...
Leetcode刷题记录-01:two-sum
Leetcode刷题记录-01:two-sum为了锻炼英语能力 + 算法能力咱选择在海外版的 Leetcode 进行练习,下面咱们先来看看题目描述。
DescriptionGiven an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
You may assume that each input would have *exactly* one solution, and you may not use the same element twice.
You can return the answer in any order.
Example 1:
123Input: nums = [2,7,11,15], target = 9Output: [0,1]Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
Example 2:
12I ...
我为什么放弃了 Fedora Silverblue
咱为什么放弃了不可变发行版?这几天用 Fedora Silverblue 可谓是用得心力交瘁,不同于传统发行版的体验,虽然听起来“不可变”的概念还是挺新鲜的,但是真正用起来属实是一坨💩了。
首先是非常奇葩的 flatpak,说实话至少于咱看来其仍不失为一个优雅的设计,但若是作为一个发行版主要的包管理器那就非常猪鼻了,在 flatpak install vim 之后仍不可于终端唤起该程序于咱看来是不可理喻的一件事情。
但令人感到很难绷之事仍未尽于此,安装后的软件无法正常使用更是让人不禁大吼一声“哇袄”,作为 Edge 死忠党,使用 Flatpak 所安装的 Edge 浏览器并不能正常工作(像在其他发行版那样),咱之 Edge in flatpak 经常出现打开网页直接整个卡死随后 CPU 占用率飙升 100% 的情况,这在其他正常的发行版上是不敢想象的。
至于 rpm-ostree ,如果一直使用这玩意安装软件包,那和正常使用 Fedora Workstation 有什么区别呢?
再谈 distrobox ,安装的 vscode 内无法使用中文输入法不说,如果什么都需要 distrob ...
解决 KVM 虚拟机无法联网的问题
问题:KVM虚拟机无法联网简单来说就是咱使用 virt-manager 管理 QEMU/KVM 虚拟机,虚拟机和主机以及虚拟机之间都能够相互 ping 通,但是虚拟机内部却无法上网(Limited Connection)。
解决:修改 /etc/libvirt/network.conf很容易想到是防火墙的问题,所以我们只需要在 /etc/libvirt/network.conf 文件中加上这么一句魔法咒语——
1firewall_backend = "iptables"
之后重启 libvirtd 即可,不知道为什么在 openSUSE Tumbleweed 上这个服务似乎是默认关闭的。
1sudo systemctl restart libvirtd
Fedora Silverblue 初体验
最初的心路历程高考结束之后就开始瞎折腾家里的小破机子,很早就听闻不可变发行版(Immutable Distribution)这个非常炫酷的概念,于是趁着闲暇时间尝试将原本装的 Deepin 更换成了现在的 Fedora Silverblue 40,尝试一下“不可变”的世界是什么样的。
在最初的发行版选择上,我曾将以下的这些发行版纳入考虑(不是一个 tier list):
NixOS:老牌不可变发行版,软件包数量似乎是最为丰富,然而似乎不遵守 Filesystem Hierarchy Standard,使得不少软件需要 patch-ELF 之后才能使用
Fedora Silverblue:由 RedHat 维护的发行版,使用 rpm-ostree 与 flatpak 管理软件包
openSUSE MicroOS:由 SUSE 维护的发行版,使用 transactional-update 与 flatpak 管理软件包
在权衡利弊之后,咱最终还是选择了 Fedora Silverblue ,毕竟 NixOS 需要学习一门额外的 DSL(汗),再加上 Flatpak 是 RedHat 的 ...
你好,世界
Hello world!