Ollama: تثبيت Ollama وإعداد البيئة

تثبيت Ollama يشبه إعطاء حاسوبك دماغًا محليًا — أمر واحد، جميع المنصات، جاهز للاستخدام فورًا.

⚠️ ملاحظة: ضبط OLLAMA_HOST=0.0.0.0:11434 يكشف خدمة Ollama على جميع واجهات الشبكة، مما يعني أن أي شخص على نفس الشبكة يمكنه استدعاء نموذج الذكاء الاصطناعي الخاص بك. هذا مناسب للوصول من الشبكة المحلية في بيئة التطوير، لكنه يشكل مخاطر أمنية خطيرة إذا كان لديك عنوان IP عام أو لم تُعد جدار حماية. في الإنتاج، أضف دائمًا المصادقة عبر وكيل عكسي Nginx.

📋 المتطلبات المسبقة: يجب أن تتقن ما يلي أولًا

1. ماذا ستتعلم


2. قصة حقيقية من مؤسس SaaS

(1) المشكلة: كابوس إعداد البيئة

أسست أليس منصة التجارة الإلكترونية GlobalShop وكانت بحاجة لنشر خدمة عملاء مدعومة بالذكاء الاصطناعي على خوادم Linux الخاصة بالشركة وحاسوب Mac الخاص بها. جرّبت llama.cpp — تجميع CUDA، إعداد البيئات، حل تعارضات التبعيات — قضت يومين كاملين. الانتقال لجهاز آخر يعني البدء من الصفر.

(2) الحل: أمر واحد يفعل كل شيء

يُغلف Ollama التجميع والتبعيات وإدارة النماذج معًا. تحتاج أليس أمرًا واحدًا فقط للتثبيت، مُنجزةً النشر عبر المنصات في عشر دقائق.

BASH
# macOS / Linux: تثبيت بسطر واحد
curl -fsSL https://ollama.com/install.sh | sh

# التحقق من التثبيت
ollama --version
# ollama version is 0.5.x

3. متطلبات النظام والتوافق

(1) الحد الأدنى والإعدادات الموصى بها

المكوّن الحد الأدنى الموصى به
المعالج 4 أنوية x86_64 / ARM64 8 أنوية+
الذاكرة 8 غيغابايت (نموذج 3B) 32 غيغابايت (نموذج 8B+)
بطاقة الرسوميات لا شيء (استنتاج على CPU) NVIDIA 8GB+ VRAM
القرص 10 غيغابايت مساحة حرة 50 غيغابايت+ SSD
نظام التشغيل macOS 13+ / Ubuntu 20.04+ / Windows 10+ أحدث إصدار LTS

(2) مصفوفة دعم تسريع GPU

بائع GPU المنصة طريقة الدعم الكشف التلقائي
NVIDIA Linux / Windows WSL2 CUDA ✅ تلقائي
AMD Linux ROCm ✅ تلقائي
Apple macOS Metal ✅ تلقائي
Intel Linux SYCL ⚠️ تجريبي
💡 نصيحة: يكتشف Ollama بطاقات GPU تلقائيًا عند البدء. لا حاجة لإعداد مسار المشغلات يدويًا — فقط ثبّت CUDA/ROCm وستكون جاهزًا.

▶ مثال 1: فحص توافق النظام (Linux)

BASH
# فحص معمارية المعالج
uname -m
# Expected: x86_64 or aarch64

# فحص الذاكرة المتاحة بالغيغابايت
free -g | awk '/^Mem:/{print $2}'

# فحص بطاقة NVIDIA GPU
nvidia-smi --query-gpu=name,memory.total --format=csv

# فحص مساحة القرص
df -h / | awk 'NR==2{print $4}'

الإخراج:

TEXT
# تم تنفيذ الأمر بنجاح

4. طرق التثبيت على ثلاث منصات

(1) التثبيت على macOS

100%
flowchart LR
    A[Download DMG] --> B[Drag to Applications]
    B --> C[Launch Ollama]
    C --> D[Auto-start Server]
    D --> E[Verify: ollama --version]
