RE:NODE

Valheim სერვერის განახლება და 'Incompatible version'-ის გამოსწორება

ავტორი RE:NODE-ის გუნდი
11 წუთის საკითხავი


"Incompatible version" Valheim სერვერზე ნიშნავს, რომ მოთამაშის PC-ზე თამაში და სერვერი სხვადასხვა build-ზეა, და გამოსავალი თითქმის ყოველთვის სერვერის განახლებაა: გააჩერე ის სუფთად, მის ინსტალაციის საქაღალდეზე გაუშვი steamcmd +login anonymous +app_update 896660 validate +quit და ისევ ჩართე. თამაში Steam-ით თავისით ახლდება, როგორც კი პატჩი გამოვა; გამოყოფილი სერვერი ცალკე აპლიკაციაა, რომელიც მხოლოდ მაშინ ახლდება, როცა ვინმე ან რამე ამას უბრძანებს. პოსტის დანარჩენი ნაწილი იმ შემთხვევებზეა, როცა ეს ერთი ბრძანება საკმარისი არ არის - მოდებიანი სერვერები, მოთამაშეები public test ტოტზე, Xbox-ისა და Game Pass-ის მოთამაშეები, რომლებიც ერთი დღით ჩამორჩებიან, და ჯგუფები, რომლებსაც არ სურთ საღამო პატჩს შეალიონ.

რატომ შორდება ვერსიები ერთმანეთს#

Valheim Steam-ზე ორი პროდუქტია. თამაში არის აპლიკაცია 892970, გამოყოფილი სერვერი - 896660. ისინი ერთად გამოდის, მაგრამ ცალ-ცალკე ყენდება და ახლდება:

  • კლიენტი Steam-ით ავტომატურად ახლდება, ჩვეულებრივ მაშინვე, როგორც კი მოთამაშე პატჩის შემდეგ Steam-ს გახსნის. მოთამაშეებს განახლებაზე უარის თქმა ადვილად არ შეუძლიათ.
  • სერვერი მაშინ ახლდება, როცა SteamCMD ან Steam-ის კლიენტი მის ინსტალაციაზე განახლებას გაუშვებს. სერვერი, რომელიც ერთი კვირაა მუშაობს, იმ build-ზეა, რომელიც მაშინ იყო აქტუალური, როცა ბოლოს განახლებით ჩაირთო.

ასე რომ, პატჩის დღეს ჩვეულებრივი თანმიმდევრობაა: Iron Gate პატჩს გამოუშვებს, ჯგუფის ნახევარს თამაში განუახლდება, ცდილობენ შეერთებას და სერვერი მათ უარყოფს. არაფერი არ არის გაფუჭებული. სერვერი უბრალოდ ერთი დღით ძველია.

შეუსაბამობა კიდევ ორი მიმართულებით შეიძლება წავიდეს:

  • სერვერი კლიენტზე ახალია. მოთამაშე, რომელსაც Steam არ გადაუტვირთავს ან განახლებები შეჩერებული აქვს, ჩამორჩება. შეცდომა იგივეა.
  • სხვადასხვა პლატფორმა სხვადასხვა დღეს ახლდება. პატჩებს პირველი Steam იღებს. Microsoft Store-ისა და Xbox-ის build-ები ზოგჯერ გვიან მოდის, ამიტომ crossplay ჯგუფში შეიძლება იყვნენ Steam-ის მოთამაშეები, რომლებსაც ახალი სერვერი სჭირდებათ, და Xbox-ის მოთამაშეები, რომლებიც მას ჯერ ვერ უერთდებიან. ეს შემთხვევა აღწერილია პოსტში Valheim crossplay და Xbox-ის მოთამაშეები.

ვერსიის წაკითხვა ორივე მხარეს#

სანამ რამეს შეცვლი, შეუსაბამობა დაადასტურე.

კლიენტზე ვერსია მთავარი მენიუს ქვედა კუთხეშია - ასეთი სტრიქონი: 0.219.14. ყველა მოთამაშე მას ორ წამში წაიკითხავს.

