SteamCMD
For help, see the VDC Editing Help and Wikipedia cleanup process. Also, remember to check for any notes left by the tagger at this article's talk page.
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
- Windows için SteamCMD'yi indirin: [1]
- SteamCMD için bir klasör oluşturun. Örnek:
D:\steamcmd
- Zipin içeriğini klasöre çıkarın.
steamcmd.exe
'install' klasörüne yerleştirilmesi önerilir ancak gerekli değildir.Linux
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.
steamcmd
komutunu çalıştırmayın. Bunu yapmak bir güvenlik riskidir.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
sudo pacman -Syy base-devel
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: [2]
İlgili Docker Hub sayfasına buradan ulaşabilirsiniz: [3]
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 sudo
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 -
macOS
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.
Windows
Bir Komut İstemi açın ve SteamCMD'yi başlatın.
cd C:\steamcmd steamcmd
Linux
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
macOS
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 login anonymous
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\
.
dizinini kullanmaya çalıştığınızda bir hata döndürecektir. Bunun için geçici bir çözüm mevcut dizinin mutlak yolunu kullanmaktır.3. login
komutu ile giriş yapın
Valve, oturum açmadan önce yükleme dir'ini ayarlamanızı önerir.
4. app_update
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 validate
ekleyin. Bir beta dalını indirmek için -beta <betaname>
seçeneğini kullanın – örneğin, HLDS beta dalı beta
ve SrcDS beta dalı prerelease
olarak adlandırılır. Bazı beta dalları bir şifre ile korunmaktadır; bunlardan indirme yapabilmek için -betapassword <password>
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
app_update
komutunun birden fazla çalıştırılmasını gerektirmektedir. Daha fazla güncelleme gerçekleşmeyene kadar app_update 90 validate
'yı birkaç kez çalıştırmanız yeterlidir. [todo tested in?]- Ö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
, passwordnatsel
): - [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 quit
yazın.
Doğrulama
validate
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.
mapcycle.txt
'yı özelleştirirseniz, bu dosyanın üzerine sunucu varsayılanı yazılacaktır. Varsayılan kurulumun parçası olmayan hiçbir dosya etkilenmeyecektir.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ı
-beta
seçeneği kullanılırken, +app_update "90 -beta beta"
gibi özel bir şekilde alıntılanmalıdır."+app_update 90 -beta beta"
şeklinde yazmayı deneyin.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
Failed to load script file 'scriptname.txt'
, /mnt/storage/tf2server/updatetf2_script.txt
gibi mutlak bir yol sağlamayı deneyinPlatformlar 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
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
ia32-libs
gerekli değildir; lib32gcc1
yeterlidir.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 GoldSrc 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.