الطريقة الأمر ملاحظات
المثبّت الرسمي تنزيل DMG من ollama.com موصى به، يتضمن قائمة واجهة رسومية
Homebrew brew install ollama لمحبي سطر الأوامر
بدء يدوي ollama serve بدء الخدمة بعد التثبيت

▶ مثال 2: تثبيت كامل على macOS

BASH
# الخيار أ: تثبيت عبر Homebrew
brew install ollama

# بدء الخادم
ollama serve

# الخيار ب: التحقق من تشغيل تطبيق الواجهة الرسومية
ps aux | grep ollama

# اختبار سريع
ollama run llama3.2 "Say hello in one sentence"

الإخراج:

TEXT
I'm a helpful AI assistant running locally on your machine...

(2) التثبيت على Linux

الطريقة الأمر حالة الاستخدام
السكربت الرسمي curl -fsSL https://ollama.com/install.sh | sh موصى به، يكتشف GPU تلقائيًا
تنزيل يدوي تنزيل tar.gz من ollama.com البيئات بدون اتصال
systemd يُسجَّل تلقائيًا كخدمة systemd خوادم طويلة التشغيل

▶ مثال 3: تثبيت على Linux وإدارة الخدمة

BASH
# التثبيت بالسكربت الرسمي (يكتشف GPU تلقائيًا)
curl -fsSL https://ollama.com/install.sh | sh

# فحص حالة خدمة systemd
sudo systemctl status ollama

# بدء/إيقاف/إعادة تشغيل الخدمة
sudo systemctl start ollama
sudo systemctl stop ollama
sudo systemctl restart ollama

# تفعيل البدء التلقائي عند الإقلاع
sudo systemctl enable ollama

الإخراج:

TEXT
# تم تنفيذ الأمر بنجاح

(3) التثبيت على Windows

الطريقة الأمر ملاحظات
المثبّت الرسمي تنزيل exe من ollama.com موصى به، يتضمن أيقونة في شريط النظام
winget winget install Ollama.Ollama تثبيت من سطر الأوامر
WSL2 التثبيت بطريقة Linux داخل WSL2 يتطلب تمرير GPU

▶ مثال 4: تثبيت على Windows والتحقق من GPU عبر WSL2

POWERSHELL
# التثبيت عبر winget
winget install Ollama.Ollama

# التحقق من التثبيت
ollama --version

# عند استخدام WSL2 مع بطاقة NVIDIA GPU، تحقق داخل WSL
wsl
nvidia-smi  # Should show GPU inside WSL
ollama run llama3.2 "Hello"

الإخراج:

TEXT
// Execution successful

5. المتغيرات البيئية وإعداد المنفذ

💡 نصيحة: عند تنزيل عدة نماذج، تستهلك ملفات النماذج مساحة قرص كبيرة (نموذج 8B حوالي 5 غيغابايت، نموذج 70B حوالي 40 غيغابايت). يمكنك استخدام المتغير البيئي OLLAMA_MODELS لتوجيه مسار تخزين النماذج إلى قسم قرص أكبر (مثلاً، /data/ollama/models)، لمنع نفاد مساحة قرص النظام. هذا مهم بشكل خاص في سيناريوهات النشر متعددة النماذج.

ℹ️ معلومة: يتحكم OLLAMA_KEEP_ALIVE في المدة التي يبقى فيها النموذج في الذاكرة، افتراضيًا 5 دقائق. للاستخدام المتكرر، اضبطه على 30m أو أكثر لتجنب إعادة تحميل النموذج مع كل طلب (البدء البارد يستغرق 5-30 ثانية).

(1) المتغيرات البيئية الأساسية