სერვერზე ვერსია ჩართვისას ლოგის დასაწყისთან იბეჭდება:

code
Valheim version: l-0.219.14 (network version 34)

პრეფიქსი l- build-ის ტიპია და არა ნომრის ნაწილი. ფრჩხილებში მოცემული რიცხვი ქსელის ვერსიაა, და ახალ build-ებში კავშირის თავსებადობა სწორედ მასზე მოწმდება - ორ build-ს, რომლებსაც ერთი ქსელის ვერსია აქვთ, ერთმანეთთან ლაპარაკი შეუძლიათ. Iron Gate მას შინაარსობრივ პატჩებს შორის სტაბილურად არ ინარჩუნებს და მოთამაშეს წინასწარ გაგების საიმედო გზა არ აქვს, შეცვალა თუ არა ესა თუ ის hotfix იგი, ამიტომ სამუშაო წესი უფრო მარტივია: თუ მენიუსა და ლოგში რიცხვები განსხვავდება, განაახლე ის მხარე, რომელიც ჩამორჩება.

როცა მოთამაშე უარყოფილია, სერვერის ლოგი ამასაც იწერს. ზუსტი ფორმულირება build-ებს შორის იცვლებოდა, მაგრამ ხაზი ასახელებს peer-ს და ორივე ვერსიას, საიდანაც მაშინვე ჩანს, რომელი მხარეა ძველი.

განახლება SteamCMD-ით#

საკუთარ მანქანაზე განახლება იგივე ბრძანებაა, რაც ინსტალაცია. SteamCMD დაყენებულ build-ს აქტუალურს ადარებს და მხოლოდ შეცვლილს ჩამოტვირთავს.

bash
$ sudo systemctl stop valheim$ steamcmd +force_install_dir /home/valheim/server \    +login anonymous +app_update 896660 validate +quit$ sudo systemctl start valheim

თანმიმდევრობას მნიშვნელობა აქვს:

  1. ჯერ სერვერი გააჩერე, სუფთად. სუფთა გაჩერება სამყაროს ჩაწერს. მოქმედი სერვერის ქვეშ განახლება სამყაროს პირდაპირ არ აზიანებს, მაგრამ მომდევნო გადატვირთვა აზიანებს, თუ პროცესი გაჩერების ნაცვლად მოკლულია. დაელოდე ლოგში World saved-ს.
  2. განახლება იმ მომხმარებლით გაუშვი, ვისაც ფაილები ეკუთვნის. SteamCMD-ის root-ით გაშვება valheim მომხმარებლის საქაღალდეზე root-ის კუთვნილ ფაილებს ტოვებს, რომლებსაც სერვერი მერე ვეღარ გადაწერს, და შემდეგი განახლება შუა გზაზე ჩავარდება.
  3. ყოველ ჯერზე ერთი და იგივე `+force_install_dir` გამოიყენე. შეცდომით სხვა გზაზე მიუთითებ და SteamCMD იქ მეორე, აქტუალურ ასლს დააყენებს, შენი სერვისი კი ისევ ძველს გაუშვებს.
  4. ჩართე და წაიკითხე ვერსიის ხაზი. თუ ის არ შეცვლილა, განახლება იქ არ მოხვდა, სადაც გგონია.

+force_install_dir SteamCMD-ის ახალ build-ებში +login-მდე უნდა იდგეს, თორემ გაფრთხილებით იგნორირდება. ანონიმური შესვლა სწორია - გამოყოფილ სერვერს არ სჭირდება ანგარიში, რომელსაც თამაში ეკუთვნის.

Windows-ზე ბრძანება იგივეა, steamcmd.exe-ით და Windows-ის გზით. თუ სერვერი Steam-ის კლიენტის Tools განყოფილებიდან დააყენე, Steam მას ნებისმიერი სხვა აპლიკაციასავით აახლებს; მის თვისებებში შეამოწმე, რომ ავტომატური განახლებები ჩართულია, და სერვერი გააჩერე, სანამ Steam მის ქვეშ ფაილების შეცვლას დაიწყებს.

