mirror of
https://github.com/ryan4yin/nixos-and-flakes-book.git
synced 2024-11-21 23:53:12 +01:00
feat: show detailed error messages
This commit is contained in:
parent
4a71d5934a
commit
b2e9c6a2a7
@ -1,5 +1,13 @@
|
|||||||
# Debugging Derivations and Nix Expressions
|
# Debugging Derivations and Nix Expressions
|
||||||
|
|
||||||
|
## Show detailed error messages
|
||||||
|
|
||||||
|
You can always try to add `--show-trace -L` to the `nixos-rebuild` command to get the detailed error message if you encounter any errors during the deployment. e.g.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo nixos-rebuild switch --flake .#myhost --show-trace -L
|
||||||
|
```
|
||||||
|
|
||||||
## Debugging with `nix repl`
|
## Debugging with `nix repl`
|
||||||
|
|
||||||
> NOTE: If you have disabled `NIX_PATH`, you won't be able to use syntax like `<nixpkgs>`. Instead, you should use `nix repl -f flake:nixpkgs` to load nixpkgs.
|
> NOTE: If you have disabled `NIX_PATH`, you won't be able to use syntax like `<nixpkgs>`. Instead, you should use `nix repl -f flake:nixpkgs` to load nixpkgs.
|
||||||
|
@ -62,6 +62,8 @@ In this configuration, we declare our intention to enable the openssh service, a
|
|||||||
|
|
||||||
To deploy the modified configuration, run `sudo nixos-rebuild switch`. This command will apply the changes, generate a new system environment, and set it as the default. You can now log in to the system using SSH with the configured SSH keys.
|
To deploy the modified configuration, run `sudo nixos-rebuild switch`. This command will apply the changes, generate a new system environment, and set it as the default. You can now log in to the system using SSH with the configured SSH keys.
|
||||||
|
|
||||||
|
> You can always try to add `--show-trace -L` to the `nixos-rebuild` command to get the detailed error message if you encounter any errors during the deployment.
|
||||||
|
|
||||||
Remember that any reproducible changes to the system can be made by modifying the `/etc/nixos/configuration.nix` file and deploying the changes with `sudo nixos-rebuild switch`.
|
Remember that any reproducible changes to the system can be made by modifying the `/etc/nixos/configuration.nix` file and deploying the changes with `sudo nixos-rebuild switch`.
|
||||||
|
|
||||||
To find configuration options and documentation:
|
To find configuration options and documentation:
|
||||||
|
@ -248,6 +248,8 @@ After that, you can start the Helix editor by running the `hx` command.
|
|||||||
|
|
||||||
> If your system's hostname is not `nixos-test`, you need to modify the name of `nixosConfigurations` in `flake.nix`, or use `--flake /etc/nixos#nixos-test` to specify the configuration name.
|
> If your system's hostname is not `nixos-test`, you need to modify the name of `nixosConfigurations` in `flake.nix`, or use `--flake /etc/nixos#nixos-test` to specify the configuration name.
|
||||||
|
|
||||||
|
> You can always try to add `--show-trace -L` to the `nixos-rebuild` command to get the detailed error message if you encounter any errors during the deployment.
|
||||||
|
|
||||||
Furthermore, if you merely want to experiment with the latest version of Helix before deciding whether to install it system-wide, there's a simpler way – just a single command:
|
Furthermore, if you merely want to experiment with the latest version of Helix before deciding whether to install it system-wide, there's a simpler way – just a single command:
|
||||||
|
|
||||||
> Similarly, if you wish to use the latest version, compiling from source is usually unavoidable and may take some time.
|
> Similarly, if you wish to use the latest version, compiling from source is usually unavoidable and may take some time.
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
# Other Useful Tips
|
# Other Useful Tips
|
||||||
|
|
||||||
|
## Show detailed error messages
|
||||||
|
|
||||||
|
You can always try to add `--show-trace -L` to the `nixos-rebuild` command to get the detailed error message if you encounter any errors during the deployment. e.g.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /etc/nixos
|
||||||
|
sudo nixos-rebuild switch --flake .#myhost --show-trace -L
|
||||||
|
```
|
||||||
|
|
||||||
## Managing the Configuration with Git
|
## Managing the Configuration with Git
|
||||||
|
|
||||||
NixOS configuration, being a set of text files, is well-suited for version control with Git. This allows easy rollback to a previous version in case of issues.
|
NixOS configuration, being a set of text files, is well-suited for version control with Git. This allows easy rollback to a previous version in case of issues.
|
||||||
@ -87,7 +96,7 @@ The following configuration can be added to your NixOS configuration to help red
|
|||||||
automatic = true;
|
automatic = true;
|
||||||
dates = "weekly";
|
dates = "weekly";
|
||||||
options = "--delete-older-than 1w";
|
options = "--delete-older-than 1w";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Optimize storage
|
# Optimize storage
|
||||||
# You can also manually optimize the store via:
|
# You can also manually optimize the store via:
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
# 调试 Derivation 跟 Nix 表达式
|
# 调试 Derivation 跟 Nix 表达式
|
||||||
|
|
||||||
|
## 查看详细错误信息
|
||||||
|
|
||||||
|
如果你在部署配置时遇到了任何错误,都可以尝试在 `nixos-rebuild` 命令后面添加 `--show-trace -L` 参数来获取详细的错误信息。举例如下:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo nixos-rebuild switch --flake .#myhost --show-trace -L
|
||||||
|
```
|
||||||
|
|
||||||
## 通过 `nix repl` 查看源码、调试配置
|
## 通过 `nix repl` 查看源码、调试配置
|
||||||
|
|
||||||
> 注:如果你禁用了 `NIX_PATH`,那么 `<nixpkgs>` 这样的语法将无法使用,你需要改用 `nix repl -f flake:nixpkgs` 来加载 nixpkgs。
|
> 注:如果你禁用了 `NIX_PATH`,那么 `<nixpkgs>` 这样的语法将无法使用,你需要改用 `nix repl -f flake:nixpkgs` 来加载 nixpkgs。
|
||||||
|
@ -67,6 +67,8 @@ NixOS 的系统配置路径为 `/etc/nixos/configuration.nix`,它包含系统
|
|||||||
|
|
||||||
现在运行 `sudo nixos-rebuild switch` 部署修改后的配置,之后就可以通过 ssh 密钥远程登录到我的这台主机了。
|
现在运行 `sudo nixos-rebuild switch` 部署修改后的配置,之后就可以通过 ssh 密钥远程登录到我的这台主机了。
|
||||||
|
|
||||||
|
> 如果你在部署配置时遇到了任何错误,都可以尝试在 `nixos-rebuild` 命令后面添加 `--show-trace -L` 参数来获取详细的错误信息。举例如下:
|
||||||
|
|
||||||
这就是 NixOS 默认的声明式系统配置,要对系统做任何可复现的变更,都只需要修改 `/etc/nixos/configuration.nix` 文件,然后运行 `sudo nixos-rebuild switch` 部署变更即可。
|
这就是 NixOS 默认的声明式系统配置,要对系统做任何可复现的变更,都只需要修改 `/etc/nixos/configuration.nix` 文件,然后运行 `sudo nixos-rebuild switch` 部署变更即可。
|
||||||
|
|
||||||
`/etc/nixos/configuration.nix` 的所有配置项,可以在这几个地方查到:
|
`/etc/nixos/configuration.nix` 的所有配置项,可以在这几个地方查到:
|
||||||
|
@ -229,6 +229,8 @@ cat flake.nix
|
|||||||
|
|
||||||
> 如果你的系统 Hostname 不是 `nixos-test`,你需要在 `flake.nix` 中修改 `nixosConfigurations` 的名称,或者使用 `--flake /etc/nixos#nixos-test` 来指定配置名称。
|
> 如果你的系统 Hostname 不是 `nixos-test`,你需要在 `flake.nix` 中修改 `nixosConfigurations` 的名称,或者使用 `--flake /etc/nixos#nixos-test` 来指定配置名称。
|
||||||
|
|
||||||
|
> 如果你在部署配置时遇到了任何错误,都可以尝试在 `nixos-rebuild` 命令后面添加 `--show-trace -L` 参数来获取详细的错误信息。举例如下:
|
||||||
|
|
||||||
另外,如果你只是想尝试一下 Helix 的最新版本,再决定要不要真正地将它安装到系统里,有更简单的办法,一行命令就行:
|
另外,如果你只是想尝试一下 Helix 的最新版本,再决定要不要真正地将它安装到系统里,有更简单的办法,一行命令就行:
|
||||||
|
|
||||||
> 同样,想使用最新版本的话,源码编译基本是免不了的,这会需要一些时间。
|
> 同样,想使用最新版本的话,源码编译基本是免不了的,这会需要一些时间。
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
# NixOS 的其他实用技巧
|
# NixOS 的其他实用技巧
|
||||||
|
|
||||||
|
## 查看详细错误信息
|
||||||
|
|
||||||
|
如果你在部署配置时遇到了任何错误,都可以尝试在 `nixos-rebuild` 命令后面添加 `--show-trace -L` 参数来获取详细的错误信息。举例如下:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /etc/nixos
|
||||||
|
sudo nixos-rebuild switch --flake .#myhost --show-trace -L
|
||||||
|
```
|
||||||
|
|
||||||
## 使用 Git 管理 NixOS 配置 {#git-manage-nixos-config}
|
## 使用 Git 管理 NixOS 配置 {#git-manage-nixos-config}
|
||||||
|
|
||||||
> 这里不介绍 Git 本身的使用,如果不熟悉 Git 的话,可以先找资料学习一下 Git.
|
> 这里不介绍 Git 本身的使用,如果不熟悉 Git 的话,可以先找资料学习一下 Git.
|
||||||
|
Loading…
Reference in New Issue
Block a user