草庐IT

NixOS 系列 #4:安装 NixOS 后要做的事

Sagar Sharma 2023-03-28 原文

安装之后,你会发现 NixOS 与通用的 Linux 发行版有很大的不同。

当然,作为 ​​高级 Linux 发行版​​之一,大多数新用户对它并不熟悉。

如果你不知道 ​​为什么你应该使用 NixOS​​,并且出于好奇而尝试它,那么在继续进行之前,知道它是为谁准备的至关重要。

虽然我假设你已经安装了这个发行版,但如果你是第一次使用,我建议先 ​​在虚拟机上安装 NixOS​​。

1、更新软件包

即使你使用最新的 ISO 进行安装,也总是会有更新的。那么为什么不从更新软件包开始呢?

要升级软件包,首先,你必须在添加的频道中检查是否有更新:

nix-channel --update
然后,使用下面的命令来安装这些更新(如果有的话):

sudo nixos-rebuild switch --upgrade
这就行了!它将处理其余的事情。

2、在 NixOS 中改变主机名

如果你尝试用传统的方法 ​​改变主机名​​(使用 ​​hostnamectl​​ 命令),会出现以下错误:

在 NixOS 中改变主机名的错误

在 NixOS 中,你可以用它的主配置文件轻松地改变主机名。使用如下命令:

sudo nano /etc/nixos/configuration.nix
在这个配置文件中,寻找以下一行:

networking.hostName = "nixos"
然后把它改成:

networking.hostName = "Your_Hostname"
例如,我把我的主机名改为 ​​itsFOSS​​:

networking.hostName = "itsFOSS"

在 NixOS 中改变主机名

现在,​​保存更改并退出 nano​​ 文本编辑器。

为了使你对主机名的修改生效,执行以下命令:

sudo nixos-rebuild switch
最后,重新打开终端,主机名的变化应该反映出来。

3、设置 Flatpak

我知道你可能在想什么。Nix 软件包管理器已经提供了大量的软件包。那么,为什么你需要 Flatpak 呢?

安装你所需要的东西对于第一次使用的人来说可能有点费时。所以,Flatpak 应该能给你带来方便。

​设置 Flatpak​​ 与你在 Ubuntu 上做的不一样。

要设置 Flatpak,你必须对 ​​configuration.nix​​ 文件进行修改,可以通过以下方式访问该文件:

sudo nano /etc/nixos/configuration.nix
​在 nano 中移动到最后一行​​,在 ​​}​​ 前添加以下一行:

services.flatpak.enable = true

在 NixOS 上设置 Flatpak

按 ​​Ctrl + O​​ 保存更改,按回车键,按 ​​Ctrl + X​​ 退出。

接下来,使用以下命令重建并切换到新的配置文件:

sudo nixos-rebuild switch
最后,使用下面的命令将 Flathub 软件库添加到系统中:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
想知道到底什么是 Flatpak 包吗?你可以参考我们关于它的文章:

什么是 Flatpak?你需要知道的关于这个通用包装系统的一切重要信息

4、启用垃圾收集

NixOS 以其不可改变性而闻名,这是有充分理由的。

每当你升级一个软件包时,旧的软件包不会被删除。只是指向旧包的符号链接将被指向最新的版本。

而这样做,你的系统中会积累下不必要的垃圾。

但是,删除每一个旧世代将违背 NixOS 的初衷。

所以,在这种情况下,你可以将你的系统配置为每周删除垃圾包。

要做到这一点,首先,打开 NixOS 配置文件:

sudo nano /etc/nixos/configuration.nix
并在配置文件末尾的 ​​}​​ 前添加以下一行:

# Automatic Garbage Collection
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};

在 NixOS 中启用自动垃圾收集

保存修改并退出 nano 文本编辑器。

为了激活垃圾收集,重建并切换到新的配置文件:

sudo nixos-rebuild switch
如果你不确定垃圾收集器是否在后台正常运行,你可以用以下命令列出活动的计时器:

systemctl list-timers

正如你所看到的,Nix 垃圾收集器正在如期运行,并显示距离下次清理还有 5 天。