რას აკეთებს validate და როდის გამოტოვო

validate აიძულებს SteamCMD-ს, ყოველი დაყენებული ფაილი manifest-ს შეადაროს და განსხვავებული ხელახლა ჩამოტვირთოს. ის აზიანებულ ან დაუსრულებელ ინსტალაციას ასწორებს. ამასთან ერთად ინსტალაციის საქაღალდეში ყველა შენ მიერ შეცვლილ ფაილს გადაწერს - მათ შორის start_server.sh-ს ან start_headless_server.bat-ს, თუ Steam-ის დაყენებული ასლი დაარედაქტირე.

ორი შედეგი:

  • საკუთარი გაშვების სკრიპტი სხვა სახელით შეინახე, მაგალითად start_valheim.sh, რომ validate-მა შენი გაშვების არგუმენტები არასოდეს დააბრუნოს საწყის მდგომარეობაში.
  • BepInEx-ის ფაილები manifest-ის ნაწილი არ არის, ამიტომ validate არ ეხება BepInEx/-ს, doorstop_libs-ს და start_server_bepinex.sh-ს. თუ მოდებიანმა სერვერმა განახლების შემდეგ მაინც შეწყვიტა მოდების ჩატვირთვა, შეამოწმე, რომ ის ისევ start_server_bepinex.sh-ით ირთვება და არა ვანილური სკრიპტით, მერე კი სერვერზე ზემოდან აქტუალური BepInExPack გადააყენე - პაკეტები ზოგჯერ თამაშის პატჩთან ერთად ახლდება.

ჩვეულებრივი +app_update 896660 validate-ის გარეშე რუტინული განახლებებისთვის სავსებით საკმარისია. validate მაშინ გამოიყენე, როცა სერვერი განახლების შემდეგ უცნაურად იქცევა ან ინსტალაცია შეწყდა. ამ არჩევანს ზოგადად განიხილავს თამაშის სერვერის განახლებების ავტომატიზაცია.

მოდებიანი სერვერები: დაელოდე მოდებს#

ვანილურ სერვერზე პატჩის დღეს განახლება ყოველთვის სწორია. BepInEx სერვერზე ხშირად - არა.

მოდები თამაშის კოდს ებმება. პატჩი, რომელიც გადაარქმევს ან შეცვლის მეთოდს, რომელსაც მოდი ცვლის, მოდს ტეხს - ზოგჯერ ჩართვისას შეცდომით, ზოგჯერ ჩუმად, ზოგჯერ იმის დაზიანებით, რასაც მოდი ინახავს. და რადგან მოთამაშეები იმავე მოდებს საკუთარ კლიენტებზე იყენებენ, Steam-ის განახლების შემდეგ მათი თამაშიც იმავე მდგომარეობაშია.

გონივრული თანმიმდევრობა მოდებიან სერვერზე:

  1. სანამ პატჩი სადმე დაყენდება, გააკეთე სამყაროს backup და დააკოპირე მთელი BepInEx საქაღალდე, პლაგინებიც და კონფიგურაციაც.
  2. შეამოწმე თითოეული მოდის გვერდი - არის თუ არა განახლება ან შენიშვნა, რომ ის კვლავ მუშაობს. ბიბლიოთეკები, როგორიცაა Jotunn, ჩვეულებრივ პირველები ახლდება; მათზე დამოკიდებული მოდები მერე მოჰყვება.
  3. სერვერი მხოლოდ მაშინ განაახლე, როცა ყველა მოდი, რომელსაც ეყრდნობი, მზადაა. მანამდე მოთამაშეები, რომლებმაც უკვე განაახლეს, ვერ შეუერთდებიან - ეს მოდების გამოყენების ფასია.
  4. მოდები სერვერზე და ყველა კლიენტზე ერთად განაახლე, იდეალურად საერთო mod manager-ის პროფილიდან, რომ ვერსიები ზუსტად ემთხვეოდეს.
  5. ჩართე სერვერი და წაიკითხე `BepInEx/LogOutput.log` ჩაუტვირთავი პლაგინების საპოვნელად, სანამ ვინმე შემოვა.

