يوضح هذا البرنامج التعليمي كيفية إعداد خادم Team Fortress 2 على Arch Linux. أفترض أنك قمت بتسجيل الدخول باستخدام حساب مستخدم غير جذري لديه وصول sudo. يستخدم هذا البرنامج التعليمي AUR لبناء الحزم ، ولا ينبغي إجراء هذه العملية من الحساب الجذر.
قبل ان تبدأ
من المهم جدًا أن يتم multilibتمكين المستودع إذا كنت تستخدم خادمًا 64 بت (amd64) وفقط. إذا لم يتم تمكينه ، فلا يمكن تشغيل SteamCMD ولا يمكنك حتى تنزيل ملفات الخادم. للقيام بذلك ، يجب عليك إلغاء تعليق الأسطر التالية في /etc/pacman.conf.
[multilib]
Include = /etc/pacman.d/mirrorlist
إذا كنت تستخدم قوس 32 بت (i686) ، فيمكنك تجاهل ذلك بأمان.
قم بتثبيت SteamCMD
هناك حزمة AUR لـ SteamCMD وهي واحدة من أسهل الطرق لتثبيت SteamCMD على القوس. هناك بعض الأشياء الغريبة عن ذلك على الرغم من:
	- جميع المسارات النسبية بالنسبة إلى 
/usr/share/steamcmd. 
	- لتحديث SteamCMD نفسه ، يجب أن تكون الجذر.
 
إذا كنت على خادم 64 بت ، يجب عليك تثبيت الحزمة lib32-gcc-libs.
sudo pacman -Sy lib32-gcc-libs
الآن يجب أن نبني الحزمة. باستخدام curl ، قم بتنزيل tarball للحزمة.
curl -O http://media.steampowered.com/installer/steamcmd_linux.tar.gz
بمجرد انتهاء التنزيل ، قم باستخراج الدليل وتغييره.
tar -xvzf steamcmd.tar.gz
cd steamcmd
الآن ، باستخدام makepkg ، قم ببناء الحزمة.
makepkg -ci
إذا لم تقم بتمرير -iالعلم إلى الأمر makepkg ، فاستخدم pacman لتثبيته.
sudo pacman -U *.pkg.tar.xz
لديك الآن تثبيت SteamCMD وجاهز لتنزيل خادم Team Fortress 2.
قم بتثبيت خادم Team Fortress 2
يستخدم هذا الدليل مستخدمًا منفصلاً لتشغيل الخادم ، لذلك سننشئ مستخدمًا ومجموعة tf2 جديدة مع المجلد الرئيسي الخاص به /var/lib.
sudo groupadd tf2
sudo mkdir /var/lib/tf2
sudo useradd -d /var/lib/tf2 -g tf2 -s /bin/bash tf2
sudo chown tf2.tf2 -R /var/lib/tf2
الآن لتثبيت الخادم.
sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 validate +quit
بمجرد الانتهاء من التنزيل ، يكون الخادم مثبتًا.
التكوين
على الرغم من أنه يمكنك تشغيل الخادم ، يجب إجراء بعض التهيئة بحيث لا يكون الخادم عامًا جدًا. الملف الرئيسي الذي نضع فيه الإعدادات هو server.cfgالملف. فيما يلي server.cfgملف أساسي للغاية .
لفتح / إنشاء الملف ، استخدم المحرر المفضل لديك. هنا يتم استخدام vim ، ولكن يمكنك استخدام أي محرر نصوص مثل nano.
sudo -u tf2 vim ~tf2/server/tf/cfg/server.cfg
أضف ما يلي. يمكن العثور على المزيد من الإعدادات في صفحة مطوري Team Fortress 2 wiki و Valve. تأكد من تغيير بعض الإعدادات لتناسب احتياجاتك.
hostname "Server Name"
rcon_password "password"
sv_password ""
sv_contact "[email protected]"
sv_tags ""
sv_region "255"
sv_lan "0"
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip
تشغيل الخادم الخاص بك
من المعروف أنك بحاجة إلى معدد إرسال مثل GNU Screen أو tmux لتشغيل خادمك دون مراقبة. سنستخدم هنا tmux لتشغيل الخادم ، ولكن إذا كنت تفضل وتعرف كيفية استخدام الشاشة ، فلا تتردد في استخدامها.
تثبيت tmux باستخدام بكمن.
sudo pacman -Sy tmux
يمكنك بدء الخادم بالأمر التالي. يمكنك تغيير الخريطة و maxplayers إذا رغبت في ذلك.
sudo -u tf2 tmux new-session -d -s tf2-console -d '~tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
إذا احتجت إلى إرفاق وحدة التحكم ، فقم بتشغيل ما يلي.
sudo -u tf2 tmux attach -t tf2-console
يمكنك ترك وحدة تحكم الملقم عن طريق كتابة CTRL + B ثم الإفراج عن تلك المفاتيح ثم الضغط D .
يعمل مع systemd
يعد تشغيل الخادم مع systemd مناسبًا للعديد من الأسباب. الشيء الرئيسي هو أنه يمكنك تشغيله عند بدء تشغيل VPS. يتطلب هذا كتابة برنامج نصي ووحدة نظام. على الرغم من أن هذه فكرة جيدة ، فهي اختيارية .
أول شيء يجب كتابته هو البرنامج النصي للبدء. لإنشاء البرنامج النصي ، استخدم المحرر المفضل لديك. هنا يتم استخدام vim ، ولكن يمكنك استخدام أي محرر نصوص مثل nano.
sudo -u tf2 vim ~tf2/server/tf2.sh
أضف ما يلي.
#!/bin/sh
USER=$2
if [ -z $2 ]; then
  USER="tf2"
