Tr/SteamCMD

Category:Dedicated ServerCategory:Steam Applications
Steam Konsol İstemcisi veya SteamCMD, Steam İstemcisi'nin bir komut satırı sürümüdür. Birincil kullanımı, bir komut satırı arayüzü kullanarak Steam'de bulunan çeşitli özel sunucuları yüklemek ve güncellemektir.
SteamPipe içerik sistemini kullanan oyunlarla çalışır.
== SteamCMD İndirme ==
=== ===
#Windows için SteamCMD'yi indirin: 
#SteamCMD için bir klasör oluşturun. Örnek: 
#Zipin içeriğini klasöre çıkarın.
=== ===
SteamCMD'yi işletim sisteminin geri kalanından izole ederek güvenli bir şekilde çalıştırmak için steam adında bir kullanıcı hesabı oluşturun.
1. Kök kullanıcı olarak steam kullanıcısını oluşturun:
 sudo useradd -m steam
 sudo passwd steam
2. Ana klasörüne gidin:
 sudo -u steam -s
 cd /home/steam
==== Depolardan Paketleyin ====
===== Ubuntu =====
SteamCMD'yi yüklemek için çoklu evren deposu ve x86 paketleri etkinleştirilmelidir.
 sudo add-apt-repository multiverse; sudo dpkg --add-architecture i386; sudo apt update
 sudo apt install steamcmd
