انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


 خبرها، اتفاقات و تصاویر مربوط به مربوط به جشن انتشار را با هشتگ ufest1804 در شبکه‌های اجتماعی دنبال کنید

نویسنده موضوع: Nixos, ماشینِ زمان  (دفعات بازدید: 619 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین LinArcX

  • Jr. Member
  • *
  • ارسال: 32
  • جنسیت : پسر
Nixos, ماشینِ زمان
« : 02 فروردین 1398، 10:42 ب‌ظ »
تا حالا شده سیستم تون رو به روز رسانی کرده باشید و بعد از ریبوت، دیگه قادر به لاگین کردن نباشین؟
يا شاید از یه توزیعی در طی سالیانِ سال استفاده میکردید و بر اثر حادثه ای دلخراش، توزیع تون رو به همراه تمام کانفیگ های سیستم، از دست داده باشید.
همه میدونیم که این مشکل منحصر به توزیع های مختلف گنو/لینوکسی نیست وبا شدتی کمتر/بیشتر در ویندوز یا او.اس.ایکس هم دیده میشه.
اما ریشه مشکلات در کجاست؟ تا حالا بهش فکر کردین؟!
برگردیم به سال 2003. جایی که اولین جرقه های خلق توزیع جدیدی که بتونه بر مشکلات بالا فائق بیاد به ذهن خلاق آقای  Eelco Dolstra رسید.
برای طی طریق لازمه کمی با تاریخچه و ایده های زبان های برنامه نویسی آشنا بشیم. خسته که نمیشین؟ :)
ایشون مدت ها با هسکل کار میکردند. اگر نمیدونید زبان هسکل چیه به طور خلاصه بهتون بگم که این زبان از شیوه مرسوم شی گرایی استفاده نمیکنه.
بلکه رهیافتِ فانکشنال رو در پیش میگیره.
باز ممکنه براتون سوال پیش بیاد که مشکل شی گرایی چی هست که باید از روش فانکشنال یا تابعی استفاده کرد؟
مشکل ریشه ای در مفهوم state خلاصه میشه.
تکه کد زیر رو در نظر بگیرید:
...

int i = 0;
i++;
// do some other stuffs
int b = i + 5;

