3.8. حذف نصب Nix
چندکاربره
حذف یک نصب چندکاربره به سیستمعامل بستگی دارد.
لینوکس
اگر روی لینوکس با systemd هستید:
- سرویس daemon مربوط به Nix را حذف کنید:
sudo systemctl stop nix-daemon.service
sudo systemctl disable nix-daemon.socket nix-daemon.service
sudo systemctl daemon-reload - حذف فایلهای ایجادشده توسط Nix:
sudo rm -rf /etc/nix /etc/profile.d/nix.sh /etc/tmpfiles.d/nix-daemon.conf /nix ~/.local/share/nix ~/.local/state/nix ~/.cache/nix ~/.nix-defexpr ~/.nix-profile ~/.nix-channels ~root/.nix-channels ~root/.nix-defexpr ~root/.nix-profile ~root/.cache/nix ۳. حذف کاربران ساخت (builders) و گروه آنها:
for i in $(seq 1 32); do
sudo userdel nixbld$i
done
sudo groupdel nixbld همچنین ممکن است ارجاعاتی به Nix در فایلهای زیر وجود داشته باشد:
/etc/bash.bashrc/etc/bashrc/etc/profile/etc/zsh/zshrc/etc/zshrc
که میتوانید آنها را حذف کنید.
FreeBSD
- سرویس daemon مربوط به Nix را متوقف کرده و حذف کنید:
sudo service nix-daemon stop
sudo rm -f /usr/local/etc/rc.d/nix-daemon
sudo sysrc -x nix_daemon_enable - حذف فایلهای ایجادشده توسط Nix:
sudo rm -rf /etc/nix /usr/local/etc/profile.d/nix.sh /nix ~/.local/share/nix ~/.local/state/nix ~/.cache/nix ~/.nix-defexpr ~/.nix-profile ~/.nix-channels ~root/.nix-channels ~root/.nix-defexpr ~root/.nix-profile ~root/.cache/nix ۳. کاربران ساخت و گروه آنها را حذف کنید:
for i in $(seq 1 32); do
sudo pw userdel nixbld$i
done
sudo pw groupdel nixbld ۴. همچنین ممکن است ارجاعاتی به Nix در موارد زیر وجود داشته باشد:
/usr/local/etc/bashrc/usr/local/etc/zshrcفایلهای پیکربندی شل در پوشههای خانهٔ کاربران
که میتوانید آنها را حذف کنید.
macOS
بهروزرسانی به macOS 15 Sequoia
اگر اخیراً به macOS 15 Sequoia بهروزرسانی کردهاید و دچار مشکلات زیر شدهاید
error: the user '_nixbld1' in the group 'nixbld' does not existهنگام اجرای دستورات Nix، برای اطلاع از دستورالعملهای رفع مشکل نصب بدون نیاز به نصب مجدد، به مسألهٔ گیتهاب NixOS/nix#10892 مراجعه کنید.
- اگر فایلهای راهاندازی شل سرتاسر سیستم از زمان نصب Nix تغییری نکردهاند، از نسخههای پشتیبان تهیهشده توسط نصبکننده استفاده کنید:
sudo mv /etc/zshrc.backup-before-nix /etc/zshrc
sudo mv /etc/bashrc.backup-before-nix /etc/bashrc
sudo mv /etc/bash.bashrc.backup-before-nix /etc/bash.bashrc در غیر این صورت، برای حذف خطوطی که nix-daemon.sh را منبعدهی (source) میکنند، /etc/zshrc، /etc/bashrc و /etc/bash.bashrc را ویرایش کنید. این خطوط باید به شکل زیر باشند:
# Nix
if [ -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' ]; then
. '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh'
fi
# End Nix ۲. متوقف کردن و حذف سرویسهای دیمن Nix:
sudo launchctl unload /Library/LaunchDaemons/org.nixos.nix-daemon.plist
sudo rm /Library/LaunchDaemons/org.nixos.nix-daemon.plist
sudo launchctl unload /Library/LaunchDaemons/org.nixos.darwin-store.plist
sudo rm /Library/LaunchDaemons/org.nixos.darwin-store.plist این کار خدمت پسزمینه Nix را متوقف کرده و مانع از راهاندازی مجدد آن در بوت بعدی سیستم میشود.
- گروه
nixbldو کاربران_nixbuildNرا حذف کنید:
sudo dscl . -delete /Groups/nixbld
for u in $(sudo dscl . -list /Users | grep _nixbld); do sudo dscl . -delete /Users/$u; done این کار تمام کاربران ساختی را که دیگر کاربردی ندارند حذف خواهد کرد.
- فایل fstab را با استفاده از
sudo vifsویرایش کنید تا خط مربوط به متصل کردن (mount) حجم انبار Nix روی/nixکه به شکل زیر است، حذف شود
UUID=<uuid> /nix apfs rw,noauto,nobrowse,suid,owners یا
LABEL=Nix\040Store /nix apfs rw,nobrowse با قرار دادن مکاننما روی خط مربوطه با استفاده از کلیدهای جهتنما، فشردن dd و سپس تایپ :wq برای ذخیره فایل.
این کار مانع از اتصال خودکار حجم انبار Nix خواهد شد.
- فایل
/etc/synthetic.confرا ویرایش کنید تا خطnixحذف شود. اگر این تنها خط موجود در فایل است، میتوانید آن را به طور کامل حذف کنید:
if [ -f /etc/synthetic.conf ]; then
if [ "$(cat /etc/synthetic.conf)" = "nix" ]; then
sudo rm /etc/synthetic.conf
else
sudo vi /etc/synthetic.conf
fi
fi این کار مانع از ایجاد پوشه خالی /nix خواهد شد.
- فایلهایی را که نیکس به سیستم شما اضافه کرده است، به جز انبار، حذف کنید:
sudo rm -rf /etc/nix /var/root/.nix-profile /var/root/.nix-defexpr /var/root/.nix-channels ~/.nix-profile ~/.nix-defexpr ~/.nix-channels ~/.local/share/nix ~/.local/state/nix ~/.cache/nix ۷. حذف حجم (Volume) انبار Nix:
sudo diskutil apfs deleteVolume /nix این کار حجم انبار Nix و هر چیزی را که به انبار اضافه شده بود، حذف خواهد کرد.
اگر خروجی نشان دهد که فرمان نتوانسته حجم را حذف کند، باید مطمئن شوید که حجم انبار Nix بدون اتصال (unmounted) ندارید. به دنبال حجمی با نام "Nix Store" در خروجی فرمان زیر بگردید:
diskutil list اگر حجم «انبار نیکس» (Nix Store) را پیدا کردید، آن را با اجرای دستور diskutil apfs deleteVolume و شناسه diskXsY حجم انبار حذف کنید.
اگر خطایی مبنی بر اینکه حجم توسط هسته (kernel) در حال استفاده است دریافت کردید، سیستم را راهاندازی مجدد (Reboot) کرده و بلافاصله پیش از شروع هر فرآیند دیگری، حجم را حذف کنید.
نکته
پس از اتمام مراحل ذکر شده در اینجا، همچنان یک پوشه
/nixخالی خواهید داشت. این نشانهٔ انتظاری از یک حذف نصب موفق است. پوشه/nixخالی در راهاندازی مجدد (reboot) بعدی ناپدید خواهد شد.برای اتمام حذف نصب Nix نیازی به راهاندازی مجدد (reboot) ندارید. حذف نصب کامل شده است. سیستمعامل macOS (نسخه Catalina به بعد) مستقیماً پوشههای ریشه را کنترل میکند و ریشهٔ فقطخواندنی آن مانع از حذف دستی نقطه اتصال
/nixخالی میشود.
تککاربره
برای حذف یک نصب تککاربره از Nix، دستور زیر را اجرا کنید:
rm -rf /nix ~/.nix-channels ~/.nix-defexpr ~/.nix-profile ~/.local/share/nix ~/.local/state/nix ~/.cache/nix ممکن است بخواهید ارجاعات به Nix را نیز بهصورت دستی از فایل ~/.profile خود حذف کنید.