===== Debian =====
SteamCMD'yi yüklemek için özgür olmayan depoyu ekleyin ve x86 paketleri etkinleştirilmelidir. Debian 12'de (Bookworm) apt-add-repository komutu artık çalışmıyor, bu yüzden bir geçici çözüm oluşturmanız gerekecek (Ayrıca bakınız: https://stackoverflow.com/questions/76688863/apt-add-repository-doesnt-work-on-debian-12).
 sudo apt update; sudo apt install software-properties-common; sudo apt-add-repository non-free; sudo dpkg --add-architecture i386; sudo apt update
 sudo apt install steamcmd
===== Enterprise Linux =====
===== Arch Linux =====
 git clone https://aur.archlinux.org/steamcmd.git
 cd steamcmd
 makepkg -si
Gentoo:
 emerge --ask games-server/steamcmd
==== Docker ====
Sunucunuz Docker çalıştırıyorsa, basitçe kullanabilirsiniz:
docker run -it --name=steamcmd cm2network/steamcmd bash
steamcmd.sh, /home/steam/steamcmd adresinde yer almaktadır.
Bu imaj Steam tabanlı tahsis edilmiş sunucular için temel imaj olarak kullanılabilir. 
Örnek: 
İlgili Docker Hub sayfasına buradan ulaşabilirsiniz: 
=== Manuel ====
1. Before you begin, you must first install the dependencies required to run SteamCMD:
Ubuntu/Debian (x86-64)
 sudo apt-get install lib32gcc-s1
Enterprise Linux (x86-64)
 yum install glibc.i686 libstdc++.i686
2. Kök kullanıcı olarak, steam kullanıcısına geçin:
 su - steam
Root olarak oturum açmıyorsanız ve bunun yerine yönetim gerçekleştirmek için kullanıyorsanız, aşağıdaki şekilde steam kullanıcısına geçin:
 sudo -iu steam
3. SteamCMD için bir dizin oluşturun ve ona geçin:
 mkdir ~/Steam && cd ~/Steam
4. Linux için SteamCMD'yi indirin ve çıkartın:
 curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
=== === 
1. Terminal.app dosyasını açın ve SteamCMD için bir dizin oluşturun.
 mkdir ~/Steam && cd ~/Steam
2. macOS için SteamCMD'yi indirin ve ayıklayın.
 curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz" | tar zxvf -
== SteamCMD'yi Çalıştırmak ==
İlk çalıştırmada SteamCMD otomatik olarak güncellenecek ve sizi Steam> komut istemine sokacaktır. Daha fazla bilgi için help yazın.
=== === 
Bir Komut İstemi açın ve SteamCMD'yi başlatın.
 cd C:\steamcmd
 steamcmd
=== === 
Bir terminal açın ve SteamCMD'yi başlatın.
Depolardaki paketi kullanarak yüklediyseniz:
 steamcmd
Eğer manuel olarak yüklediyseniz:
 cd ~/Steam
 ./steamcmd.sh
=== === 
Bir terminal açın ve SteamCMD'yi başlatın.
Depolardaki paketi kullanarak yüklediyseniz:
 cd ~
 steamcmd
Eğer manuel olarak yüklediyseniz:
 cd ~/Steam
 ./steamcmd.sh
== SteamCMD Giriş ==
=== Anonymous ===
Çoğu oyun sunucusunu indirmek için kullanarak anonim olarak giriş yapabilirsiniz.
=== Steam Hesabı ile ===
Bazı sunucular bir Steam Hesabı ile giriş yapmanızı gerektirir.
 login <username>
Ardından şifrenizi girin.
Eğer kullanıcı hesabınızda Steam Guard etkinleştirilmişse, Steam Guard erişim kodu için e-postanızı kontrol edin ve kodu girin. Bu sadece ilk kez giriş yaptığınızda (ve SteamCMD'nin giriş bilgilerini sakladığı dosyaları sildiğinizde) gereklidir.
Hesabınızla başarılı bir şekilde giriş yaptığınızı belirten bir mesaj görmelisiniz.
== Bir App İndirme ==
1. SteamCMD'yi başlatın, henüz giriş yapmayın.
2. Uygulama yükleme dizininizi ayarlayın. (Not: Linux/macOS için ileri eğik çizgi, Windows için geri eğik çizgi kullanın).
 force_install_dir <path>
Örneğin, geçerli dizinin içinde cs_go adlı bir dizin:
 force_install_dir ./cs_go/
Windows için: force_install_dir c:\cs_go\
3. komutu ile giriş yapın
Valve, oturum açmadan önce yükleme dir'ini ayarlamanızı önerir.
4. komutunu kullanarak uygulamayı yükleyin veya güncelleyin (bir Steam Application ID sağlayarak). Özel sunucu listesi için lütfen burayı kontrol edin: Dedicated server list. Ayrıca uygulamayı doğrulamak için komuta ekleyin. Bir beta dalını indirmek için seçeneğini kullanın – örneğin, HLDS beta dalı ve SrcDS beta dalı olarak adlandırılır. Bazı beta dalları bir şifre ile korunmaktadır; bunlardan indirme yapabilmek için seçeneğini de ekleyin.
 app_update <app_id> [-beta <betaname>] [-betapassword <password>] [validate]
HLDS özel bir durumdur: Uygulama Kimliği her zaman 90'dır ve önce bir mod seçilmelidir. Bu, mod uygulama yapılandırma seçeneğini istenen değere ayarlayarak yapılır.
 app_set_config <app_id> <option_name> <option_value>
: Örnek: Counter-Strike'ı yükleyin ve doğrulayın: Global Offensive özel sunucusunu kurun ve doğrulayın:
 app_update 740 validate
: Örnek: Team Fortress Classic ile HLDS'yi yükleyin ve doğrulayın:
 app_set_config 90 mod tfc
 app_update 90 validate
: Örnek: HLDS'nin (Half-Life) beta sürümünü yükleyin ve doğrulayın:
 app_update 90 -beta beta validate
: Örnek: Counter-Strike'ın beta sürümünü yükleyin ve doğrulayın: Source adanmış sunucu:
 app_update 232330 -beta prerelease validate
: Örnek: Doğal Seçim 2 adanmış sunucusunun özel beta sürümünü kurun ve doğrulayın (name alpha, password natsel):
: [beta name] özel beta şubesinin adıdır
: [beta code] özel beta şubesinin parolasıdır
 app_update 4940 -beta alpha -betapassword natsel validate
Beta olmayan dalın beta adı "public "tir, bu nedenle app_update 90 -beta public sizi HLDS için beta dalından çıkaracaktır.
5. İşiniz bittiğinde, Steam sunucularından düzgün bir şekilde çıkış yapmak için yazın.
=== Doğrulama ===
 SteamCMD dosyalarıyla eşleştiklerinden emin olmak için tüm sunucu dosyalarını kontrol eden bir komuttur. Bu komut dosyaların eksik veya bozuk olabileceğini düşünüyorsanız kullanışlıdır.
It is recommended you use this command only on initial installation and if there are server issues.
=== Desteklenen Sunucular ===
Kurulum için SteamCMD kullanan bilinen sunucuların bir listesi Dedicated Servers List sayfasında mevcuttur. Listelenen tüm ekstra komutların app_update satırından önce çalıştırılması gerektiğini unutmayın.
== SteamCMD'yi Otomatikleştirme ==
SteamCMD'yi otomatikleştirmenin iki yolu vardır. (Linux/macOS üzerinde steamcmd yerine ./steamcmd.sh yazın)
=== Komut Satırı ===
Komutları komut satırına artı karakterlerle öneklenmiş olarak ekleyin, örn:
 steamcmd +force_install_dir ../cs1_ds +login anonymous +app_update 730 +quit
Counter-Strike:Condition Zero gibi HL1 için belirli bir oyun modunu yüklemek için:
 steamcmd +force_install_dir ../czero +login anonymous +app_set_config 90 mod czero +app_update 90 +quit
Killing Floor gibi giriş gerektiren bir oyun için:
 steamcmd +force_install_dir c:\KFServer\ +login <username> <password> +app_update 215350 +quit
=== Komut Dosyası Oluşturma ===
1. SteamCMD komutlarınızı bir metin dosyasına koyun. (// ile başlayan yorumlar ekleyebilirsiniz.) Örnek:
// update_csgo_ds.txt
//
@ShutdownOnFailedCommand 1 //aynı anda birden fazla sunucu güncelleniyorsa 0 olarak ayarlanır
@NoPromptForPassword 1
force_install_dir ../csgo_ds
login <username> <password>
//oturum açmaya ihtiyaç duymayan sunucular için
//login anonymous 
app_update 740 validate
quit
2. SteamCMD'yi +runscript seçeneği ile çalıştırın ve daha önce oluşturduğunuz dosyayı referans alın. Örnek:
 steamcmd +runscript update_csgo_ds.txt
== Platformlar Arası Kurulum ==
SteamCMD'nin şu anda çalıştığı platform olmasa bile dosyaları indireceği platformu seçmek mümkündür. Bu @sSteamCmdForcePlatformType değişkeni kullanılarak yapılır. (Evet, değişken adının başında iki "s" var.) Örneğin, Windows CSGO adanmış sunucusunu Linux'a indirmek için aşağıdaki komutu çalıştırabilirsiniz:
 ./steamcmd.sh +@sSteamCmdForcePlatformType windows +force_install_dir ../csgo_ds +login anonymous +app_update 740 validate +quit
veya aşağıdaki komut dosyasını kullanın:
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
@sSteamCmdForcePlatformType windows
force_install_dir ../csgo_ds
login anonymous
app_update 740 validate
quit
Desteklenen değerler windows, macos ve linux.
== Windows Yazılımları/Komut Dosyaları ==
=== condenser ===
condenser Steam adanmış sunucu uygulamalarını yüklemek, yapılandırmak ve başlatmak için bir önyükleyicidir.
=== SteamCMD Otomatik Güncelleyici ===
Herhangi bir oyun sunucusunu kurun ve otomatik olarak güncelleyin.
GitHub Repo:
https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver
=== SteamCMD GUI ===
Bu araç kullanıcının Windows üzerinde komut satırları ve/veya toplu iş dosyaları olmadan SteamCMD'yi kullanmasını sağlar.
GitHub Repo:
https://github.com/DioJoestar/SteamCMD-GUI
=== SteamPS ===
SteamPS sunucuları güncellemek ve sunucu bilgilerini almak için kullanılabilen bir PowerShell modülüdür. Ayrıca oyun sunucularını güncellemek için bir iş akışı sunar.
===PowerShellGSM===
PowerShellGSM SteamCMD kullanarak oyun sunucularını yönetmek için Modüler bir PowerShell aracıdır.
====Özellikler====
* Kurulum
* Yedeklemeler
* Güncellemeler
* İzleme
* Yeniden Başlatma
====Desteklenen Sunucular====
PowerShellGSM 20'den fazla şablon sunucusu içerir ve özel şablonları destekleyerek neredeyse tüm oyunları (SteamCMD olmayan oyunları bile) desteklemenizi sağlar.
====Avantajlar====
Mevcut araçların çoğundan daha hızlı.
Daha hafif ve daha hedefe yönelik yedeklemeler.
Modüler.
Genişletilebilir.
Özelleştirilebilir.
====Bağlantılar====
GitHub Repo: https://github.com/patrix87/PowerShellGSM
== Linux Komut Dosyaları ==
===LinuxGSM===
right|thumb|370px|Linux Oyun Sunucusu Yöneticileri
LinuxGSM, Linux adanmış oyun sunucularının hızlı, basit dağıtımı ve yönetimi için komut satırı aracıdır.
====Özellikler====
* Yükleyici
* Güncelleyici
* Monitör
* Uyarılar
* Sunucu Ayrıntıları
* Yedeklemeler
* Konsol
====Desteklenen Sunucular====
Şu anda 100'den fazla farklı oyun sunucusu destekleniyor ve sayıları artıyor. Tam liste için web sitesini ziyaret edin.
====Bağlantılar====
Website: https://linuxgsm.com
GitHub Repo: https://github.com/GameServerManagers/LinuxGSM
===docker-steam-wine===
Steam destekli bir Windows oyun sunucusunu Docker'da çalıştırın.
Proje:
https://github.com/nuxy/docker-steamcmd-wine
== Known Issues ==
===ERROR! Failed to install app "xxxxxx" (No subscription)===
"No subscription" hatasını alıyorsanız, indirmeye çalıştığınız oyun/sunucu ya giriş gerektiriyordur ya da oyunu satın almışsınızdır. Bu nedenle bir Steam kullanıcı adı ve şifresi ile giriş yapmanız gerekecektir. Eğer bu işe yaramazsa, önce oyunun bir kopyasını Steam üzerinden satın almanız gerekebilir. Bkz Dedicated Servers List.
Örneğin:
steamcmd +login <username> <password>
=== 64-Bit Linux Sistemlerinde 32-Bit Kütüphaneler ===
SteamCMD 32 bitlik bir ikili olduğundan, 32 bitlik kütüphaneler gereklidir.
Aşağıdaki hata oluşabilir:
 steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Çözünürlük dağıtımınıza bağlı olarak değişir:
==== Debian Tabanlı Dağıtımlar (Ubuntu, Mint, vb.) ====
 sudo apt-get install lib32stdc++6
Debian 7 "Wheezy" ile bu hata ile karşılaşabilirsiniz:
 The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-multiarch but it is not installable
 E: Unable to correct problems, you have held broken packages.
Bunu düzeltmek için aşağıdakileri yapın:
 dpkg --add-architecture i386
 apt-get update
 apt-get install lib32gcc1
==== Red Hat Tabanlı Dağıtımlar (RHEL, Fedora, CentOS, vb.) ====
 yum install glibc.i686 libstdc++.i686
==== Arch Linux ====
Önce multilib repository'ı etkinleştirmeyi unutmayın.
 pacman -S lib32-gcc-libs
=== Giriş Hatası: Bağlantı Yok ===
Linux sunucularında "Login Failure: No Connection" hatasıyla karşılaşabilirsiniz. Bu eksik iptables kuralları ile ilgilidir. Bu çizgiler boyunca bir şey isteyeceksiniz:
iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT
Port listesini burada bulabilirsiniz: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english
Windows sunucularında, "SteamUpdater: Error: Download failed: http error 0" ve "SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again." Bu genellikle IE'de (Internet Explorer) İnternet seçeneği menüsündeki lan ayarları aracılığıyla "Ayarları otomatik olarak algıla" seçeneğini işaretleyerek düzeltilir.
# Internet Explorer'ı (IE) açın.
# Araçlar → İnternet Seçenekleri üzerine tıklayın
# Bağlantılar sekmesine tıklayın
# En altta Yerel Alan Ağı (LAN) Ayarlarını görmelisiniz.
# İlk kutuyu işaretleyin (Ayarları otomatik olarak algıla)
# Tamam ve Uygula düğmesine basın. SteamCMD'yi tekrar çalıştırmayı deneyin; eğer hala çalışmıyorsa. İnternet Güvenlik seviyesi bölgenizi orta veya daha düşük bir seviyeye indirmeyi deneyin. Bunu İnternet Seçenekleri içindeki Güvenlik sekmesinde bulabilirsiniz.
=== SteamCMD Başlangıç Hataları ===
==== Çalışan Bir Steam Örneği Bulunamıyor ====
Linux ile bir sunucu başlatırken aşağıdaki hatayı alabilirsiniz:
 [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.
steamclient.so'yı ~/.steam/sdk32/steamclient.so dizinine bağlayarak sorunu çözün:
 ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so
==== ulimit Linux Başlangıç Hatası ====
Bazı kullanıcılar betik başlatılırken ulimit hatası (no permission/cannot open file) alabilirler. Bu hata ulimit'nın -n parametresinin (dosya tanımlayıcı sayısı) düşük ayarlanmasından kaynaklanır. SteamCMD ulimit'yı otomatik olarak değiştirmek için başlatma kabuk betiği içindeki standart komutları kullanır, ancak bazı sunucular başlangıçtan sonra ulimit değerlerini artırmayı yasaklayabilir (veya root tarafından belirlenen bir sınırın ötesinde).
Bu, dosya tanımlayıcı numarası ulimit değiştirilerek düzeltilebilir:
 ulimit -n 2048
Eğer bir hata görünürse (no permission), parametreyi değiştirmek için root olarak oturum açmanız gerekecektir. Mevcut ayarı kontrol etmek için ulimit -a yazın; sistem birçok satırla yanıt verecektir, birini bulmanız gerekir:
 open files (-n) 1024
Bu durumda, 1024 geçerli değerdir.
root, /etc/security/limits.conf dosyasındaki limitleri de değiştirebilir.
Çoğu durumda sadece bir uyarı mesajı alacaksınız ancak bu SteamCMD'nin çalışmasını durdurmayacaktır.
=== Windows Makinede Linux 64-Bit steamclient.so Almak ===
WSL 32 bit dosyalarla iyi oynamaz. Eğer steamclient.so 64-bit dosyasına ihtiyacınız varsa aşağıdaki komutu çalıştırabilirsiniz:
steamcmd.exe +@sSteamCmdForcePlatformType linux +login anonymous +app_update 1007 +quit
Daha sonra dosyayı burada bulacaksınız:
.\steamapps\common\Steamworks SDK Redist\linux64
=== Yalnızca HLDS Motoru İndirilir ===
TFC gibi bir modunu indirmeye çalışırken, başlangıçta yalnızca HLDS'nin motor dosyalarını indiriyor, ancak modu indirmiyor. Bunun nedeni appmanifest dosyalarının doğru indirilmemesidir. Bu hem normal sürümde hem de beta sürümünde olur. Gerekli tüm dosyalar indirilene kadar birden fazla kez denemeniz gerekebilir, ancak bu yapıldığında, dosyalar bir dahaki sefere doğru şekilde güncellenmelidir.
Alternatif olarak, mevcut appmanifest dosyalarını steamapps dizinine kopyalamak mümkündür. Appmanifest dosyalarını LinuxGSM github deposundan indirin.
Üçüncü bir taraftan yedekleri indirmeden sadece appmanifest dosyalarını silmek de işe yarayabilir! Yine de ilk başta, silinen dosyalar nedeniyle bir şeylerin yanlış gittiğinden şikayet eden bir hata alacaksınız.
== Ayrıca Bkz ==
* Source Dedicated Server
* Half-Life Dedicated Server
* Dedicated Servers List
* SteamCMDui
* [linode.com] Linux Install SteamCMD