...
i در اینجا متغیری هست که مدام دست خوش تغییر میشه و به عبارت بهتر مدام داره وضعیت(state) فعلی خودشو از دست میده. این رفتار که پیش فرضِ اکثر زبان های امروزی هست، تبعاتی در پی داره. از جمله اینکه باعث ایجاد side effect میشه. side effect به نوبه خودش باعث میشه رفتار سیستم غیرقابل پیش بینی بشه.
معادل های فرنگیش: unproducible system, unpredictable system
سیستم هایی که در آن واحد نمیتونی بهشون نگاه کنی و رفتارشون رو پیش بینی کنی. چون اثرات جانبی، رفتار سیستم رو غیر قابل پیش بینی می کنند.
ایده تمام زبان های فانکشنال هم تا حدودی همینه. (جلوگیری از اثرات جانبی)
برای رسیدن به سیستم قابل پیش بینی، قابل اتکا و مطمئن، نیاز هست که وضعیتِ(state) سیستم دست نخورده باقی بمونه. اگر تکه کد بالا رو در زبان هسکل اجرا کنید به خطای زمان کامپایل برخورد میکنید. دلیل؟
تغییر استیت ممنوع!
این ایده رو گوشه ذهن تون داشته باشید..
حالا بیاید به دنیای سیستم عامل ها.
به دور و بر خودتون نگاه کنید. ابونتو، دبیان، آرچ، و حتی او اس ایکس و ویندوز این خاصیت تغییر استیت رو در خودشون دارند.
مثلا دستور فرضی زیر رو در آرچ در نظر بگیرید:
sudo pacman -Syuاین دستور تمام سیستم رو به روزرسانی میکنه.(استیت قبلی سیستم از بین میره و شما در هر لحظه فقط آخرین تغییرات رو میتونید ببینید) اما اگه سیستم رو ریبوت کنید چطور؟
به احتمال خیلی زیاد مشکلی پیش نخواهد اومد(بنا بر تجربه شخصیم و البته رعایت یک سری اصول) اما حتی اگر به علم احتمالات تکیه کنیم، احتمال اینکه با یه سیستم غیر قابل بوت مواجه بشید، هم چنان وجود داره.
خب در این حالت معمولا باید یه ایزوی آرچ به صورت بوتیبل کنار دست تون داشته باشید تا بتونید chroot بزنید و  سیستم رو مجدد احیا کنید.
می بینید؟
مطمئنا این رفتار رو در توزیع های دیگه هم تجربه کردید.
باز میرسیم به حرف هایی که بالاتر زدم:
unproducible system, unpredictable system..
سوال؟
آیا میتونم به آخرین حالت مطمئن و بدون مشکل سیستمم برگردم؟ هر چند ابزارهایی نظیر downgrader بوجود اومدن که این مشکل رو تا حدی برطرف کنند، اما به صورت ریشه ای نمیتونن مشکل رو حل کنند.
یه مشکل دیگه که توزیع های موجود دارند این هست که تنظیمات سیستم به صورت کاملا پخش شده در زیر شاخه etc/ قرار داره.
مثلا تنظیمات tor, iptables, i3blocks , ...
فرض کنید دوست تون سیستم شما رو می بینه و ازتون درخواست میکنه که سیستمی مشابه سیستم شما داشته باشه.با تمام ملحقات و فایل های کانفیگ و ...
آیا این کار در توزیع های معمول، شدنیه؟ اگر جواب مثبت هست روال کار چطوریه؟
باز هم از آرچ مثال میزنم:
در این توزیع ابزاری وجود داره به نام archiso. بوسیله این ابزار میتونید بسته ها، کانفیگ ها و فایل های موردعلاقه خودتون رو به صورت فایل iso. در بیارید و اونو با بقیه به اشتراک بذارم. کاری که قبلا من انجام دادم و aseman os رو ساختم.
از روال کند و پر از سعی و خطای این روش که بگذریم، شما در نهایت یک فایل ایزو تولید کردید با کانفیگ A.
اما اگر کسی نیاز به سیستمی با کانفیگ B داشته باشه چطور؟
دوباره باید شروع کنید به کاستوم کردن توزیع تون از صفر و تولید مجدد خروجی، سعی/خطا، ساخت ایزو و انتشار اون.
روال بسیار کسل کننده و زمان بر.
این مشکلات باعث شدند آقای DOLSTRA تصمیم بگیره یک بار برای همیشه این مشکلات رو حل کنه.
ایده این بود که FHS رو باید طوری سازمان دهی کنم که بسته ها به هنگام آپگرید/حذف با هم دیگه تداخلی نداشته باشند. در واقع ایشون متوجه شده بودند که FHS شبیه همون متغیر i در زبان های شی گرا عمل میکنه. تغییر دهنده وضعیت(state)!
حالا چطوری؟
فرض کنید برای jcal بسته ای نوشتین و میخواین در توزیع nixos نصبش کنید:
{ stdenv, fetchFromGitHub, autoreconfHook
, readline
}:

stdenv.mkDerivation rec {
  name = "jcal";
  version = "0.4.1";

  src = fetchFromGitHub {
    owner = "fzerorubigd";
    repo = "jcal";
    rev = "v${version}";
    sha256 = "0m3g3rf0ycv2dsfn9y2472fa3r0yla8pfqk6gq00nrscsc3pp4zf";
  };

  nativeBuildInputs = [ autoreconfHook ];
  buildInputs = [ readline ];

  preAutoreconf = "cd sources/";

  meta = with stdenv.lib; {
    description = "Jalali calendar is a small and portable free software library to manipulate date and time in Jalali calendar system.";
    homepage =  http://nongnu.org/jcal/;
    license = licenses.gpl3;
    maintainers = [ maintainers.linarcx ];
    platforms = platforms.all;
  };
}
تعجب نکنید. شما با زبان nix روبرو شدید(در nixos کل سیستم اعم از بسته ها و کانفیگ ها رو میشه با این زبان بیلد کرد.)
اگر این بسته رو به توزیع nixos بدین و بگین اینو نصب کن واسم، nixos میاد و به تمام ورودی های فایل (دیپندنسی ها، متغیرها)نگاه میکنه و درنهایت یک هش تولید میکنه و اون رو در مسیر nix/store/ نصب میکنه:
/nix/store/dpmvp969yhdq...-subversion-1.1.3/bin/jcalاین کار چندین مزیت داره:
1. از تداخل بین اجزای نرم افزارها با هم دیگه جلوگیری میکنه.
2. به شما این امکان رو میده به نسخه های قدیمی تر بسته برگردین(در nixos چیزی از بین نمیره! بسته های جدید نصب میشن ولی هیچ تغییری در تنظیمات بسته های قدیمی نمیدن-ایده ای که از هسکل گرفته شده. متغیرها نمیتونن در طول حیات برنامه تغییر پیدا کنن)
3. side effect از بین میره و رفتار سیستم قابل پیش بینیه.
قسمت هیجان انگیزتر ماجرا بحث مدیریت تنظیمات سراسری سیستم هست. به جای اینکه etc/ رو پیمایش کنید و دونه دونه تنظیمات تون رو اعمال کنید، nixos از یک مغز متفکر مرکزی استفاده میکنه به نام فایل configuration.nix که در مسیر etc/nixos/ قرار داره.
مثلا میخواید تور رو نصب و کانفیگ کنید؟ کافیه خطوط زیر رو به این فایل اضافه کنید:
services.tor = {
    enable = true;
    client.enable = true; # Enable privoxy
    # extraConfig = builtins.readFile "/home/linarcx/.config/tor/torrc";
  };
