给更新癌推荐一个折腾不死的系统:NixOS
- jobinson99
- 帖子: 1169
- 注册时间: 2007-04-28 15:14
- 系统: NixOS+虚拟机各种系统
- 联系:
给更新癌推荐一个折腾不死的系统:NixOS
比较特别的一个系统,可以多版本共存,可以还原回任意版本。
有点类似 npm的方式,所有软件安装在一个目录 nix/store 。没有 `/bin` `/sbin` `/lib` `/usr`等目录,所有软件全在 `/nix/store`,除了 `/bin/sh`,配置 `/etc` 是软链到 `/nix/store`。——绝对绿软了。
支持 二进制安装 或者 源码编译。编译脚本相对PKGBUILD来说,比较智能,和gentoo的差不多。
这系统要是稳定下来,非常适合当 服务器,编程用桌面,是个干活用的好系统。
当然,这样的设计,比较消耗磁盘空间。
国庆没出去泡妞的,有新玩具了。
系统主页:www.nixos.org
下载地址:https://nixos.org/nixos/download.html
软件仓库:https://github.com/NixOS/nixpkgs
提醒一句:
想尝试的同学,有个问题,和早期arch一样:网络!!!
所以,先不要像我下面那样,安装系统时一次太多软件,否则网速往往不够给力。
后面系统里的软件安装,可以直接编译安装,就不会这么痛苦了。
有点类似 npm的方式,所有软件安装在一个目录 nix/store 。没有 `/bin` `/sbin` `/lib` `/usr`等目录,所有软件全在 `/nix/store`,除了 `/bin/sh`,配置 `/etc` 是软链到 `/nix/store`。——绝对绿软了。
支持 二进制安装 或者 源码编译。编译脚本相对PKGBUILD来说,比较智能,和gentoo的差不多。
这系统要是稳定下来,非常适合当 服务器,编程用桌面,是个干活用的好系统。
当然,这样的设计,比较消耗磁盘空间。
国庆没出去泡妞的,有新玩具了。
系统主页:www.nixos.org
下载地址:https://nixos.org/nixos/download.html
软件仓库:https://github.com/NixOS/nixpkgs
提醒一句:
想尝试的同学,有个问题,和早期arch一样:网络!!!
所以,先不要像我下面那样,安装系统时一次太多软件,否则网速往往不够给力。
后面系统里的软件安装,可以直接编译安装,就不会这么痛苦了。
上次由 jobinson99 在 2015-11-14 18:30,总共编辑 1 次。
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
- jobinson99
- 帖子: 1169
- 注册时间: 2007-04-28 15:14
- 系统: NixOS+虚拟机各种系统
- 联系:
Re: 给更新癌推荐一个折腾不死的系统:NixOS
自己实测记录来了,逐步更新,感觉还不错,安装过程简单。
## 系统安装: ##
1. 先分区:可使用镜像里带的gparted,如果下载的镜像没这东西,随便找张linux安装盘,利用里面的工具分区格式化之……然后退出,使用nixos镜像。
2. 挂载和启用swap
3. 生成系统配置文件模板:会生成两个配置文件 configuration.nix(总控) 和 hardware-configuration.nix(分区设定)
4. 修改配置:行首是`#`的表示不执行,默认大部分都不执行,需要改为可执行(去掉行首的`#`)
需要修改的项:
[别人的配置示例](https://nixos.org/repos/nix/configurations/trunk/)
配置完成后,安装系统:
若因为网络啥的问题安装失败或者更改了configuration.nix,要继续安装或者刷新配置,也是这个命令`nixos-install`
安装到最后一步,会要求设置root密码:修改密码用 `passwd`
全部搞定后,重启
看看有啥软件可安装
安装
我的配置:还比较乱,过阵子再整理。
## 系统安装: ##
1. 先分区:可使用镜像里带的gparted,如果下载的镜像没这东西,随便找张linux安装盘,利用里面的工具分区格式化之……然后退出,使用nixos镜像。
2. 挂载和启用swap
代码: 全选
mount /dev/sdx1 /mnt/
swapon /dev/sdx2
代码: 全选
nixos-generate-config --root /mnt
需要修改的项:
- - boot.loader.grub.device 指定引导器安装位置
- networking.hostName 设定主机名
- i18n 设定语言
- time.timeZone 设定时区
- environment.systemPackages 设定系统级软件,默认只有wget
- services.openssh.enable 启用的守护进程,有一系列,根据需要开启关闭。
- 设置新用户名和预置密码
[别人的配置示例](https://nixos.org/repos/nix/configurations/trunk/)
配置完成后,安装系统:
代码: 全选
nixos-install
安装到最后一步,会要求设置root密码:修改密码用 `passwd`
代码: 全选
setting root password...
Enter new UNIX password: ***
Retype new UNIX password: ***
代码: 全选
reboot
代码: 全选
nix-env -qa \*
代码: 全选
nix-env -i w3m
我的配置:还比较乱,过阵子再整理。
代码: 全选
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the GRUB 2 boot loader.
boot.loader.grub.enable = true;
boot.loader.grub.version = 2;
# Define on which hard drive you want to install Grub.
boot.loader.grub.device = "/dev/sda";
# file system mount point
fileSystems = [
{ mountPoint = "/home";
device = "/dev/disk/by-uuid/4955738b-a555-4e5c-8bc7-a9b42599f777";
fsType = "ext4";
}
{ mountPoint = "/docs";
device = "/dev/disk/by-uuid/b645272f-dad7-40aa-9701-6cd6a1657eb0d";
fsType = "ext4";
}
];
# networking setting
networking = {
# nameservers = [ "8.8.8.8" ];
hostName = "atlas"; # Define your hostname.
extraHosts = "74.125.206.93 dl-ssl.google.com";
# networkmanager.enable = true;
wireless.enable = true; # Enables wireless support via wpa_supplicant.
enableB43Firmware = true; # for my laptop wireless card firmware
};
# Select internationalisation properties.
i18n = {
consoleFont = "Lat2-Terminus16";
consoleKeyMap = "us";
defaultLocale = "en_US.UTF-8";
supportedLocales = [ "en_US.UTF-8/UTF-8"
"zh_CN.UTF-8/UTF-8"
"zh_CN/GB2312"
"zh_CN.GBK/GBK"
"zh_CN.GB18030/GB18030"
"zh_TW.UTF-8/UTF-8"
"zh_TW/BIG5" ];
};
# Set your time zone.
time.timeZone = "Asia/Shanghai";
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; [
wget
openbox
sddm
git
w3m
luakit
firefox fcitx goldendict
calligra emacs libreoffice okular
wqy-zenhei kde-l10n-zh_CN virt-manager
openjdk openjre
android-sdk
gwenview gimp inkscape blender
];
# allow unfree packages
nixpkgs.config.allowUnfree = true;
# nix mirrors
nix.trustedBinaryCaches = [
"http://cache.nixos.org"
];
boot.kernelModules = [ "kvm-amd" "wl" "tun" "virtio" ];
# 虚拟化
virtualisation = {
# qemu
# libvirtd for virt-manager
libvirtd.enable = true;
};
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Enable CUPS to print documents.
# services.printing.enable = true;
# GUI configuration
services.xserver = {
# Enable the X11 windowing system.
enable = true;
layout = "us";
xkbOptions = "eurosign:e";
## for my ati graphics card
# services.xserver.videoDrivers = [ "ati_unfree" ];
# Enable the KDE Desktop Environment.
displayManager.sddm.enable = true;
# displayManager.kdm.enable = true;
desktopManager.kde4.enable = true;
# Enable openbox
windowManager.openbox.enable = true;
};
## hardware acceleration for 32-bit programs
# hardware.opengl.driSupport32Bit = true;
# Define a user account. Don't forget to set a password with ‘passwd’.
# users.extraUsers.guest = {
# isNormalUser = true;
# uid = 1000;
# };
users.extraUsers.atlas = {
uid = 1000;
group = "users";
extraGroups = ["wheel" "audio" "video" "libvirtd"];
home = "/home/atlas";
isSystemUser = false;
useDefaultShell = true;
initialPassword = "1234567890";
};
# The NixOS release to be compatible with for stateful data such as databases.
system.stateVersion = "15.09";
}
上次由 jobinson99 在 2015-11-14 18:11,总共编辑 4 次。
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
- susbarbatus
- 帖子: 2966
- 注册时间: 2010-04-10 16:14
- 系统: Arch Linux
- jobinson99
- 帖子: 1169
- 注册时间: 2007-04-28 15:14
- 系统: NixOS+虚拟机各种系统
- 联系:
Re: 给更新癌推荐一个折腾不死的系统:NixOS
自己编译,哈哈,其编译器可自动识别autoconf类的配置,比arch 的abs智能点,要不可直接从aur.archlinux.org 或者gentoo上抄点,所以也还可以的。susbarbatus 写了:同事用过一阵,开始吹得天花乱坠,后来嫌源里的包太少了弃掉了
代码: 全选
with import <nixpkgs> { };
stdenv.mkDerivation {
name = "nano-2.3.2";
# The source tarball, downloaded into some place in the Nix store.
src = fetchurl {
url = ftp://ftp.gnu.org/pub/gnu/nano/nano-2.3.2.tar.gz;
sha256 = "1s3b21h5p7r8xafw0gahswj16ai6k2vnjhmd15b491hl0x494c7z";
};
# The dependencies, referring to variables in <nixpkgs>.
buildInputs = [ ncurses gettext ];
# 默认可获得 autoconf类脚本,因此此部分不是必须的。
buildCommand =
''
tar xf $src
cd nano-*
./configure --prefix=$out
make
make install
'';
}
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
- jobinson99
- 帖子: 1169
- 注册时间: 2007-04-28 15:14
- 系统: NixOS+虚拟机各种系统
- 联系:
Re: 给更新癌推荐一个折腾不死的系统:NixOS
重要补充:如果其二进制库 https://cache.nixos.org 连不上,可以直接源码编译,方法:
当然,也可以手动指定镜像,不过目前nixos没有镜像!!!!
代码: 全选
# 安装系统
nixos-rebuild switch --option use-binary-caches false
# 安装软件
nix-env -i xxx --option use-binary-caches false
# 比如:
nix-env -i firefox --option use-binary-caches false
代码: 全选
nixos-rebuild switch --option use-binary-caches http://镜像地址
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
- lilydjwg
- 论坛版主
- 帖子: 4250
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 给更新癌推荐一个折腾不死的系统:NixOS
nix 哪里类似 npm 了?nix 明明类似 git,所有东西都通过 hash 来定位,都存在一个地方。
另外推荐不喜欢 nix 自创语言的人 guix,来自 GNU,使用 guile 的。
另外推荐不喜欢 nix 自创语言的人 guix,来自 GNU,使用 guile 的。
- photor
- 论坛版主
- 帖子: 11004
- 注册时间: 2008-04-26 12:41
- jobinson99
- 帖子: 1169
- 注册时间: 2007-04-28 15:14
- 系统: NixOS+虚拟机各种系统
- 联系:
Re: 给更新癌推荐一个折腾不死的系统:NixOS
它的依赖管理方式像npm,lilydjwg 写了:nix 哪里类似 npm 了?nix 明明类似 git,所有东西都通过 hash 来定位,都存在一个地方。
另外推荐不喜欢 nix 自创语言的人 guix,来自 GNU,使用 guile 的。
文件存储像git
guix有成型的操作系统了么?
这系统的软件库已经很丰富,够用,除了桌面已经换上这货,虚拟机里已经克隆一堆了:
vboxserver.nix qemuserver.nix vdocker.nix vphp.nix vnodejs.nix vruby.nix ……
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
- lilydjwg
- 论坛版主
- 帖子: 4250
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 给更新癌推荐一个折腾不死的系统:NixOS
它的依赖管理难道不是 stow 那样的吗?npm 那样子很坑的,没有确定性。jobinson99 写了:它的依赖管理方式像npm,lilydjwg 写了:nix 哪里类似 npm 了?nix 明明类似 git,所有东西都通过 hash 来定位,都存在一个地方。
另外推荐不喜欢 nix 自创语言的人 guix,来自 GNU,使用 guile 的。
文件存储像git
guix有成型的操作系统了么?
这系统的软件库已经很丰富,够用,除了桌面已经换上这货,虚拟机里已经克隆一堆了:
vboxserver.nix qemuserver.nix vdocker.nix vphp.nix vnodejs.nix vruby.nix ……
guix 有操作系统了,不过没试过,不知道用起来如何。另外 guix 似乎是在 GNU 的服务器上,没 CDN。
- jobinson99
- 帖子: 1169
- 注册时间: 2007-04-28 15:14
- 系统: NixOS+虚拟机各种系统
- 联系:
Re: 给更新癌推荐一个折腾不死的系统:NixOS
不了解stow啊,实际也不是npm方式,因为npm是直接拷一份进去,而nixos是软链到特定的用户空间里。lilydjwg 写了:它的依赖管理难道不是 stow 那样的吗?npm 那样子很坑的,没有确定性。jobinson99 写了:它的依赖管理方式像npm,lilydjwg 写了:nix 哪里类似 npm 了?nix 明明类似 git,所有东西都通过 hash 来定位,都存在一个地方。
另外推荐不喜欢 nix 自创语言的人 guix,来自 GNU,使用 guile 的。
文件存储像git
guix有成型的操作系统了么?
这系统的软件库已经很丰富,够用,除了桌面已经换上这货,虚拟机里已经克隆一堆了:
vboxserver.nix qemuserver.nix vdocker.nix vphp.nix vnodejs.nix vruby.nix ……
guix 有操作系统了,不过没试过,不知道用起来如何。另外 guix 似乎是在 GNU 的服务器上,没 CDN。
nixos现在github上团队不小了,而且发展这么多年,资源已经足够日常使用了。
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
- lilydjwg
- 论坛版主
- 帖子: 4250
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 给更新癌推荐一个折腾不死的系统:NixOS
npm 不是拷贝一份,是拷贝多份,放依赖方的子目录里边。所以有时候会出现路径太长的错误。jobinson99 写了: 不了解stow啊,实际也不是npm方式,因为npm是直接拷一份进去,而nixos是软链到特定的用户空间里。
nixos现在github上团队不小了,而且发展这么多年,资源已经足够日常使用了。
- jobinson99
- 帖子: 1169
- 注册时间: 2007-04-28 15:14
- 系统: NixOS+虚拟机各种系统
- 联系:
Re: 给更新癌推荐一个折腾不死的系统:NixOS
是的。lilydjwg 写了:npm 不是拷贝一份,是拷贝多份,放依赖方的子目录里边。所以有时候会出现路径太长的错误。jobinson99 写了: 不了解stow啊,实际也不是npm方式,因为npm是直接拷一份进去,而nixos是软链到特定的用户空间里。
nixos现在github上团队不小了,而且发展这么多年,资源已经足够日常使用了。
nix 设计者2003年就在论文里提出并实现的……
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……