fi
case "$1" in
  start)
    sudo -u $ tmux new-session -d -s tf2-console -d '/var/lib/tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
    ;;
  stop)
    sudo -u $ tmux send-keys -t tf2-console 'say Server shutting down in 10 seconds!' C-m
    sleep 10
    sudo -u $ tmux send-keys -t tf2-console 'quit' C-m
    sleep 5
    ;;
  *)
    echo "Usage: $0  user"
esac
exit 0
الآن أنت بحاجة إلى جعل وحدة systemd. لإنشاء الوحدة ، استخدم المحرر المفضل لديك. هنا يتم استخدام vim ، ولكن يمكنك استخدام أي محرر نصوص مثل nano.
sudo vim /usr/lib/systemd/system/tf2.service
أضف ما يلي.
[Unit]
Description=Team Fortress 2 Server (SRCDS)
After=local-fs.target network.target
[Service]
ExecStart=/var/lib/tf2/server/tf2.sh start
ExecStop=/var/lib/tf2/server/tf2.sh stop
Type=forking
[Install]
WantedBy=multi-user.target
تأكد الآن من أن tf2.shالملف قابل للتنفيذ.
sudo chmod +x ~tf2/server/tf2.sh
بعد كل ذلك ، يمكنك استخدامه systemctlلبدء وإيقاف الخادم. كما يمكنك استخدامه لجعله يبدأ في التمهيد.
للبدأ:
sudo systemctl start tf2.service
للتوقف:
sudo systemctl stop tf2.service
لإعادة التشغيل:
sudo systemctl restart tf2.service
للتمكين عند التمهيد:
sudo systemctl enable tf2.service
للتعطيل عند التمهيد:
sudo systemctl disable tf2.service
على الرغم من أن systemd يعالج بدء الخادم وإيقافه ، فلا يزال بإمكانك الوصول إلى وحدة التحكم باستخدام الأمر التالي:
sudo -u tf2 tmux attach -t tf2-console
الملاحظات النهائية
يتم تثبيت SteamCMD في منطقة حيث يمكن للجذر فقط تغيير الملفات (انظر الملاحظة في "تثبيت SteamCMD"). إذا كنت بحاجة إلى ترقية SteamCMD نفسها ، فقم بتشغيلها كجذر.
sudo steamcmd +quit
إذا كنت بحاجة إلى تحديث الخادم. أولاً قم بإيقاف الخادم ثم استخدم SteamCMD للتحديث (باستخدام نفس الأمر للتثبيت).
sudo systemctl stop tf2.service
sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 validate +quit
sudo systemctl start tf2.service
هناك الكثير من موضوعات التكوين التي لم يتم تناولها في هذا البرنامج التعليمي. إذا كنت بحاجة إلى مزيد من المعلومات ، فالرجاء الرجوع إلى Team Fortress 2 Wiki و Valve Developer Wiki.