در پشت صحنه بسته تور نصب و برای شما کانفیگ میشود :)
میزکار kde plasma با دیسپلی منیجر sddm رو دوست دارید؟
{ config, pkgs, ... }:

{ services.xserver.enable = true;
  services.xserver.displayManager.sddm.enable = true;
  services.xserver.desktopManager.plasma5.enable = true;
}
تصور کنید کل تنظیمات سراسری سیستم تون رو میتونید با همین یه دونه فایل (یا حداکثر چند فایل مشابه) مدیریت کنید. اون وقت دیگه لازم نیست به دوست تون یه ایزوی 1.5 گیگی هدیه بدین. تنها بادریافت چند فایل و صدور دستور:
nixos-rebuild swithبه سیستمی مشابه سیستم شما دست خواهد یافت.
و دست آخر بریم سراغ هیجان انگیزترین ویژگی این توزیع. بازگشت به حالت های پایدار قبلی سیستم.
nixos-rebuild switch --rollbackهر چقدر که دوست داشته باشید میتونید به عقب برگردین. دوست دارین به کانفیگ اولیه سیستم تون(که ممکنه 5 سال پیش انجام داده باشین) برگردین؟
nix-env --rollback 1
« آخرین ویرایش: 02 فروردین 1398، 11:06 ب‌ظ توسط LinArcX »
The World Will Look Up And Shout "SAVE US!!!" And I Will Look Down and Whisper
"...GNU"

آفلاین مجتبی باغبان

  • High Sr. Member
  • *
  • ارسال: 555
  • جنسیت : پسر
پاسخ : Nixos, ماشینِ زمان
« پاسخ #1 : 02 فروردین 1398، 11:20 ب‌ظ »
سپاس از این کهاطلاعاتتون رو به اشتراک گذاشتید. علاقه‌مند شدم.
نحوه انتشار بسته‌ها غلطان است یا نه؟
تعداد بسته‌های نرم‌افزاریش کامل است یا نه؟

آفلاین LinArcX

  • Jr. Member
  • *
  • ارسال: 32
  • جنسیت : پسر
پاسخ : Nixos, ماشینِ زمان
« پاسخ #2 : 03 فروردین 1398، 12:13 ق‌ظ »
درود.
در nixos مفهومی وجود داره به نام چنل. چنل ها معمولا توی تاریخ های مشخصی فیکس میشن و فقط پچ های امنیتی دریافت می‌کنند. (مناسب برای کسانی که سیستم با کمترین ریسک رو ترجیح میدن)
اگر علاقه داشته باشین شبیه آرچ از آخرین تغییرات بسته ها استفاده کنید ( bleeding edge ) میتونید از چنل unstable استفاده کنید.(چیزی که خودم دارم استفاده میکنم در حال حاضر)
راجع به بسته ها هم بگم که بله. نسبتا مخازن کاملی داره.
(https://nixos.org/nixos/packages.html)
هر چند بسته های فارسی من توش ندیدم. واسه همین شروع کردم به پکیج نوشتن براش.jcal رو منتشر کردم و فونت های فارسی هم تو راهه :)
سعی میکنم نرم افزارهای مشهور فارسی مثل ساغر، bicon و... رو هم قرار بدم.
« آخرین ویرایش: 03 فروردین 1398، 12:16 ق‌ظ توسط LinArcX »
The World Will Look Up And Shout "SAVE US!!!" And I Will Look Down and Whisper
"...GNU"

آفلاین LinArcX

  • Jr. Member
  • *
  • ارسال: 32
  • جنسیت : پسر