المتغير الافتراضي الغرض
OLLAMA_HOST 127.0.0.1:11434 عنوان ومنفذ استماع الخدمة
OLLAMA_MODELS ~/.ollama/models مسار تخزين ملفات النماذج
OLLAMA_KEEP_ALIVE 5m مدة بقاء النموذج في الذاكرة
OLLAMA_NUM_PARALLEL 1 عدد الطلبات المتوازية
OLLAMA_MAX_LOADED_MODELS 1 الحد الأقصى للنماذج المحملة في وقت واحد
OLLAMA_DEBUG false تبديل سجلات التصحيح

(2) مقارنة أمان عنوان الاستماع

الإعداد الأمان حالة الاستخدام
127.0.0.1:11434 ✅ وصول محلي فقط بيئة التطوير
0.0.0.0:11434 ⚠️ يمكن الوصول من جميع الشبكات خدمة الشبكة الداخلية، يتطلب جدار حماية
0.0.0.0:11434 + Nginx ✅ وكيل عكسي + مصادقة بيئة الإنتاج
⚠️ ملاحظة: بعد الربط بـ 0.0.0.0، يجب إعداد جدار حماية أو وكيل عكسي، وإلا يمكن لأي شخص الوصول إلى خدمة Ollama الخاصة بك.

▶ مثال 5: إعداد متغيرات بيئية مخصصة

BASH
# Linux/macOS: ضبط المتغيرات البيئية
# تعديل خدمة systemd (Linux)
sudo systemctl edit ollama

# أضف في ملف التجاوز:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama/models"
Environment="OLLAMA_KEEP_ALIVE=30m"

# إعادة التحميل وإعادة التشغيل
sudo systemctl daemon-reload
sudo systemctl restart ollama

# macOS: الضبط عبر launchctl أو ملف shell profile
export OLLAMA_HOST=0.0.0.0:11434
ollama serve

الإخراج:

TEXT
NAME                    ID              SIZE    
llama3.2:latest        a80...          2.0 GB  
mistral:latest         61...           4.1 GB

6. حل مشاكل التثبيت الشائعة

(1) جدول التشخيص السريع

العَرَض السبب الحل
"connection refused" الخدمة لم تبدأ ollama serve أو أعد تشغيل systemd
"bind: address already in use" تعارض المنفذ lsof -i :11434 لمعرفة العملية المحتلة
"could not find GPU" المشغلات غير مثبتة ثبّت NVIDIA CUDA / AMD ROCm
"out of memory" VRAM غير كافٍ استخدم نموذجًا أصغر أو إصدارًا بتقدير كمي
"permission denied" صلاحيات غير كافية افحص مجموعات المستخدمين / صلاحيات الدليل على Linux
"model not found" النموذج لم يُسحب ollama pull <model>

▶ مثال 6: تشخيص تعارض المنفذ

BASH
# فحص العملية التي تستخدم المنفذ 11434
lsof -i :11434
# أو على Linux
ss -tlnp | grep 11434

# إنهاء العملية المتعارضة إذا لزم الأمر
kill -9 `<PID>`

# أو تغيير منفذ Ollama
export OLLAMA_HOST=127.0.0.1:8080
ollama serve

الإخراج:

TEXT
NAME                    ID              SIZE    
llama3.2:latest        a80...          2.0 GB  
mistral:latest         61...           4.1 GB

7. مثال شامل: سكربت نشر خادم جديد

⚠️ تحذير: OLLAMA_HOST=0.0.0.0:11434 في سكربت النشر مناسب لبيئات الشبكة الداخلية للخوادم. إذا كان الخادم يمتلك عنوان IP عام، تأكد من إعداد جدار حماية (ufw/iptables) لتقييد الوصول الخارجي للمنفذ 11434، أو أضف مصادقة عبر وكيل عكسي Nginx.

BASH
#!/bin/bash
# ============================================
# شامل: نشر Ollama على خادم جديد
# يفحص hardware، يثبّت Ollama، يتحقق من الخدمة
# ============================================

set -e

echo "=== Step 1: Hardware Check ==="
echo "CPU: $(nproc) cores"
echo "RAM: $(free -g | awk '/^Mem:/{print $2}')GB"