5、安装你喜欢的软件

我是说这是我们使用电脑的唯一原因 —— “为了使用我们最喜欢的软件”,如果还不是,我们就把它变成现实!

寻找软件包的最好地方是 ​​Nix 软件包搜索​​,可以使用你喜欢的任何浏览器访问。

  • 搜索软件包
  • 选择软件包
  • 点击 “nix-env” 并复制给定的 NixOS 的命令
  • 执行该命令,就可以了
你可以查看我们的 ​​NixOS 软件包管理​​ 指南,了解所有的细节。

让我在这里给你一个简单的回顾。例如,在这里,我想安装 Librewolf,所以我采用了以下方法:

搜索 NixOS 的软件包

但如果你想安装 SSH 或 Plex 等服务,上述方法就不能用了

为此,你得查看位于页面顶部的 “NixOS 选项NixOS options”。

因此,假设我想安装 OpenSSH,那么我必须按照给定的步骤进行:

  • 进入 “NixOS 选项”。
  • 搜索服务的名称
  • 获取服务的名称并将其粘贴到 ​​configuration.nix​​ 中,将其值改为 ​​true​​。

搜索 NixOS 的服务

services.openssh.enable = true

在 NixOS 上启用 OpenSSH

在配置文件中加入这一行后,重建服务:

sudo nixos-rebuild switch

6、在 NixOS 中启用自动更新(可选)

一些用户喜欢启用自动更新功能,而另一些用户则可以在他们方便的时候更新软件包。

所以这完全取决于你。

要启用自动更新,首先打开 ​​configuration.nix​​ 文件:

sudo nano /etc/nixos/configuration.nix
接下来,在配置文件的末尾,在 ​​}​​ 之前添加以下一行:

# Auto system update
system.autoUpgrade = {
enable = true
};

在 NixOS 中启用自动系统更新

保存修改并退出 nano。

要启用自动更新,你必须用以下方法重建并切换到该文件:

sudo nixos-rebuild switch
你也可以用下面的命令检查 NixOS 的升级定时器:

systemctl list-timers

NixOS 的自动升级定时器

正如你所看到的,​​nixos-upgrade.service​​ 正在后台如期运行!

7、减少交换度

如果你正在利用交换分区,你可能想减少交换度。

交换度只不过是你想要多积极地使用交换分区(或内存)的数值,其范围从 0 到 100。

交换度越小,你的系统就会越多地使用物理内存(RAM),而交换分区只不过是你的存储驱动器的一部分而已。

另外,存储驱动器的速度相对比内存慢,所以如果可能的话,你应该减少交换度。

要检查你的系统的默认交换度,请使用以下方法:

cat /proc/sys/vm/swappiness

检查 Linux 系统的交换度

而对于大多数 Linux 发行版,它被设置为 ​​60​​。

我建议你把这个值降低到 ​​10​​。

要做到这一点,首先,用以下命令打开配置文件:

sudo nano /etc/nixos/hardware-configuration.nix
并在 ​​}​​ 之前的行末添加以下一行:

boot.kernel.sysctl = { "vm.swappiness" = 10;};

减少 NixOS 中的交换度

保存修改并退出文本编辑器。

现在,重建配置并使用下面的方法切换到它:

sudo nixos-rebuild switch
现在,你可以再次检查交换度,它应该反映出变化:

cat /proc/sys/vm/swappiness

减少 NixOS 中的交换度

就这些了。

总结

如果你在第一次安装 NixOS 后马上遵循这些要点,你应该得到一个良好的用户体验。

当然,根据你的要求,还可以有一些其他的东西。但是,我认为上面提到的事情是最基本或最常见的事情。

在本系列的下一部分,我将讨论在 NixOS 上设置家庭管理器,这对有多个用户的系统应该是有帮助的。

? 安装NixOS后,你首先做什么?让我知道你的想法。

有关NixOS 系列 #4:安装 NixOS 后要做的事的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  4. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  5. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  6. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  7. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  8. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  9. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  10. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

随机推荐