پاسخ : Nixos, ماشینِ زمان
« پاسخ #3 : 03 فروردین 1398، 12:38 ق‌ظ »
یک گروه تلگرامی هم راه انداختم. هر کسی که مایل بود جامعه فارسی زبان این توزیع رو به کمک هم تقویت کنیم میتونه بهم ملحق بشه.

https://t.me/joinchat/I_5DGxYbvaZ_kWsedDSgxQ
« آخرین ویرایش: 27 فروردین 1398، 07:51 ب‌ظ توسط LinArcX »
The World Will Look Up And Shout "SAVE US!!!" And I Will Look Down and Whisper
"...GNU"

آفلاین Silvio Dante

  • High Hero Member
  • *
  • ارسال: 1220
  • جنسیت : پسر
  • Arch Linux
    • وبلاگ شخصی
پاسخ : Nixos, ماشینِ زمان
« پاسخ #4 : 03 فروردین 1398، 04:54 ب‌ظ »
سلام
مرسی از توضیحات‌تون.
من قبلا تعریف زیادی از nixos شنیده بودم و حتی توی این انجمن هم یه تاپیک زدم تا اگه کسی تجربه‌ای باهاش داره تجربه‌ش رو باهام به اشتراک بذاره.
بنظر توزیع خیلی جالبی میاد و حتما باید امتحانش کنم.
فقط یه سوال، آیا مستندات کاملی در مورد مدیریت سیستم و البته زبان nix وجود داره که کاملا باهاش بشه سیستم رو مدیریت و مشکلات رو رفع کرد؟
« آخرین ویرایش: 03 فروردین 1398، 04:56 ب‌ظ توسط Silvio Dante »
به ما نگفته بودند ایران در زمان احمدشاه قاجار چگونه بوده است. همیشه به ما دادند، ما هم فکر کردیم باید می‌داده‌اند و تازه خیال می‌کردیم کم‌مان است باز هم می‌خواستیم!!
فریدون فرخزاد

آفلاین LinArcX

  • Jr. Member
  • *
  • ارسال: 32
  • جنسیت : پسر
پاسخ : Nixos, ماشینِ زمان
« پاسخ #5 : 03 فروردین 1398، 07:34 ب‌ظ »
سلام.
بله مستندات وجود داره. البته نباید چیزی شبیه ویکی آرچ رو انتظار داشته باشیم ازشون. در اولین قدم پیشنهاد میدم manual مربوط به nixosرو بخونید: (شامل اطلاعات پایه ای و اساسی راجع به nixos و شروع به کار در این توزیع):
https://nixos.org/nixos/manual
برای یادگیری خود زبان nix:
https://nixos.org/nix/manual
اگه اطلاعاتی راجع به ساخت پکیج و کلا نحوه سازوکار بسته ها در nixos میخواین بدونین:
https://nixos.org/nixpkgs/manua
ویکی شون که به تازگی راه افتاده و نسبتا هم خوبه:
https://nixos.wiki/wiki
لیست کل بسته ها:
https://nixos.org/nixos/packages.html
لیست کل آپشن ها:
https://nixos.org/nixos/options.html
معمولا با خوندن رفرنس های بالا که بهتون دادم 80٪ راه رو رفتین و درک مقدماتی و نسبتا خوبی از این توزیع پیدا میکنید. اگر نیاز به پرسیدن سوالی داشتید هم راه های زیادی وجود داره. مثلا خود من اول از همه توی کانال irc شون به آدرس nixos# سوال مو می پرسم. افراد خیلی مشتاق و خوبی اونجا وجود دارند و همیشه کسانی هستند که با روی باز به مشکلات شما گوش بدند و کمک تون کنند.
در reddit هم فعال هستند.(جهت پرسش های مفصل پیشنهاد میشه):
https://www.reddit.com/r/NixOS/
و البته فوروم شون:
https://discourse.nixos.org/
« آخرین ویرایش: 03 فروردین 1398، 07:52 ب‌ظ توسط LinArcX »
The World Will Look Up And Shout "SAVE US!!!" And I Will Look Down and Whisper
"...GNU"

آفلاین LinArcX

  • Jr. Member
  • *
  • ارسال: 32
  • جنسیت : پسر
