تکنولوژے و موسیقے و اخبار با پوریا رضاتبار بالانقیبے

تکنولوژے و موسیقے و اخبار با پوریا رضاتبار بالانقیبے

تکنولوژے בانشے کاربرבے براے بهبوב زنـבگے انساט با استـ؋ـاבـہ از ابزارها و نوآوری‌هاے علمی

نصب و مدیریت حرفه‌ای اپلیکیشن با Winget در ویندوز

ویندوز پکیج منیجر (Winget) ابزار رسمی و خط‌فرمانی مایکروسافت برای مدیریت نرم‌افزارها در سیستم‌عامل ویندوز است. این ابزار به مهندسان شبکه، توسعه‌دهندگان و کاربران حرفه‌ای اجازه می‌دهد تا فرآیندهای نصب، به‌روزرسانی، حذف و پیکربندی اپلیکیشن‌ها را به صورت کاملا خودکار، بی‌صدا و مقیاس‌پذیر انجام دهند. Winget وابستگی به رابط کاربری گرافیکی را حذف کرده و با پشتیبانی از مخازن معتبر مانند Winget.rs و Microsoft Store، امنیت و پایداری چرخه عمر نرم‌افزار را تضمین می‌کند.

بخش اول: پیش‌نیازها و آماده‌سازی محیط

برای استفاده از Winget، سیستم شما باید شرایط زیر را داشته باشد:
ویندوز 10 نسخه 1709 یا بالاتر، یا ویندوز 11.
آپدیت App Installer از طریق مایکروسافت استور. این آپدیت هسته اصلی Winget را در اختیار شما قرار می‌دهد.
دسترسی ادمین (Administrator) برای اجرای دستورات نصب و تغییرات در سطح سیستم.
ویندوز ترمینال (Windows Terminal) با پیکربندی پیش‌فرض روی PowerShell یا Command Prompt.

بخش دوم: نصب و تایید نسخه Winget

در صورتی که App Installer به روز باشد، Winget به صورت پیش‌فرض در مسیر سیستم قرار دارد. برای تایید نصب و بررسی نسخه، ترمینال را با دسترسی ادمین باز کنید و دستور زیر را وارد کنید:

winget --version

خروجی باید شماره نسخه نصب شده را نشان دهد. در صورت دریافت خطا، باید اپلیکیشن App Installer را در مایکروسافت استور بروزرسانی کنید.

برای مشاهده جزئیات کامل پیکربندی و مخازن متصل به Winget از دستور زیر استفاده کنید:

winget --info

بخش سوم: سینتکس پایه و جستجوی حرفه‌ای اپلیکیشن‌ها

منطق فرمانی Winget بر اساس سه پارامتر اصلی عمل می‌کند: نام (Name)، شناسه (Id) و منبع (Source). استفاده از شناسه (Id) دقیق‌ترین روش برای جلوگیری از تداخل نرم‌افزارهای هم‌نام است.

جستجوی نرم‌افزار:
برای یافتن اپلیکیشن مورد نظر در مخازن، دستور search استفاده می‌شود.

winget search "Mozilla Firefox"

خروجی این دستور شامل ستون‌های Name، Id، Version و Source است. برای جستجوی محدود به یک منبع خاص می‌توانید پارامتر منبع را اضافه کنید:

winget search "Visual Studio Code" --source winget

مشاهده جزئیات بسته:
پیش از نصب، می‌توانید اطلاعات دقیق نرم‌افزار شامل سازنده، نسخه، لایسنس و آدرس دانلود را بررسی کنید:

winget show --id Mozilla.Firefox

بخش چهارم: استراتژی‌های نصب و پارامترهای پیشرفته

دستور اصلی نصب در Winget به شکل زیر است:

winget install --id Mozilla.Firefox

با این حال، در محیط‌های حرفه‌ای و خودکار، استفاده از پارامترهای تکمیلی الزامی است تا از توقف پروسه نصب جلوگیری شود.

پارامترهای حیاتی نصب:

--silent یا -h : اجرای نصب به صورت کاملا بی‌صدا. هیچ رابط کاربری یا پنجره‌ای به کاربر نمایش داده نمی‌شود.
--accept-package-agreements : تایید خودکار تمام توافق‌نامه‌های مجوز (EULA) در طول نصب.
--accept-source-agreements : تایید خودکار توافق‌نامه‌های منبع نرم‌افزار.
--location : تعیین مسیر دقیق نصب نرم‌افزار روی دیسک سخت.
--architecture : تحمیل معماری خاص برای نصب (مثلا x64، x86، arm64).
--override : تزریق سوییچ‌های اختصاصی به فایل نصب‌کننده اصلی (مثلا سوییچ‌های مخصوص MSI یا Inno Setup).

مثال کاربردی نصب حرفه‌ای:
نصب نرم‌افزار VS Code به صورت بی‌صدا، با تایید خودکار لایسنس‌ها و در مسیر درایو D:

