راهنمای تخصصی نصب Chocolatey و مدیریت پکیج در ویندوز
· 22 خرداد · خواندن 7 دقیقه شوکولاتی یا Chocolatey یک مدیر بسته یا Package Manager مبتنی بر NuGet برای سیستم عامل ویندوز است که فرآیند نصب، ارتقا، پیکربندی و حذف نرم افزارها را از طریق رابط خط فرمان یا CLI به صورت کاملا خودکار انجام می دهد. این ابزار معادلapt-get در لینوکس برای ویندوز محسوب می شود و با حذف مراحل دستی مانند دانلود فایل های اجرایی، عبور از ویزاردهای نصب و کلیک کردن دکمه های Next، زمان استقرار محیط ها را به شدت کاهش می دهد. در این مقاله، فرآیند نصب و استفاده از Chocolatey با بالاترین سطح جزئیات و استانداردهای حرفه ای بررسی می شود.
پیش نیازهای سیستمی و امنیتی
قبل از شروع فرآیند نصب، اطمینان حاصل کنید که سیستم شما شرایط زیر را دارا است:
سیستم عامل ویندوز 7 یا بالاتر برای نسخه های استاندارد و ویندوز سرور 2003 یا بالاتر برای محیط های سرور.
فریم ورک Microsoft .NET Framework نسخه 4.0 یا بالاتر. در صورت عدم وجود، Chocolatey نسخه 4.8 را به صورت خودکار نصب می کند.
دسترسی مدیریتی یا Administrator Privilege خط فرمان. بدون این سطح دسترسی، تغییرات در متغیرهای محیطی و مسیرهای سیستمی امکان پذیر نیست.
گام اول آماده سازی محیط خط فرمان
برای جلوگیری از خطاهای دسترسی و مسدود شدن اسکریپت های اجرایی، باید خط فرمان را در حالت اجرای به عنوان مدیر باز کنید. اگر از پاورشل استفاده می کنید، حتما از نسخه PowerShell نسخه 3 یا بالاتر بهره ببرید.
در صورت استفاده از Command Prompt یا CMD:
در منوی استارت عبارت cmd را جستجو کنید. روی Application کلیک راست کرده و گزینه Run as administrator را انتخاب کنید.
در صورت استفاده از PowerShell:
در منوی استارت عبارت powershell را جستجو کنید. روی آن کلیک راست کرده و گزینه Run as administrator را انتخاب کنید.
سپس باید Execution Policy را برای اجازه اجرای اسکریپت ها تغییر دهید. دستور زیر را در پاورشل وارد کرده و Enter بزنید:
Set-ExecutionPolicy Bypass -Scope Process -Force
توضیح پارامترها:
پارامتر Bypass به معنای نادیده گرفتن تمام محدودیت های اجرایی برای اسکریپت هاست.
پارامتر Scope Process تضمین می کند که این تغییر سطح دسترسی تنها برای پنجره جاری پاورشل اعمال شود و پس از بستن پنجره، تنظیمات امنیتی سیستمتان به حالت پیش فرض بازگردد.
گام دوم اعمال پروتکل امنیتی TLS
مخازن رسمی Chocolatey از پروتکل امنیتی TLS 1.2 استفاده می کنند. در نسخه های قدیمی تر ویندوز، پیش فرض ارتباطی TLS 1.0 است که توسط سرورهای Chocolatey رد می شود و خطای دسترسی ایجاد می کند. برای اجبار سیستم به استفاده از TLS 1.2، دستور زیر را در پاورشل اجرا کنید:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
این دستور کلاس مدیریت نقاط سرویس دات نت را پیکربندی می کند تا ارتباطات رمزنگاری شده با استاندارد TLS 1.2 برقرار شوند.
گام سوم اجرای اسکریپت نصب خودکار
در این مرحله، اسکریپت رسمی نصب را از سرورهای مرکزی دریافت و اجرا می کنیم. بسته به محیط خط فرمان خود، یکی از دستورات زیر را استفاده کنید.
برای محیط PowerShell:
Set-ExecutionPolicy Bypass -Scope Process -Force; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
برای محیط Command Prompt یا CMD:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
تحلیل فنی دستورات:
دستور New-Object System.Net.WebClient یک کلاینت وب برای دانلود فایل ها ایجاد می کند.
متد DownloadString محتوای اسکریپت نصب را از آدرس اینترنتی به صورت رشته متنی دریافت می کند.
دستور iex یا Invoke-Expression رشته متنی دریافتی را به عنوان یک دستور قابل اجرا در سیستم تفسیر و اجرا می کند.
در دستور CMD، عدد 3072 معادل عددی پروتکل TLS 1.2 در دات نت فریم ورک است و با عملگر bitwise یا bor به تنظیمات فعلی اضافه می شود.
بخش پایانی دستور CMD یعنی SET PATH مسیر پوشه bin شوکولاتی را به متغیرهای محیطی یا Environment Variables سیستم در پنجره جاری اضافه می کند.
گام چهارم تایید و اعتبارسنجی نصب
پس از اتمام اجرای اسکریپت بدون خطا، باید نصب بودن ابزار را تایید کنید. پنجره خط فرمان را ببندید و مجددا در حالت Administrator باز کنید. دستور زیر را وارد کنید:
choco --version
در صورتی که خروجی عددی مانند 2.x.x یا 1.x.x را نمایش دهد، فرآیند نصب با موفقیت انجام شده است. برای دریافت اطلاعات جامع درباره پیکربندی خود Chocolatey دستور زیر را اجرا کنید:
choco info
مکانیزم نصب و مدیریت پکیج ها
شوکولاتی نرم افزارها را به صورت سایلنت یا بدون دخالت کاربر نصب می کند. این فرآیند شامل دانلود فایل نصب از منبع اصلی، استخراج در صورت فشرده بودن، اجرای دستورات نصب خاموش و ثبت اطلاعات در سیستم است. فایل های نصبی معمولا در مسیر C:\ProgramData\chocolatey\lib ذخیره می شوند.
جستجوی اپلیکیشن ها
برای یافتن نرم افزار مورد نظر در مخازن جامعه کاربری، دستور زیر را به همراه نام نرم افزار وارد کنید:
choco search firefox
این دستور تمام پکیج هایی که در نام یا توضیحات آن ها کلمه firefox وجود دارد را با ذکر نسخه نمایش می دهد.
نصب اپلیکیشن ها
برای نصب یک نرم افزار از دستور install استفاده می شود. به عنوان مثال برای نصب مرورگر فایرفاکس و ویرایشگر کد Visual Studio Code دستورات زیر را اجرا کنید:
choco install firefox -y
choco install vscode -y
پارامتر y- به معنای Yes است. بدون این پارامتر، Chocolatey از شما تاییدیه اجرای اسکریپت را درخواست می کند که در اسکریپت نویسی اتوماسیون مانع ایجاد می کند. با اضافه کردن این پارامتر، تمام مراحل تایید به صورت خودکار پاسخ مثبت داده می شوند.
ارتقا یا آپدیت اپلیکیشن ها
برای بررسی وجود نسخه جدید برای یک نرم افزار خاص و نصب آن، از دستور upgrade استفاده کنید:
choco upgrade firefox -y
اگر بخواهید تمام نرم افزارهای نصب شده عبری Chocolatey را به آخرین نسخه پایدار ارتقا دهید، از دستور زیر استفاده کنید:
choco upgrade all -y
این دستور مخازن را بروزرسانی کرده و نسخه های قدیمی را جایگزین می کند.
پین کردن یا ثابت نگه داشتن نسخه
در محیط های سازمانی گاهی نیاز است یک نرم افزار در نسخه خاصی باقی بماند و با دستور ارتقای کلی آپدیت نشود. قابلیت Pin این کار را انجام می دهد:
choco pin add -n=firefox
برای حذف این محدودیت:
choco pin remove -n=firefox
حذف اپلیکیشن ها
برای پاک کردن کامل یک نرم افزار از سیستم به همراه وابستگی هایش که دیگر نیاز نیستند، از دستور uninstall استفاده کنید:
choco uninstall firefox -y
پیکربندی های پیشرفته و سازمانی
برای استفاده در سطح Enterprise، تعدادی تنظیمات حیاتی وجود دارد که باید اعمال شوند.
تغییر مسیر کش
به صورت پیش فرض، فایل های دانلود شده در مسیر C:\ProgramData\chocolatey\lib قرار می گیرند. برای تغییر این مسیر به درایوی با فضای بیشتر، دستور زیر را اجرا کنید:
choco config set cacheLocation D:\ChocoCache
تنظیم پراکسی یا Proxy
در شبکه هایی که دسترسی مستقیم به اینترنت ندارند، باید آدرس سرور پراکسی را به Chocolatey معرفی کنید:
choco config set proxy http://proxy-server:8080
در صورت نیاز به احراز هویت:
choco config set proxyUser username
choco config set proxyPassword password
فعال سازی تایید خودکار در سطح سیستمی
برای اینکه نیازی به اضافه کردن پارامتر y- به انتهای هر دستور نباشد، ویژگی allowGlobalConfirmation را فعال کنید:
choco feature enable -n=allowGlobalConfirmation
عیب یابی و رفع مشکلات رایج
خطای دسترسی یا Access Denied: همیشه مطمئن شوید خط فرمان را با دسترسی Administrator باز کرده اید.
خطای فایل در حال استفاده یا File in Use: اگر هنگام ارتقا با این خطا مواجه شدید، نرم افزار مورد نظر را ببندید و مجددا دستور را اجرا کنید. در صورت ادامه مشکل، سیستم را ری استارت کرده و ارتقا را در حالت Clean Boot انجام دهید.
مشکلات وابستگی یا Dependencies: در صورتی که نصب یک پکیج به دلیل عدم نصب پیش نیازها متوقف شود، پارامترا i- را برای نادیده گرفتن وابستگی ها اضافه کنید، هرچند توصیه نمی شود:
choco install packagename -y -i
نکته پایداری و ماندگاری
نرم افزارهایی که توسط Chocolatey نصب می شوند، اپلیکیشن های مستقل ویندوز هستند. در صورتی که تصمیم گرفتید Chocolatey را از سیستم حذف کنید، کافی است پوشه C:\ProgramData\chocolatey را پاک کنید. با این کار ابزار مدیریت حذف می شود، اما نرم افزارهایی که پیش از آن نصب کرده اید به کار خود ادامه می دهند و از سیستم پاک نخواهند شد. برای حذف کامل، ابتدا تمام اپلیکیشن ها را از طریق دستور uninstall پاک کنید و سپس پوشه اصلی را حذف نمایید.