پاسخ : Nixos, ماشینِ زمان
« پاسخ #6 : 27 فروردین 1398، 08:13 ب‌ظ »
نصب NixOS
خب قدم اول برای ورود به این دنیای جذاب یادگرفتن نحوه نصب و کانفیگ ابتدایی این توزیع هست. هر چند نوشتار انگلیسی به خوبی و با زبانی روان همه چیز رو توضیح داده ولی من سعیم بر این هست یک آموزشی فارسی مناسب هم برای دوستانی که مشکل زبان انگلیسی دارند تهیه کنم. خوب پس بیاین شروع کنیم :)

نکته 1: پیش فرض من بر این هست که قصد دارین nixos رو روی سیستم واقعی تست کنید. برای تست روی ماشین مجازی(و صراحتا virtual box) فایل مجزایی در این آدرس قابل دریافت هست.

1. دانلود فایل ایزو

به صفحه دانلود مراجعه کنید و ایزوی مد نظرتونو دانلود کنید. توصیه من به شما دانلود Graphical live CD, 64-bit Intel/AMD هست. البته اگر دوست دارین از طریق واسط خط فرمان کارهاتو انجام بدین میتونید از Minimal installation CD, 64-bit Intel/AMD (SHA-256) استفاده کنید.
دقت کنید که معماری رو به درستی انتخاب کرده باشید.


2. بوتیبل سازی ایزو

با استفاده از ابزاری شبیه unetbootin, etcher یا dd فایل ایزو رو بر روی DVD یا فلش تون رایت کنید.

3. ورود به محیط NixOS
بعد از ریبوت کردن سیستم صفحه خوش آمد گویی رو مشاهده میکنید. گزینه اول رو انتخاب کنید و مدتی منتظر بمونید تا به مرحله بعد برید.


4. سوییچ به محیط گرافیکی kde
اگر ایزوی گرافیکال رو دانلود کرده باشین، با صدور فرمان زیر به محیط گرافیکی kde وارد میشید:
systemctl start display-manager
نکته 2: در هر جای کار که نیاز به کمک داشته باشید با صدور فرمان nixos-help، میتونید manaul رو در خط فرمان احضار کنید.

5. چک کردن اتصال به اینترنت
قدم اول اینه که از صحت ارتباط به اینترنت مطمین باشیم.(چون قراره تو مراحل بعد یه سری بسته دانلود و نصب کنیم.)
چند راه برای اتصال به اینترنت وجود داره. ساده ترینش اتصال به کمک network manager هست که در محیط پلاسما میتونید خیلی راحت شبکه تونو پیدا کنید و وصل بشین به اینترنت.

نکته 3: برای اطمینان از اتصال کامل میتونید سایتی رو به دلخواه پینگ بگیرید:
ping -c 3 gnu.org
6. اطلاع از نوع پارتیشن تیبل
تو این مرحله باید هاردمون رو پارتیشن بندی کنیم. ابزارهای زیادی برای این کار تو اینستالر nixOsتعبیه شدند. مثل parted, fdisk, gdisk,cfdisk, and cgdisk. ولی من از cfdiskاستفاده میکنم.
این مرحله یک پیش نیاز مهم داره: "اطلاع از نوع پارتیشن تیبل"
همون طور که ممکنه اکثرتون بدونید ما دو پارتیشین تیبل خیلی معروف و مهم به نام های GPT و MBR داریم.(برای مشاهده تفاوت این دو، اینجا را ببینید.)اگر در لینوکس هستید برنامه gdisk را نصب کنید و این کارها رو انجام بدید:
sudo gdisk -l /dev/sda
اگر در خروجی به این پیغام برخوردید:
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
یعنی پارتیشن تیبل سیستم شما mbr هست و اگه با نتیجه ای هم چون زیر مواجه شدید:
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

یعنی دارید از GPTاستفاده میکنید.
نکته 4: کاربران ویندوزی هم میتونن با اجرای cmd و صدور فرمان diskpart و سپس دستور list disk از نوع پارتیشن تیبل سیستم شون آگاه بشن. به این صورت که اگر تیک ستون gpt خورده باشد یعنی که پارتیشن تیبل هاردتون gpt هست.در غیر این صورت mbr هست.

نکته 5: در این آموزش، فرض من این هست که پارتیشن تیبل سیستم تون mbr هست. اگر gpt بود به داکیومنت های اصلی nixos مراجعه کنید.

7. پارتیشن بندی هارددیسک
من فرض میکنم که قبلا پارتیشن بندی به کمک cfdiskرو انجام دادین. اگر نه که به بخش ششم این آموزش مراجعه کنید. (نگران نباشید، مفاهیم یکسان هستند.)