if command -v nvidia-smi &> /dev/null; then
    echo "GPU: $(nvidia-smi --query-gpu=name --format=csv,noheader)"
    echo "VRAM: $(nvidia-smi --query-gpu=memory.total --format=csv,noheader)"
else
    echo "GPU: Not detected (CPU-only mode)"
fi

echo "Disk: $(df -h / | awk 'NR==2{print $4}') available"

echo ""
echo "=== Step 2: Install Ollama ==="
curl -fsSL https://ollama.com/install.sh | sh

echo ""
echo "=== Step 3: Configure Environment ==="
sudo mkdir -p /data/ollama/models
sudo systemctl edit ollama <<EOF
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama/models"
Environment="OLLAMA_KEEP_ALIVE=30m"
EOF

sudo systemctl daemon-reload
sudo systemctl restart ollama

echo ""
echo "=== Step 4: Verify Service ==="
sleep 3
if curl -s http://localhost:11434/api/tags > /dev/null; then
    echo "SUCCESS: Ollama is running on port 11434"
    ollama --version
else
    echo "FAILED: Check logs with: journalctl -u ollama"
fi

echo ""
echo "=== Step 5: Pull First Model ==="
ollama pull llama3.2
echo "Deployment complete! Run: ollama run llama3.2"

❓ أسئلة شائعة

س الأمر ollama غير موجود بعد التثبيت، ماذا أفعل؟
ج على Linux، تحقق مما إذا /usr/local/bin في PATH. على macOS بعد التثبيت عبر Homebrew، شغّل brew link ollama. على Windows، أعد تشغيل الطرفية.
س تثبيت Docker أم التثبيت المباشر — أيهما أختار؟
ج اختر التثبيت المباشر للتطوير المحلي (أبسط). اختر Docker لنشر الخوادم (عزل وعمليات أسهل). يغطي هذا الدرس التثبيت المباشر؛ Docker مفصل في الدرس 15.
س كيف أُعد الاستنتاج على GPU في WSL2؟
ج بعد تثبيت NVIDIA CUDA على Windows، يرث WSL2 بطاقة GPU تلقائيًا. شغّل nvidia-smi في WSL2 للتحقق — إذا ظهرت بطاقة GPU، فأنت جاهز. لا حاجة لتثبيت CUDA داخل WSL2.
س كيف أجعل Ollama يبدأ تلقائيًا عند الإقلاع؟
ج سكربت تثبيت Linux يُسجّل خدمة systemd تلقائيًا ويفعّل البدء عند الإقلاع. على macOS، يُضاف التطبيق لعناصر تسجيل الدخول تلقائيًا بعد التثبيت. على Windows، يُضاف لعناصر البدء.
س أين تُخزن ملفات النماذج افتراضيًا؟ هل يمكنني تغيير المسار؟
ج الافتراضي هو ~/.ollama/models. اضبط المتغير البيئي OLLAMA_MODELS لتغييره — مفيد عند انخفاض مساحة القرص والحاجة لتركيب تخزين خارجي.
س كيف أتأكد أن تسريع GPU يعمل؟
ج شغّل ollama run --verbose <model> وافحص السجلات. رسائل مثل using CUDA أو using Metal تشير إلى تفعيل تسريع GPU. يمكنك أيضًا استخدام nvidia-smi لمراقبة استخدام VRAM أثناء الاستنتاج.

📖 ملخص


📝 تمارين

  1. أساسي (صعوبة ⭐): ثبّت Ollama على نظامك الحالي وشغّل ollama --version لتأكيد النجاح.
  2. متوسط (صعوبة ⭐⭐): اضبط المتغيرات البيئية OLLAMA_HOST وOLLAMA_MODELS لربط الخدمة بـ 0.0.0.0:11434 وتخزين النماذج في مسار مخصص، ثم تحقق من تفعيل الإعدادات.
  3. متقدم (صعوبة ⭐⭐⭐): اكتب سكربت نشر آلي يغطي فحص hardware وتثبيت Ollama وإعداد البيئة وسحب النماذج، مع إصدار تقرير نشر.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%