ฉันชอบเพิ่มการควบคุมระบบของฉันเมื่อใดก็ตามที่เป็นไปได้ ลำดับความสำคัญสูงสุดสำหรับเดสก์ท็อป Linux ของฉันรวมถึงการเข้าถึงความสะดวกในการใช้งานการทำซ้ำและความเสถียร
และเมื่อพูดถึงการควบคุมฉันก็รู้ว่าฉันควรเริ่มบันทึกกระบวนการของฉัน ฉันหมายความว่าใครจะรู้สติปัญญาของฉันอาจจะอยู่ใต้หกฟุตกับฉันและฉันก็มีความรู้ที่ซ่อนตัวอยู่ในสมองของฉัน นอกจากนี้คุณรู้ว่าสิ่งที่พวกเขาพูดเกี่ยวกับการใช้งานภายนอกที่ใช้งานอยู่ - มันคือทั้งหมดที่เกี่ยวกับการทำให้แน่ใจว่าความรู้ของคุณไม่ได้จบลงด้วยคุณ
ฉันได้ทดลองใช้เครื่องมือต่าง ๆ เมื่อเวลาผ่านไปตั้งแต่สคริปต์เชลล์ Makefiles, Ansible/Puppet/Chef (ตรวจสอบแท็ก GIT) เพื่อบังคับใช้และการกำหนดค่าการซิงค์ แต่เมื่อระบบวิวัฒนาการสิ่งต่าง ๆ มักจะแย่ลงและทุกอย่างก็กลายเป็นเรื่องยุ่งเหยิง
Nix ดูเหมือนจะจัดการกับปัญหาเหล่านี้แม้ว่าในลักษณะที่รุนแรง - สะดวกและมีเหตุผลน้อยกว่า แต่ค่อนข้างมีประสิทธิภาพ - จัดลำดับความสำคัญความถูกต้องมากกว่าความยืดหยุ่น สิ่งสำคัญที่สุดคือการทำซ้ำการทำซ้ำซึ่งหมายความว่าฉันสามารถนั่งพักผ่อนได้ หากมีอะไรบางอย่างใช้งานได้มันจะทำงานต่อไปเว้นแต่จะมีการเปลี่ยนแปลง
ก่อนสิ่งใดคุณสามารถดูการกำหนดค่าของฉันได้ที่:
นอกจากนี้ฉันได้อธิบาย Nix อย่างกว้างขวางในบันทึกย่อของฉันที่นี่
นี่คือที่เก็บรูทสำหรับการกำหนดค่าระบบ Linux ของฉันซึ่งจัดการโดย Nix Flake
ฉันเคยใช้ผู้จัดการบ้านกับ Snowfall-Lib เป็นหลักสำหรับการติดตั้งและกำหนดค่าแพ็คเกจส่วนใหญ่ สำหรับสิ่งของพื้นเมือง (แสดงไดรเวอร์ / การจำลองเสมือนที่ต้องใช้ DKMS การรวมเคอร์เนล / การจัดการบริการ) ฉันใช้ Puppet RAL
ดังนั้นในกรณีส่วนใหญ่การกำหนดค่านี้ควรใช้กับความหลากหลายของ distros รวมถึงผู้จัดการบริการต่างๆ (SystemD/runit/OpenRC/etc)
JustFile มีการตั้งค่าสูตรต่อไปนี้
just --list --unsorted สูตรที่มีอยู่:
สร้าง
รันแห้ง
สวิตช์
รายชื่อ
treeview arg = '.' # แสดง treeview ของโฟลเดอร์ที่กำหนด (ใช้ในการสร้าง readme)
nvfetcher # อัปเดตการพึ่งพาทั้งหมดใน nvfetcher.toml
Bundix # อัปเดตอัญมณีทั้งหมดในแพ็คเกจ/**
คำสั่งหลักที่คุณควรจำไว้คือ
just switch && stow -t $HOME stow/ TODO: โฟลเดอร์ stow เอกสาร
Autogenerated โดยใช้ Cc Cv b ใน EMACS ตรวจสอบให้แน่ใจว่าได้โหลดโมดูลเชลล์หากคุณยังไม่ได้
บ้านเรือน
└── x86_64-linux
└── framework animesh@framework
└── default.nix
การกำหนดค่าหลักของฉันอยู่ที่ Homes/x86_64-linux/animesh@framework/default.nix
โมดูล
home
├──แอพพลิเคชั่น
│└──กล้าหาญ
│└จาก default.nix
├── CLI
bat
│└── Default.nix
fish
│├── Default.nix
functions.nix
git
│└── Default.nix
│── inxi
│└── Default.nix
│├──เพียงแค่
│└── Default.nix
│──คิตตี้
│└── Default.nix
│├── NIX
│├── Default.nix
pin- inputs.nix
setup- setup-comma.nix
ranger
│└── Default.nix
│└── Starship
│└จาก default.nix
desktop
│── eww
│└── Default.nix
fonts
│└── Default.nix
│── GTK
│└── Default.nix
herbstluftwm
│└── Default.nix
│── Xorg
│└จาก default.nix
├──บรรณาธิการ
emacs
│└── Default.nix
│── NVIM
│└จาก default.nix
├──ภาษา
│── Android
│└── Default.nix
│├──ไป
│└── Default.nix
Ruby
│└จาก default.nix
modules
puppet
│├จาก default.nix
│└── ฯลฯ นิกซ์
└──ระบบ
├── ACPI-handler
│└จาก default.nix
├── Auto-CPUFREQ
│└จาก default.nix
├── fstrim
│└จาก default.nix
sysctl
└── default.nix
แพ็คเกจ
emacs-chdir
│└จาก default.nix
emacs-pcre
│└จาก default.nix
phosphor-icons
│└จาก default.nix
puppet
├── default.nix
└ดุ gemset.nix
การซ้อนทับ
└── nvfetcher
└── default.nix
เพื่อทำความสะอาดคนรุ่นเก่า:
pushd ~ /.local/state/nix/profiles && ls | awk " !/ $( readlink home-manager ) / && /home-manager-/ " | xargs rm && popd
nix-collect-garbage --delete-old
nix store gc --debugบางครั้งไฟล์ MMAP ป้องกัน GC รีบูต + สิ่งเดียวกันอาจชัดเจนยิ่งขึ้น!
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
For more information, please refer to < http://unlicense.org/ >ขอขอบคุณเป็นพิเศษสำหรับสิ่งเหล่านี้เนื่องจากการกำหนดค่าของฉันได้รับแรงบันดาลใจอย่างมากจากพวกเขา