SteamCMD
(Utworzył nową stronę „'''Steam Console Client''' lub '''SteamCMD''' jest nowym narzędziem do instalacji i aktualizacji serwerów dedykowanych, przy użyciu wiersza poleceń. Narzędzie d...”) |
m (drobne poprawki) |
||
Linia 5: | Linia 5: | ||
1. Pobieranie SteamCMD Update Tool | 1. Pobieranie SteamCMD Update Tool | ||
:* [http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.zip Instalator Windows] | :* [http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.zip Instalator Windows] | ||
− | :* | + | :* Linuks: wpisz <code>wget http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.tar.gz</code> |
:: Jeśli posiadasz 64-bitową dystrybucję Linuksa najprawdopodobniej zaistnieje potrzeba instalacja dodatkowych bibliotek w wersji 32bit. Zobacz[[#biblioteki 32-bitowe na systemach Linuks 64-bit|tutaj]] jak to zrobić. | :: Jeśli posiadasz 64-bitową dystrybucję Linuksa najprawdopodobniej zaistnieje potrzeba instalacja dodatkowych bibliotek w wersji 32bit. Zobacz[[#biblioteki 32-bitowe na systemach Linuks 64-bit|tutaj]] jak to zrobić. | ||
2. Wypakuj gdzieś na dysk zawartość pobranego archiwum | 2. Wypakuj gdzieś na dysk zawartość pobranego archiwum | ||
: Uwaga: Nie wypakowuj zawartości archiwum w miejsce, gdzie masz już zainstalowanego klienta Steam lub narzędzie [[Hldsupdatetool|HLDSUpdateTool]]. | : Uwaga: Nie wypakowuj zawartości archiwum w miejsce, gdzie masz już zainstalowanego klienta Steam lub narzędzie [[Hldsupdatetool|HLDSUpdateTool]]. | ||
− | :* | + | :* Linuks: wpisz <code>tar xvfz steamcmd.tar.gz</code> |
3. Uruchomienie SteamCMD po raz pierwszy | 3. Uruchomienie SteamCMD po raz pierwszy | ||
: Otwórz wiersz poleceń i uruchom SteamCmd | : Otwórz wiersz poleceń i uruchom SteamCmd | ||
:* Windows: wpisz <code>steamcmd</code> | :* Windows: wpisz <code>steamcmd</code> | ||
− | :* | + | :* Linuks: wpisz <code>./steam.sh</code> |
:: Jeśli nie działa spróbuj wpisać <code>STEAMEXE=steamcmd ./steam.sh</code> | :: Jeśli nie działa spróbuj wpisać <code>STEAMEXE=steamcmd ./steam.sh</code> | ||
:: Jeśli to także nie działa i spróbuj otworzyć plik w edytorze tekstu i zmienić 60 linię, aby wyglądała następująco: <code>${DEBUGGER} "${STEAMROOT}"/${PLATFORM}/${STEAMEXE}cmd "$@"</code> | :: Jeśli to także nie działa i spróbuj otworzyć plik w edytorze tekstu i zmienić 60 linię, aby wyglądała następująco: <code>${DEBUGGER} "${STEAMROOT}"/${PLATFORM}/${STEAMEXE}cmd "$@"</code> | ||
Linia 21: | Linia 21: | ||
Do pobrania niektórych gier niezbędne będzie zalogowanie się na swoje konto Steam | Do pobrania niektórych gier niezbędne będzie zalogowanie się na swoje konto Steam | ||
Uwaga: Należy się wcześniej wylogować ze swojego klienta Steam. | Uwaga: Należy się wcześniej wylogować ze swojego klienta Steam. | ||
− | + | login <nazwaużytkownika> <hasło> | |
Jeśli wystąpi błąd związany z Steam Guard error należy sprawdzić email przypisany do konta i użyć kodu w następujący sposób (czynność tą wystarczy wykonać tylko raz na danym komputerze): | Jeśli wystąpi błąd związany z Steam Guard error należy sprawdzić email przypisany do konta i użyć kodu w następujący sposób (czynność tą wystarczy wykonać tylko raz na danym komputerze): | ||
login <nazwaużytkownika> <hasło> <kod steam guard> | login <nazwaużytkownika> <hasło> <kod steam guard> | ||
Linia 64: | Linia 64: | ||
SteamCMD +runscript csgo_ds.txt | SteamCMD +runscript csgo_ds.txt | ||
+ | === Ochrona danych logowania przy użyciu pgp na Linuksie === | ||
+ | Stwórz swój skrypt logujący, tak jak pokazuje przykład, a następnie zapisz go jako ''update_csgo_ds.txt''. Należy zaszyfrować plik tekstowy przy użyciu symetrycznego (odwracalnego) szyfrowania: | ||
+ | gpg -c --force-mdc update_csgo_ds.txt | ||
+ | # wpisz swoje hasło | ||
+ | # zostanie utworzony zaszyfrowany plik update_csgo_ds.txt.gpg | ||
+ | # usuń oryginalny plik | ||
+ | # rm update_csgo_ds.txt | ||
+ | |||
+ | Deszyfracje można sprawdzić za pomocą: | ||
+ | gpg -d update_csgo_ds.txt.gpg | ||
+ | # wpisz swoje hasło | ||
+ | # tekst zostanie wyświetlony, gdy hasło będzie wpisane poprawnie | ||
+ | |||
+ | Gdy wszystko będzie ok, poniższy skrypcik przekieruje odszyfrowane hasło bezpośrednio do steam.sh: | ||
+ | #!/bin/sh | ||
+ | read -p "Wprowadź hasło: " -s pass | ||
+ | gpg --passphrase $pass -d login.gpg 2>/dev/null | STEAMEXE=steamcmd ./steam.sh | ||
+ | pass="" | ||
= Znane problemy = | = Znane problemy = | ||
Linia 69: | Linia 87: | ||
== Mogę pobrać i zaktualizować serwer, lecz serwer nie chce wystartować == | == Mogę pobrać i zaktualizować serwer, lecz serwer nie chce wystartować == | ||
Najczęstsze przyczyny: | Najczęstsze przyczyny: | ||
− | * | + | * Linuks: Niektóre gry na pewnych dystrybucjach mają problemy z WIELKIMI literami w nazwach plików. |
== biblioteki 32-bitowe na systemach Linuks 64-bit == | == biblioteki 32-bitowe na systemach Linuks 64-bit == | ||
− | + | Steamcmd jest aplikacją 32-bitową, także wymaga pewnych 32-bitowych bibliotek do działania, pomimo, że są już zainstalowane ich 64-bitowe odpowiedniki. | |
Błąd ten wygląda mniej, więcej tak:<br/> | Błąd ten wygląda mniej, więcej tak:<br/> | ||
Linia 82: | Linia 100: | ||
=== Debian i pochodne === | === Debian i pochodne === | ||
− | <code>sudo apt-get install ia32-libs | + | <code>sudo apt-get install ia32-libs</code> |
=== CentOS === | === CentOS === |
Wersja z 18:18, 29 lis 2012
Steam Console Client lub SteamCMD jest nowym narzędziem do instalacji i aktualizacji serwerów dedykowanych, przy użyciu wiersza poleceń. Narzędzie działa tylko z grami, które działają z nowym systemem zawartości na Steam. Docelowo wszystkie gry będą używać tej metody, zamiast HLDSUpdateTool.
Spis treści |
Pobieranie i uruchomienie SteamCMD
1. Pobieranie SteamCMD Update Tool
- Instalator Windows
- Linuks: wpisz
wget http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.tar.gz
- Jeśli posiadasz 64-bitową dystrybucję Linuksa najprawdopodobniej zaistnieje potrzeba instalacja dodatkowych bibliotek w wersji 32bit. Zobacztutaj jak to zrobić.
2. Wypakuj gdzieś na dysk zawartość pobranego archiwum
- Uwaga: Nie wypakowuj zawartości archiwum w miejsce, gdzie masz już zainstalowanego klienta Steam lub narzędzie HLDSUpdateTool.
- Linuks: wpisz
tar xvfz steamcmd.tar.gz
- Linuks: wpisz
3. Uruchomienie SteamCMD po raz pierwszy
- Otwórz wiersz poleceń i uruchom SteamCmd
- Windows: wpisz
steamcmd
- Linuks: wpisz
./steam.sh
- Jeśli nie działa spróbuj wpisać
STEAMEXE=steamcmd ./steam.sh
- Jeśli to także nie działa i spróbuj otworzyć plik w edytorze tekstu i zmienić 60 linię, aby wyglądała następująco:
${DEBUGGER} "${STEAMROOT}"/${PLATFORM}/${STEAMEXE}cmd "$@"
- Windows: wpisz
Aplikacja zaktualizuje się automatycznie i wyświetli coś takiego Steam>
. Wpisz help
, aby uzyskać więcej informacji.
Do pobrania niektórych gier niezbędne będzie zalogowanie się na swoje konto Steam
Uwaga: Należy się wcześniej wylogować ze swojego klienta Steam.
login <nazwaużytkownika> <hasło>
Jeśli wystąpi błąd związany z Steam Guard error należy sprawdzić email przypisany do konta i użyć kodu w następujący sposób (czynność tą wystarczy wykonać tylko raz na danym komputerze):
login <nazwaużytkownika> <hasło> <kod steam guard>
Powinien się teraz wyświetlić komunikat o poprawnym zalogowaniu na konto.
Pobieranie serwerów
1. Uruchom SteamCMD i ustaw folder, gdzie ma się pobrać serwer. (Uwaga: użyj odpowiednich ukośników dla Windowsa '\' i Linuksa '/')
force_install_dir <ścieżka>
- Błąd: Na niektórych dystrybucjach ścieżka nie może zawierać WIELKICH liter - zobacz #Znane problemy
- Przykład:
- Instalacja cs_go w aktualnej ścieżce:
force_install_dir ./cs_go/
2. Instalacja i aktualizacja serwerów. Do sprawdzenia poprawności plików należy użyć komendy validate
.
app_update <id_aplikacji>
- Przykład:
- Do instalacji i weryfikacji poprawności plików CS:GO:
app_update 740 validate
3. W celu poprawnego zamknięcia programu i wylogowania się z serwerów Steam należy użyć komendy quit
.
Automatyzacja SteamCMD
Są dwa sposoby za zautomatyzowanie SteamCMD.
1. Dodawanie komend z wiersza poleceń. Przykład:
SteamCMD +login użytkownik hasło +force_install_dir ../csgo_ds +app_update 740 validate
2. Stworzenie skryptu.
- a. Umieszczenie komend SteamCMD w pliku tekstowym. Przykład:
// update_csgo_ds.txt // login uzytkownik hasło force_install_dir ../csgo_ds app_update 740 validate exit
- b. Uruchamianie SteamCMD z opcją czytania skryptu
+runscript
. Przykład:
SteamCMD +runscript csgo_ds.txt
Ochrona danych logowania przy użyciu pgp na Linuksie
Stwórz swój skrypt logujący, tak jak pokazuje przykład, a następnie zapisz go jako update_csgo_ds.txt. Należy zaszyfrować plik tekstowy przy użyciu symetrycznego (odwracalnego) szyfrowania:
gpg -c --force-mdc update_csgo_ds.txt # wpisz swoje hasło # zostanie utworzony zaszyfrowany plik update_csgo_ds.txt.gpg # usuń oryginalny plik # rm update_csgo_ds.txt
Deszyfracje można sprawdzić za pomocą:
gpg -d update_csgo_ds.txt.gpg # wpisz swoje hasło # tekst zostanie wyświetlony, gdy hasło będzie wpisane poprawnie
Gdy wszystko będzie ok, poniższy skrypcik przekieruje odszyfrowane hasło bezpośrednio do steam.sh:
#!/bin/sh read -p "Wprowadź hasło: " -s pass gpg --passphrase $pass -d login.gpg 2>/dev/null | STEAMEXE=steamcmd ./steam.sh pass=""
Znane problemy
Mogę pobrać i zaktualizować serwer, lecz serwer nie chce wystartować
Najczęstsze przyczyny:
- Linuks: Niektóre gry na pewnych dystrybucjach mają problemy z WIELKIMI literami w nazwach plików.
biblioteki 32-bitowe na systemach Linuks 64-bit
Steamcmd jest aplikacją 32-bitową, także wymaga pewnych 32-bitowych bibliotek do działania, pomimo, że są już zainstalowane ich 64-bitowe odpowiedniki.
Błąd ten wygląda mniej, więcej tak:
steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Rozwiązanie jest zależne od dystrybucji:
Debian i pochodne
sudo apt-get install ia32-libs
CentOS
sudo yum install glibc.i686 libstdc++.i686
Nieudane pobieranie
Na systemach Windows pobieranie może się nie powieść, gdy ustawienia proxy nie są ustawione na automatyczne.
Login Failure: No Connection
Na serwerach linuksowych można doświadczyć następującego problemu "Login Failure: No Connection". Problem jest związany z brakującymi wpisami w iptables. Należy dodać coś podobnego:
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
Lista wymaganych portów znajduje się tutaj: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english