მოთამაშეები, რომლებმაც თამაში მოდების მზადყოფნამდე განაახლეს, იღებენ ვერსიის შეუსაბამობას თამაშისგან, მოდების შეუსაბამობას Jotunn-ისგან ან ServerSync-ისგან, ან ორივეს. ეს სხვადასხვა შეცდომებია სხვადასხვა გამოსავლით - მოდებისას განიხილავს Valheim-ის მოდების ვერსიის შეუსაბამობის გამო გაგდება. ერთი ცუდი მოდის უკან დაბრუნებას აღწერს რა ვქნა, როცა მოდის განახლება ყველაფერს ტეხს.

სერვერის განახლების უკან დაბრუნება#

Steam ჩვეულებრივ რეჟიმში გამოყოფილი სერვერის ძველ build-ებს არ გთავაზობს. როგორც კი SteamCMD ინსტალაციას განაახლებს, ძველი ვერსია ქრება, თუ არ შეინახე.

ამიტომ პრაქტიკული უკან დაბრუნება წინასწარ გაკეთებული ასლია:

bash
$ sudo systemctl stop valheim$ cp -a /home/valheim/server /home/valheim/server-0.219.14$ steamcmd +force_install_dir /home/valheim/server \    +login anonymous +app_update 896660 +quit

თუ ახალი build ცუდია, გააჩერე სერვერი, ახალი ინსტალაცია გვერდზე გადადე და ასლი დააბრუნე. ეს მხოლოდ მაშინ მუშაობს, თუ მოთამაშეებს ჯერ კიდევ შეუძლიათ ძველი ვერსიის გაშვება, რაც ჩვეულებრივ ასე არ არის - Steam-მა მათი თამაში უკვე განაახლა. სერვერის უკან დაბრუნება ძირითადად მოდებიანი ჯგუფისთვისაა სასარგებლო, რომლის ყველა წევრი თანახმაა ძველ build-ზე დარჩეს, და ამისთვის თითოეულ მოთამაშეს ძველი თამაშის ასლიც სჭირდება, რაც იმაზე მეტია, რასაც ჯგუფების უმეტესობა გააკეთებს.

უფრო ხშირად სწორი "უკან დაბრუნება" სამყაროა: თუ პატჩმა და გაფუჭებულმა მოდმა ერთად შენახვა დააზიანეს, სამყარო განახლებამდელი მდგომარეობიდან აღადგინე და არა სერვერის გამშვები ფაილი. სწორედ ამიტომ მოდებიანი სიის პირველ ნაბიჯში გაკეთებული backup ინსტალაციის ასლზე მნიშვნელოვანია.

Public test ტოტი#

Iron Gate დიდ განახლებებს გამოშვებამდე public test ტოტზე ამოწმებს. მოთამაშეები მასში Steam-ით ერთვებიან: თამაშის Properties, Betas ჩანართი და კოდი, რომელსაც Iron Gate ყოველ ტესტთან ერთად აქვეყნებს - ისტორიულად yesimadebackups, რაც კარგად ამბობს, რას ფიქრობენ ისინი backup-ების გამოტოვებაზე.

public test build-ზე მყოფი მოთამაშე ჩვეულებრივ სერვერს ვერ უერთდება, ჩვეულებრივი მოთამაშე კი - სატესტოს. სატესტო სერვერის გასაშვებად სერვერის შესაბამისი ტოტი დააყენე:

bash
$ steamcmd +force_install_dir /home/valheim/ptb \    +login anonymous \    +app_update 896660 -beta public-test -betapassword yesimadebackups validate \    +quit