نکته 6: پیشنهاد میکنم یه پارتیشن روت (با حجم دلخواه و حداقل 30 گیگابایت) و یه پارتیشن سواپ با حجم 1 گیگ بسازید.

8. فرمت کردن پارتیشن ها
پارتیشن هایی که ساختیم هنوز شناخته شده نیستند..باید اونها رو فرمت کنیم تا قابلیت مانت شدن داشته باشند. فرمت کردن پارتیشن ها به سادگی صورت میگیره. فقط کافی ست دستورات زیر را بزنید:
mkfs.ext4 -L nixos /dev/sda1
mkswap -L swap /dev/sda2

9. مانت کردنِ پارتیشنهای فرمت شده
سپس پارتیشن های فرمت شده رو سوار(مانت) میکنیم:
mount /dev/disk/by-label/nixos /mnt
swapon /dev/sda2

10. ساخت فایل configuration.nix
NixOS یه قلب تپنده مرکزی داره. اونم فایلی هست به نام configuration.nixکه در مسیر:
/mnt/etc/nixos/configuration.nixقرار داره.
دستور زیر این قطعه حیاتی رو برامون میسازه:
nixos-generate-config --root /mnt
11. ویرایش و شخصی سازی فایل configuration.nix
خب قسمت هیجان انگیز و متفاوت ماجرا از این جا شروع میشه. بر خلاف سایر توزیع ها (از جمله آرچ و دبیان و ...) که شما باید ریزه کاری هایی مثل تنظیم ساعت سیستم، تنظیم locale،اضافه کردن یوزر جدید و ... رو هم چنان در محیط نصب انجام بدید، ولی در nixosتمام این اتفاقات به صورت مرکزی و declrative رخ میده.(توسط یک سری تکه کد که بهش میگن options) از این به بعد هر آنچه که سیستم شما نیاز داره.(از جمله اضافه کردن بسته ای خاص، فعال کردن سرویسی دلخواه و..) رو از طریق این فایل انجام میدیم و دیگه کاری با شاخه های /etcو امثالهم نداریم و چیزی رو دستی عوض نمیکنیم.
خب بیاید برای شروع کار به توزیع مون بگین که میخوایم از چه بوت لودری قراره استفاده کنیم. اگر سیستم تون لگاسی هست(BIOS) آپشن زیر رو در فایل configuration.nix قرار بدید:
boot.loader.grub.device
نکته 7: برای حالت EFI، آپشن زیر رو قرار بدید:
boot.loader.efi
و اگه توزیع ها و osهایی دیگه ای هم روی هارد دیسک تون دارین این خط رو اضافه کنید:
boot.loader.grub.useOSProber
فایل configuration.nix شما باید چیزی شبیه زیر شده باشه:
{ config, pkgs, ... }: {
  imports = [
    # Include the results of the hardware scan.
    ./hardware-configuration.nix
  ];

  boot.loader.grub.device = "/dev/sda";   # (for BIOS systems only)
  boot.loader.systemd-boot.enable = true; # (for UEFI systems only)

  # Note: setting fileSystems is generally not
  # necessary, since nixos-generate-config figures them out
  # automatically in hardware-configuration.nix.
  #fileSystems."/".device = "/dev/disk/by-label/nixos";

  # Enable the OpenSSH server.
  services.sshd.enable = true;
}

12. نصب و بیلد فایل کانفیگ:
با صدور دستور زیر فایل کانفیگ شما توسط nixos پردازش و بیلد و سیستم نهایی تون مطابق خواسته های شما ساخته میشه:
nixos-install
13. ریبوت و شروعی دوباره..
من حالت خیلی پایه ای رو برای فایل کانفیگ در نظر گرفتم. در واقع شما توی اون فایل میتونید همه کار کنید. یوزر جدید تعریف کنید. بگید چه wm یا de ای میخواید داشته باشید. مثلا سرویس تور تون رو فعال کنید. فایروال راه بندازید و الی آخر.. اگه کنجکاوین بدونید چه کارهایی میشه کرد، فایل های کانفیگ سیستم من رو ببینید.
در واقع باقی زندگی شما در nixos فقط در همین یه دونه فایل و گشت و گذار در دنیای option ها و package ها میگذره.
خوش آمدید به دنیای declrative :)

پیوندها:
1. آپشن ها
« آخرین ویرایش: 28 فروردین 1398، 12:28 ق‌ظ توسط LinArcX »
The World Will Look Up And Shout "SAVE US!!!" And I Will Look Down and Whisper
"...GNU"