
قم بتعزيز إعدادات مدير الحزم الخاص بك ضد هجمات سلسلة التوريد.
```text
_ _
| | ___ _ __ ___ __ _ _ _ __ _ _ __ | |
/
|/ _ \ '_ \/ __|/ _ | | | |/ | '__/ _ |
| (| | __/ |) _ \ (| | || | (| | | | (| |
_,_|_| ./|/_, |_,|_,|| _,|
|| |___/
احمِ تبعياتك من هجمات سلسلة التوريد. **ثنائي ثابت واحد، لا تبعيات لحزم Rust.**
بواسطة **[[arnica](https://arnica.io?utm_source=depsguard&utm_medium=referral&utm_campaign=community)]**
## جدول المحتويات
- [نظرة عامة](#overview)
- [تثبيت](#install)
- [الاستخدام](#usage)
- [ما يتم فحصه](#what-gets-checked)
- [مواقع ملفات الإعدادات](#config-file-locations)
- [إصلاح أمني عاجل](#urgent-security-fix)
- [النسخ الاحتياطي والاستعادة](#backups-and-restore)
- [كيف يعمل](#how-it-works)
- [استكشاف الأخطاء وإصلاحها](#troubleshooting)
- [المساعدة والملاحظات](#help--feedback)
- [الأدلة](#guides)
- [انظر أيضًا](#see-also)
- [الترخيص](#license)
## نظرة عامة
يبحث DepsGuard عن **npm** و **pnpm** و **yarn** و **bun** و **uv** و **pip** و **poetry** و **aube** على جهازك، ويقرأ ملفات الإعدادات الخاصة بها، ويقارنها بإعدادات سلسلة التوريد الموصى بها، ويمكنه **تطبيق الإصلاحات بشكل تفاعلي**. كما يفحص أيضًا إعدادات **Renovate** و **Dependabot** في مستودعاتك. لا يقوم أبدًا بتشغيل تثبيت الحزم؛ بل يقوم فقط بتعديل ملفات الإعدادات التي توافق عليها، ويكتب **نسخًا احتياطية** قبل أي تغيير.
### الميزات الرئيسية
- واجهة تفاعلية TUI: فحص، مراجعة، تبديل الإصلاحات، تطبيق
- أمر فرعي `scan` للتقرير للقراءة فقط
- أمر فرعي `restore` لاختيار نسخة احتياطية واسترجاع ملف
- متعدد المنصات: Linux و macOS و Windows
- لا توجد حزم Rust تابعة لجهات خارجية مرفقة (stdlib + قدر صغير من FFI المنصة للطرفية)
### المكدس التقني
| المجال | التفاصيل |
|------|---------|
| لغة | Rust (MSRV **1.74**، راجع `Cargo.toml`) |
| CLI / TUI | `src/main.rs`, `src/ui.rs`, `src/term.rs` |
| منطق الإعدادات | `src/manager.rs`, `src/fix.rs` |
| الموقع | موقع ثابت تحت `docs/` (منفصل عن الثنائي) |
## تثبيت
### ثنائيات مُجمَّعة مسبقًا
يتضمن كل [إصدار GitHub](https://github.com/arnica/depsguard/releases) أرشيفات لـ:
- Linux: `x86_64` (glibc)، `x86_64` (musl)، `aarch64` (glibc)
- macOS: Intel و Apple Silicon
- Windows: ملف ZIP لـ `x86_64` يحتوي على `depsguard.exe`
قم بتنزيل الأرشيف لمنصتك، قم بفك ضغطه، وضع الثنائي في `PATH` الخاص بك.
تحقق من التكامل باستخدام ملف `.sha256` المطابق بجانب كل أصل في صفحة الإصدار.
### التثبيت حسب المنصة
#### Linux (Debian/Ubuntu عبر APT)```bash
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://depsguard.com/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/depsguard.gpg
echo "deb [arch=amd64,arm64 signed-by=/etc/apt/keyrings/depsguard.gpg] https://depsguard.com/apt stable main" | sudo tee /etc/apt/sources.list.d/depsguard.list >/dev/null
sudo apt update
sudo apt install depsguard
brew install depsguard
DepsGuard موجود في [homebrew-core](https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/d/depsguard.rb)، لذلك لا حاجة إلى مستودع مخصص (tap).
> **هل تنتقل من المستودع القديم `arnica/depsguard`؟** قم بالتحويل إلى صيغة core formula مرة واحدة:
>
> ```bash
> brew uninstall depsguard
> brew untap arnica/depsguard
> brew update
> brew install depsguard
> ```
#### ويندوز```powershell
# WinGet
winget install Arnica.DepsGuard
# Scoop
scoop bucket add depsguard https://github.com/arnica/depsguard
scoop install depsguard
أو قم بالتنزيل يدويًا عبر PowerShell:```powershell $zip = "$env:TEMP\depsguard.zip" Invoke-WebRequest -Uri "https://github.com/arnica/depsguard/releases/latest/download/depsguard-x86_64-pc-windows-msvc.zip" -OutFile $zip Expand-Archive -LiteralPath $zip -DestinationPath "$env:TEMP\depsguard" -Force Copy-Item "$env:TEMP\depsguard\depsguard.exe" "$HOME\AppData\Local\Microsoft\WindowsApps\depsguard.exe" -Force depsguard.exe --help
### crates.io```bash
cargo install depsguard
يتطلب سلسلة أدوات Rust مع cargo.
إذا كانت مؤسستك تقوم بتوزيع DepsGuard عبر Homebrew أو Scoop أو WinGet، فاستخدم تعليماتهم. إعداد أو أتمتة تلك القنوات (PRs الأساسية لـ Homebrew، buckets، PRs لـ WinGet، أسرار CI) هي وثائق المشرف؛ انظر AGENTS.md تحت الإصدار والتوزيع.
| القناة | Linux | macOS | Windows | أمر التثبيت |
|---|---|---|---|---|
| APT (مستودع مخصص) | نعم | لا | لا | sudo apt install depsguard (بعد إعداد المستودع أعلاه) |
| crates.io | نعم | نعم | نعم | cargo install depsguard |
| Homebrew (homebrew-core) | نعم | نعم | لا | brew install depsguard |
| Scoop (bucket مخصص) | لا | لا | نعم | scoop bucket add depsguard https://github.com/arnica/depsguard ; scoop install depsguard |
| WinGet | لا | لا | نعم | winget install Arnica.DepsGuard |
استخدم القناة التي ثبتّ بها:
| القناة | أمر الترقية |
|---|---|
| Homebrew | brew update && brew upgrade depsguard |
| APT (مستودع مخصص) | sudo apt update && sudo apt install --only-upgrade depsguard |
| crates.io | cargo install --force depsguard (يعيد تثبيت أحدث إصدار) |
| Scoop | scoop update && scoop update depsguard |
| WinGet | winget upgrade Arnica.DepsGuard |
تحقق من الإصدار المثبت في أي وقت باستخدام depsguard --version، وانظر صفحة الإصدارات للحصول على أحدث إصدار.
git clone https://github.com/arnica/depsguard.git cd depsguard cargo build --release
الملف الثنائي هو `target/release/depsguard` (`.exe` على ويندوز). Rust **1.74+** مطلوب.
## الاستخدام```bash
depsguard # interactive: scan, choose fixes, apply
depsguard scan # report only; no writes (exits 1 if action is needed)
depsguard --no-search # skip recursive file search, check local configs only
depsguard restore # restore from a previous backup
depsguard --help # CLI help
depsguard لتشغيل واجهة TUI التفاعلية. يقوم بمسح نظامك ويعرض جدولًا بالنتائج. اضغط أي مفتاح للمتابعة إلى محدد الإصلاح. يبدأ اكتشاف التكوين على مستوى المستودع من الدليل الحالي ويبحث إلى الأسفل. استخدم depsguard scan لتقرير للقراءة فقط، أو depsguard --no-search لتخطي البحث المتكرر عن الملفات والتحقق فقط من تكوينات المستخدم.
ملاحظة: بعض الإعدادات تتطلب إصدارًا أدنى. إذا كان إصدارك قديمًا جدًا، سترى:
ℹ min-release-age – requires npm ≥ 11.10 (have 10.2.0). قم بالترقية باستخدامnpm install -g npm@latestوأعد التشغيل.
↑ ↓ للتحرك في القائمة (^u ^d للصفحات). اضغط Space لتبديل إصلاح. استخدم مفاتيح التصفية السريعة للتحديد الجماعي حسب الملف: a الكل، n .npmrc، u uv.toml، إلخ. – اضغط مرة للتحديد، مرة أخرى لإلغاء التحديد، والثالثة لمسح التصفية. اضغط f لعرض الإصلاحات المحددة حاليًا فقط.d لرؤية الفرق (diff) لما سيتغير قبل الالتزام بأي شيء.Enter لتطبيق الإصلاحات المحددة. يتم إنشاء نسخة احتياطية بختم زمني قبل كتابة أي ملف.depsguard restore في أي وقت للتراجع من قائمة النسخ الاحتياطية. اضغط q أو Esc للخروج.