გამოყენებამდე ტოტის აქტუალური სახელი და პაროლი Iron Gate-ის საკუთარ განცხადებაში გადაამოწმე; ისინი წლებია არ შეცვლილა, მაგრამ მათი შეცვლა Iron Gate-ის გადასაწყვეტია.

წესები სატესტო სერვერებისთვის:

  • გამოიყენე ცალკე ინსტალაციის საქაღალდე და ცალკე შენახვის საქაღალდე. სატესტო build-ზე გახსნილი სამყარო შეიძლება ისეთ ფორმატში შეინახოს, რომელსაც გამოშვებული build ვერ წაიკითხავს.
  • სატესტო სერვერს არასოდეს მიუთითო შენი მთავარი სამყარო. დააკოპირე და შეეგუე, რომ ასლი შეიძლება დაიკარგოს.
  • მოთამაშეებმა Steam-ში ტოტიდან ისევ უნდა გამოვიდნენ, რომ ჩვეულებრივ სერვერს დაუბრუნდნენ, და Steam მერე გამოშვებულ build-ს ჩამოტვირთავს.

განახლებების დაგეგმვა ჯგუფისთვის#

Valheim-ის განახლების ფასი ჩამოტვირთვა არ არის, ის ერთ წუთს გრძელდება. ფასი ის ნახევარი საათია, როცა ჯგუფი სათამაშოდ სხდება და ვერავინ შედის. ცოტაოდენი რუტინა ამას აქრობს.

  • განაახლე ჩართვისას და არა სესიის შუაში. ვანილურ სერვერზე განახლება ყოველ ჩართვაზე გაუშვი და ყოველდღიური გადატვირთვა დაგეგმე იმ საათზე, როცა არავინ თამაშობს. პატჩის დღე მაშინ ღამით თავისით გამოსწორდება.
  • იცოდე, როდის გამოდის პატჩები. Iron Gate განახლებებს Steam-ზე და საკუთარ არხებზე აცხადებს. თუ ის მაშინ გამოვიდა, როცა ხალხი ონლაინაა, სუფთა გადატვირთვა განახლებით რამდენიმე წუთს წაიღებს; წინასწარ გამოაცხადე.
  • ერთი ადამიანი დანიშნე პასუხისმგებლად. ჯგუფში ვიღაც ყოველი პატჩის შემდეგ ამოწმებს, რომ სერვერის ვერსიის ხაზი თამაშს ემთხვევა. მოდებიან სერვერზე იგივე ადამიანი წყვეტს, როდის განახლდეს.
  • კლიენტზე Steam გადატვირთე. მოთამაშეს, რომელიც სერვერის განახლების შემდეგაც იღებს "Incompatible version"-ს, ძველი თამაში აქვს; Steam-ის გადატვირთვა ჩვეულებრივ ჩამოტვირთვას იწყებს.

როგორ ხდება განახლება პანელიან ჰოსტინგზე, განსხვავდება. ბევრი პანელი SteamCMD-ს სერვერის ყოველ ჩართვაზე უშვებს, ასე რომ, გადატვირთვა განახლებაა; სხვებს ამისთვის გაშვების ცვლადებს შორის გადამრთველი აქვთ. RE:NODE-ზე Startup ჩანართი აჩვენებს ცვლადებს, რომლებითაც სერვერი ირთვება, Restart ღილაკი სუფთა გაჩერებას აგზავნის, რომ სამყარო ჯერ შეინახოს, ხოლო Schedules ჩანართს შეუძლია ფიქსირებულ საათზე ჯერ backup გააკეთოს და მერე გადატვირთვა. ვანილური ჯგუფისთვის ეს მთელი განახლების რუტინაა; მოდებიანისთვის დარწმუნდი, რომ ამ განრიგში არაფერი ჩამოტვირთავს თამაშის ახალ build-ს, სანამ შენი მოდები მზად იქნება. გონივრული დროების მაგალითებია პოსტში გადატვირთვის განრიგები, რომლებიც ეხმარება.

განახლებები და სამყაროს ფაილი#

