الوحدة 1 — التثبيت على Windows وmacOS وLinux
قبل أوّل نداء إلى نموذج، يجب أن يعمل Ollama كخدمة نظاميّة، وأن نعرف أين تُخزَّن النماذج، وكيف نغيّر ذلك، وكيف نتحقّق أنّ الجهاز يستجيب. كلّ خطأ في هذه الوحدة يعود لاحقًا في شكل «النموذج لا يُحمَّل» أو «القرص امتلأ فجأة».
ما هو Ollama من الداخل
Ollama برنامج صغير يجمع ثلاث قدرات في تنفيذيّ واحد:
- محرّك استدلال يُنفّذ نماذج بصيغة GGUF على المعالج والذاكرة الرسوميّة.
- خادم HTTP محلّيّ يستمع افتراضيًّا على
127.0.0.1:11434. - سطر أوامر (
ollama run،ollama pull…) يخاطب هذا الخادم لا أكثر.
هذا يعني أنّ التثبيت لا يضع «تطبيقًا»، بل خدمةً تعمل في الخلفيّة، ونحن نتكلّم معها بالأوامر أو بواجهة HTTP.
Windows
يُوفَّر مثبِّت .exe من ollama.com/download. بعد التثبيت، يُطلَق Ollama.exe تلقائيًّا مع جلسة المستخدم وتظهر أيقونته في شريط النظام. يستمع الخادم على http://localhost:11434. مسار النماذج الافتراضيّ:
C:\Users\<اسمك>\.ollama\models
لتغييره — مثلًا إلى قرص ثانٍ كي لا يمتلئ SSD النظام — تضاف متغيّرة بيئة للمستخدم:
setx OLLAMA_MODELS "D:\ollama\models"
ثمّ يُعاد تشغيل الخدمة من شريط النظام. للتحقّق، افتح PowerShell:
ollama --version
Invoke-RestMethod http://localhost:11434/api/tags
الأمر الأوّل يعرض النسخة؛ الثاني يُعيد { "models": [] } قبل أوّل جلب.
macOS
يُوفَّر .dmg. يُسحَب Ollama إلى Applications ويُفتَح مرّة، فيُثبَّت الجزء الخلفيّ ويعمل في الخلفيّة. مسار النماذج:
~/.ollama/models
على شرائح Apple (M1 إلى M4)، يُفعّل التسريع عبر Metal تلقائيًّا؛ لا حاجة لتثبيت CUDA أو غيره. للتغيير في مسار النماذج، تُعدَّل بيئة الجلسة في ~/.zshrc:
export OLLAMA_MODELS="/Volumes/Data/ollama/models"
Linux
سطر واحد يُثبّت Ollama كخدمة systemd:
curl -fsSL https://ollama.com/install.sh | sh
السكربت ينشئ مستخدم ollama، يضع النموذج التنفيذيّ في /usr/local/bin، ويضبط الخدمة:
sudo systemctl status ollama
sudo systemctl restart ollama
مسار النماذج الافتراضيّ:
/usr/share/ollama/.ollama/models
لتغييره على خادم مشترك، يُحرَّر ملفّ الخدمة عبر systemctl edit ollama.service وتُضاف الأسطر:
[Service]
Environment="OLLAMA_MODELS=/data/ollama/models"
Environment="OLLAMA_HOST=0.0.0.0:11434"
ثمّ:
sudo systemctl daemon-reload
sudo systemctl restart ollama
متغيّرات البيئة المهمّة
| المتغيّرة | الفائدة |
|---|---|
OLLAMA_MODELS | مس ار تخزين النماذج (يخفّف الضغط على قرص النظام) |
OLLAMA_HOST | العنوان الذي يستمع عليه الخادم؛ 0.0.0.0 يفتحه للشبكة، وذلك خطر بلا حماية |
OLLAMA_KEEP_ALIVE | مدّة إبقاء النموذج في الذاكرة بعد آخر نداء (افتراضيًّا خمس دقائق) |
OLLAMA_NUM_PARALLEL | عدد الطلبات المُعالجة بالتوازي على النموذج نفسه |
OLLAMA_MAX_LOADED_MODELS | سقف النماذج المُحمَّلة في الذاكرة في آن واحد |
OLLAMA_KEEP_ALIVE=24h مفيد على محطّة عمل تُستدعى فيها Ollama مرّات متفرّقة على مدار اليوم؛ خمس دقائق ثمّ إعادة تحميل مكلفة، خصوصًا لنموذج كبير.
التحقّق من التشغيل بعد التثبيت
قبل الانتقال إلى الوحدة 2، لا بدّ من ثلاث خطوات تحقّق:
- الخدمة تعمل:
ollama --versionيعرض رقمًا، وليس رسالة «الأمر غير موجود». - الواجهة HTTP تستجيب:
curl http://localhost:11434/api/tagsيُعيد قائمة (قد تكون فارغة). - المسار المكتوب: تشغيل
ollama pull tinyllamaصغير جدًّا، ورؤية الملفّات في المسار الم ضبوط.
إن فشل أيٌّ من الثلاث، الأسباب الأكثر شيوعًا: جدار حماية Windows يمنع Ollama.exe، أذون الكتابة على المسار المخصّص، أو نسيان إعادة تحميل systemd بعد تعديل الخدمة.
الخيط الأحمر
على محطّة الشريك في المكتب (Windows 11، ذاكرة 32 GB، قرص NVMe سعة 1 TB)، نضبط OLLAMA_MODELS=D:\ollama\models كي يبقى قرص النظام حرًّا، ونُبقي OLLAMA_HOST على 127.0.0.1 كي لا يتعرّض المساعد للشبكة الداخليّة قبل ضبط الأذونات. على خادم Ubuntu للمكتب لاحقًا، سيصير OLLAMA_HOST=0.0.0.0:11434 مع وسيط عكسيّ Nginx يفرض المصادقة.
تغيير OLLAMA_HOST إلى 0.0.0.0 يجعل واجهة HTTP متاحة لكلّ من هو على الشبكة نفسها، ودون كلمة مرور. على شبكة مؤسّسة، هذا يعادل ترك خادم بلا قفل. ضع Ollama دائمًا خلف وسيط يفرض مصادقة (الوحدة 8).
الخلاصة
- Ollama خدمة تعمل في الخلفيّة وتستمع على 11434؛ سطر الأوامر ليس إلّا واجهة للخادم.
- مسار النماذج قابل للتغيير بـ
OLLAMA_MODELS؛ ضروريّ حين يكون قرص النظام صغيرًا. OLLAMA_HOST=0.0.0.0يفتح الواجهة على الشبكة، ويجب أن يُصاحبه دائمًا وسيط بمصادقة.- التحقّق بثلاث خطوات (النسخة،
/api/tags، جلب صغير) يمنع 90 % من مشكلات الوحدات اللاحقة.