winget install --id Microsoft.VisualStudioCode --silent --accept-package-agreements --accept-source-agreements --location "D:\Software\VSCode"

نصب نسخه خاص:
برای نصب یک نسخه مشخص از یک نرم‌افزار، پارامتر version استفاده می‌شود:

winget install --id Telegram.TelegramDesktop --version 4.8.1

بخش پنجم: مدیریت چرخه حیات نرم‌افزار (ارتقا و حذف)

قابلیت برتری Winget نسبت به بسیاری از پکیج منیجرهای سنتی، توانایی شناسایی نرم‌افزارهایی است که از طریق روش‌های دیگر (خارج از Winget) نصب شده‌اند.

ارتقای نرم‌افزار:
برای بررسی نرم‌افزارهای دارای آپدیت در سیستم:

winget upgrade

برای ارتقای یک اپلیکیشن خاص:

winget upgrade --id Google.Chrome

برای ارتقای همزمان تمامی نرم‌افزارهای قابل آپدیت در سیستم:

winget upgrade --all

حذف نرم‌افزار:
حذف نرم‌افزار نیز با شناسه یکتا انجام می‌شود. این دستور اپلیکیشن را از رجیستری و سیستم پاکسازی می‌کند:

winget uninstall --id Valve.Steam

بخش ششم: مدیریت مخازن (Sources)

Winget از مخازن مختلفی تغذیه می‌کند. دو مخزن پیش‌فرض winget (متعلق به جامعه GitHub) و msstore هستند. برای اطمینان از یکپارچگی داده‌ها، مخازن باید به طور دوره‌ای بروزرسانی شوند.

برای مشاهده مخازن فعال:

winget source list

برای بروزرسانی متادیتای مخازن (در صورت دریافت خطای عدم یافتن نرم‌افزار جدید):

winget source reset --force

در صورت نیاز به اضافه کردن مخزن اختصاصی سازمانی (مثلا نگهداری نرم‌افزارهای درون‌سازمانی):

winget source add --name MyCompanyRepo --arg "https://mycompany.com/winget-feed"

بخش هفتم: صادر و وارد کردن تنظیمات (ایده‌آل برای Sysprep و توزیع انبوه)

یکی از قدرتمندترین ویژگی‌های Winget برای مهندسان زیرساخت، قابلیت خروجی گرفتن از لیست نرم‌افزارهای نصب شده و نصب دسته‌جمعی آن‌ها در سیستم‌های جدید است.

خروجی گرفتن از لیست نرم‌افزارها:
این دستور یک فایل JSON با تمام شناسه‌ها و نسخه‌های نرم‌افزارهای فعلی ایجاد می‌کند:

winget export -o D:\Backup\installed-apps.json

وارد کردن و نصب دسته‌جمعی:
در یک سیستم جدید، با اجرای دستور زیر تمام نرم‌افزارهای ثبت شده در فایل JSON به صورت خودکار و بی‌صدا نصب می‌شوند:

winget import -i D:\Backup\installed-apps.json --accept-package-agreements --accept-source-agreements

بخش هشتم: عیب‌یابی و رفع مشکلات رایج

عدد پایانی در هر خط دستور Winget یک کد خروج (Exit Code) است. عدد صفر به معنای موفقیت است.

خطای Hash Mismatch:
گاهی اوقات فایل نصب از طرف توسعه‌دهنده تغییر می‌کند اما متادیتای Winget بروز نشده است. در این حالت خطای هش نامعتبر دریافت می‌کنید. برای دور زدن موقت این خطا (با ریسک شخصی) از سوییچ زیر استفاده کنید:

winget install --id App.Id --ignore-security-hash

خطای No App Found:
اگر جستجو نتیجه‌ای نداشت، ابتدا مخازن را بروزرسانی کنید. اگر شناسه دارای فاصله است، حتما آن را داخل کوتیشن قرار دهید یا مستقیما از آیدی دقیق استفاده کنید.

خطای Policy Restriction:
در سیستم‌های تحت دامین، ممکن است Group Policy اجرای App Installer را محدود کرده باشد. باید از ادمین شبکه درخواست باز کردن پالیسی AppInstaller را داشت.

نتیجه‌گیری:
استفاده از Winget رویکرد سیستماتیک و دنباله‌دار را به فرآیند مدیریت نرم‌افزار در ویندوز اعمال می‌کند. با بهره‌گیری از اسکریپت‌نویسی مبتنی بر Winget، سازمان‌ها می‌توانند زمان استقرار سیستم‌ها (Deployment) را تا حد قابل توجهی کاهش داده، انسانی‌سازی فرآیندها را حذف کرده و پایداری محیط‌های کاری را در سطح بالایی تضمین کنند. 

راهنمای تخصصی نصب Chocolatey و مدیریت پکیج در ویندوز

شوکولاتی یا 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 پاک کنید و سپس پوشه اصلی را حذف نمایید.