ზოგ განახლებასთან ერთად სამყაროს ფორმატი იცვლება. Valheim ძველ სამყაროს გარდაქმნის, როცა ახალი build მას ტვირთავს, და ახალ ფორმატში ინახავს. ამას ორი შედეგი აქვს, რომელიც უნდა იცოდე:

  • ამ სამყაროსთვის უკან გზა აღარ არის. როგორც კი ახალი build მას შეინახავს, ძველმა build-მა შეიძლება მისი ჩატვირთვა უარყოს. შენი განახლებამდელი backup ერთადერთი ასლია, რომელსაც ძველი ვერსია წაიკითხავს.
  • დიდი განახლების შემდეგ პირველი ჩართვა უფრო ნელია. დიდ სამყაროზე გარდაქმნას და ახალ შენახვას ჩვეულებრივ ჩართვაზე შესამჩნევად მეტი დრო შეიძლება დასჭირდეს. პროცესს ნუ მოკლავ იმის გამო, რომ კონსოლი ჩუმადაა; აცალე დასრულება და შენახვა.

კარგი ჩვევაა ხელით გაკეთებული backup ყოველი განახლების წინ, მონიშნული იმ ვერსიით, რომელზეც გაკეთდა. თამაშის სერვერის განახლების დღის ჩამონათვალი Valheim-ისთვის ისე მუშაობს, როგორც არის.

FAQ#

რატომ წერს Valheim Incompatible version-ს, როცა არაფერი შეცვლილა?

რაღაც მაინც შეიცვალა - თამაშის პატჩი მოთამაშეებამდე სერვერზე ადრე მივიდა. შეადარე მთავარ მენიუში ნაჩვენები ვერსია სერვერის ლოგში Valheim version ხაზს და განაახლე ის მხარე, რომელიც ჩამორჩება.

ყოველი hotfix-ისთვის უნდა განვაახლო სერვერი?

ჩათვალე, რომ კი. ზოგი პატარა hotfix ქსელის ვერსიას ინარჩუნებს და თავსებადი რჩება, მაგრამ წინასწარ ვერ გაიგებ, რომელი, ვანილურ სერვერზე კი განახლება ერთი გადატვირთვა ღირს.

შემიძლია Steam-ს თამაშის განახლება ავუკრძალო, რომ ჩემი ჯგუფი ძველ ვერსიაზე დარჩეს?

საიმედოდ - არა. Steam განახლებებს ჩართვისას აგზავნის, გამოშვების ტოტი კი ძველ build-ებს არ გთავაზობს. ჯგუფები, რომლებსაც გაყინული ვერსია სჭირდებათ, პლატფორმას ებრძვიან; უფრო ადვილია მოდებს დაელოდო და ერთად განაახლო.

შლის validate ჩემს სამყაროს?

არა. ის მხოლოდ ინსტალაციის საქაღალდის ფაილებს ადარებს Steam-ის manifest-ს. სამყაროები შენახვის საქაღალდეშია, ინსტალაციის გარეთ, თუ -savedir მის შიგნით არ მიუთითე - რაც კარგი მიზეზია, რომ ასე არ გააკეთო.

რატომ ვეღარ უერთდება ჩემი Xbox-ელი მეგობარი სერვერის განახლების შემდეგ?

Xbox-ისა და Microsoft Store-ის build-ები პატჩებს ზოგჯერ Steam-ზე გვიან იღებენ. სანამ მათი არ მოვა, ისინი ძველ ვერსიაზე არიან და განახლებული სერვერი მათ უარყოფს. ჩვეულებრივ ერთი დღის ლოდინი შველის.

რამდენ ხანს გრძელდება Valheim სერვერის განახლება?

ჩამოტვირთვა ჩვეულებრივ ერთ-ორ წუთს გრძელდება. დაამატე სუფთა გაჩერება, ჩართვა და სამყაროს ჩატვირთვა და ხუთი წუთი დაგეგმე - დიდი შინაარსობრივი განახლების შემდეგ პირველ ჩართვაზე მეტიც.