Linux Adanmış Sunucu Barındırma
Bu makale, Linux üzerinde bir Garry's Mod sunucusu barındırma hakkında mümkün olduğunca çok konuyu ele alacaktır.
Bu makale Debian ve türevleri (Ubuntu, ChromiumOS, Mint...) için yazılmıştır, bu nedenle diğer dağıtımlarda bazı dönüşümler yapmanız gerekebilir
Dahili birçok araca sahip, birden fazla sunucu için kolay destek sunan vb. daha otomatik bir çözüm istiyorsanız, bunun yerine https://linuxgsm.com/lgsm/gmodserver/ kullanın.
Gereksinimler
Başlamadan önce aşağıdaki gereksinimleri karşıladığınızdan emin olun:
- Sunucuyu çalıştıracak bir kullanıcı ('steam' önerilir, ev dizini /home/steam)
- Yüklemek istediğiniz içerik için yeterli disk alanı
- 'steam' kullanıcısı olarak çalışan açık bir komut satırı terminali (
su - steam) veya steam kullanıcısı olarak oturum açılmış bir SSH oturumu. - Temel Linux komut satırı kullanımı konusunda deneyim.
SteamCMD Kurulumu
SteamCMD, Garry's Mod sunucu dosyalarını indirmek ve güncellemek için gereklidir. SteamCMD'nin nasıl kurulacağına dair öneriler için Valve Geliştirici Wiki'sini takip edin.
64-bit Sistemler
Eğer "*/linux32/steamcmd: No such file or directory" hatası alırsanız, bu büyük olasılıkla gerekli 32-bit kütüphanelere sahip olmadığınız içindir. Bunu nasıl düzelteceğiniz hakkında daha fazla bilgi için buraya gidin: https://developer.valvesoftware.com/wiki/SteamCMD#32-bit_libraries_on_64-bit_Linux_systems
Garry's Mod Kurulumu
Aşağıdaki betik, tek bir komutla sizin için Garry's Mod'un en son sürümünü indirecektir.
İlk olarak, update_gmod.sh adında bir güncelleme betiği oluşturalım.
Bu dosyayı çalıştırabilmeden önce, ona 'yürütme' hakları vermemiz gerekiyor. Bu, aşağıdaki komutla yapılır:
Doğru bir şekilde çalıştırabilmek için, dosyayı dos formatından unix formatına dönüştürmemiz gerekiyor:
Eğer steamcmd'yi depodan kurduysanız, betiğin güncellenmesi gerekir:
25. satırın başlangıcını değiştirin:
25. satır şimdi şu şekilde görünmelidir:
Kaydetmek için ctrl+O'ya, ardından nano'dan çıkmak için ctrl+X'e basın.
Şimdi, sunucuyu güncelleyelim
Sunucu şimdi gerekli içeriği indirecektir. Steam, indirme işlemindeki ilerleme yüzdesini size gösterecektir.
Eğer /home/steam/update_gmod.sh: line 25: ./bin/steamcmd.sh: No such file or directory gibi bir hata alırsanız, ./update_gmod.sh dosyasını bir düzenleyicide açın ve "# Call SteamCMD with the app ID we provided and tell it to install" altındaki satırı şu şekilde değiştirin:
İçerik Ekleme
Elbette, Team Fortress 2, Counter-Strike: Source ve diğer desteklenen oyunlardaki şeyleri kullanabilmek istiyoruz. Yukarıdaki betiği kullanarak bu basit bir işlemdir.
Ancak, indirme süresinden tasarruf etmek istediğimiz için, tüm bu içeriği ayrı bir klasöre koyacağız, böylece 5 sunucumuz varsa, bir içerik güncellemesi yayınlandığında içeriği yalnızca bir kez güncellememiz gerekir.
Şimdi yukarıda bahsedilen betiği değiştireceğiz. "Add any additional servers here" yazan yere aşağıdaki satırı ekleyin. Buraya Team Fortress 2'yi ekliyoruz.
Şimdi, update_gmod.sh'yi çalıştırdığımızda, betik Garry's Mod'u doğrulayacak (ve gerekirse güncelleyecek) (çünkü onu yukarıdaki adımda indirmiştik) ve ardından Team Fortress 2'yi ~/content/tf2 dizinine kuracaktır.
Sunucular için ID listesi için Valve Geliştirici Topluluğu sayfasına göz atabilirsiniz. Unutmayın, teorik olarak ID'sini kullanarak herhangi bir oyunu buraya indirebilirsiniz, ancak bu adanmış sunucularla steam hesabınızı kullanarak giriş yapmanız gerekmez.
Sunucuyu Başlatma
Sunucuyu başlatmak için, her sunucunun kök dizininde bulunan srcds_run adlı dosyayı çalıştırırız. Aşağıdaki komut, sunucuyu gm_flatgrass haritasında 12 oyuncu yuvasıyla başlatır.
Betik (srcds_run), sunucu çökerse onu hayatta tutacaktır, ancak linux'u yeniden başlattığınızda yeniden başlamaz ve terminali kapatırsanız sunucu da kapanır. Bunu bu makalenin ilerleyen kısımlarında düzelteceğiz.
sv_setsteamaccount ile ilgili yardım için lütfen Steam Oyun Sunucusu Hesapları sayfasına bakın. Bu zorunludur.
İsteğe bağlı olarak, atölye eklentilerini adanmış sunucunuza otomatik olarak yüklemek için komut satırınıza +host_workshop_collection <koleksiyonIDsi> ekleyebilirsiniz.
Adanmış sunucular için atölye yardımı için lütfen Adanmış Sunucular için Atölye sayfasına bakın.
Sunucuyu Güncelleme
Sunucuyu veya içeriği güncellemek için, sadece indirme betiğimizi çağırırız. Sunucularınızın kapalı olduğundan emin olmalısınız, aksi takdirde güncelleme başarısız olur.
Betiklerimizi sadece bunu çağırarak güncelleyin (ev dizininden)
Yeniden Başlatmanın Ardından Sunucuyu Hayatta Tutma
Sunucuyu hayatta tutmak için crontab kullanırız. crontab'a, sunucu yüklendiğinde srcds_run'ı çağıracak bir girdi ekleriz.
crontab'ı açın
Şimdi, sona aşağıdaki satırı ekleyin
Şimdi dosyayı kaydedin. Genellikle crontab nano'da açılır, bu yüzden komutlar yine ctrl+o, enter, ctrl+x olacaktır.
Şimdi, linux sunucusunu yeniden başlattıktan sonra, Garry's Mod Sunucusu otomatik olarak başlayacaktır.
Ek Notlar
Elbette, sunucunuzu hayatta tutmanın daha iyi yolları vardır, ancak bunlar kısa sürede oldukça karmaşık hale gelebilir, bu yüzden burada tartışılmamaktadır. Daha fazlasını öğrenmek isterseniz, Google'da araştırın veya Facepunch'ta sorun.
Sorun Giderme
32-bit İkili Dosyaları
Eğer 64-bit bir Linux sürümü kullanıyorsanız, 32-bit ikili dosyalara ihtiyacınız vardır, çünkü SteamCMD yalnızca 32-bit olarak mevcuttur.
Eğer şu hata mesajını alırsanız
o zaman büyük ihtimalle 64-bit bir sistem çalıştırıyorsunuz ve 32-bit kütüphaneleriniz eksik demektir.
Bunu yapmak için ia32-libs kurmanız gerekir. Bunu yapmak için aşağıdaki kod parçasını çalıştırın:
Paket büyüktür (~200MB nadir değildir) ve birçok bağımlılığı vardır, bu yüzden biraz zaman alabilir.
Diğer linux dağıtımları için Valve wiki makalesine bakın
'GLIBC_2.15' bulunamadı
Eğer şu hata mesajını alırsanız
Büyük olasılıkla güncel olmayan GLIBC kütüphaneleriniz var ve bunları güncellemeniz gerekecek.
Bu, Valve'in araçları oluşturmak için kullandığından farklı bir dağıtım (veya dağıtım sürümü) kullanmayı seçtiğiniz için meydana geldi. Bu araçlar, o Linux dağıtımından bileşenler beklemektedir. (Yukarıdaki nota bakın!)
Ubuntu 12.04 32-bit veya daha yenisine güncelleme yapmadan bu sorunu çözmek için aşağıdaki kod parçasını çalıştırın:
CentOS için önce EPEL Repo'sunu ve dpkg'yi kurmanız gerekir:
Alternatif olarak şunlara geçebilirsiniz:
- Ubuntu Server 12.04+
- CentOS 7 Bu dağıtımların çalıştığı onaylanmıştır ve en çok desteklenenlerdir.
Çalışmayan Eklentiler
Sunucunuzu kurup çalıştırırken belirli eklentilerin çalışmadığı bazı sorunlar fark edebilirsiniz. Bu sorun, büyük harf içeren klasörlere sahip eski eklentileri etkiliyor gibi görünüyor. Bu sorunu çözmek için tüm dizinleri küçük harfli adlara ve bu dizinlere işaret eden tüm Lua kodlarını buna göre değiştirmek gerekebilir.
UYARI: 32-bit libtinfo.so.5 veya libncurses.so.5 yüklenemedi.
Eğer şu hata mesajını alırsanız
O zaman büyük olasılıkla bir lib32tinfo5 eşdeğeri kurulu değildir, bunu kurma yöntemi dağıtımlar arasında farklılık gösterir.
Arch Linux
multilib-develpaket grubunu kurun. Ne kurulacağı sorulduğunda, varsayılan olarak sağlananalldeğerini kullanın. Bu, bir sonraki adım için listelenmemiş bir derleme bağımlılığıdır.lib32-ncurses5-compat-libsAUR paketini kurun
Bu adımlardan sonra sunucu konsolunda ok tuşlarını kullanmak çalışmalıdır
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord