Jak skompilować własnego klienta RustDesk na systemie Debian 12 (Kompletny Przewodnik 2025)

Ten przewodnik krok po kroku pokaże, jak stworzyć własnego, niestandardowego klienta RustDesk, skonfigurowanego do łączenia się z Twoim prywatnym serwerem. Instrukcja jest przeznaczona dla czystego systemu Debian 12 i uwzględnia wszystkie znane problemy oraz ich rozwiązania.

Część 1: Przygotowanie Twojego Serwera

Zanim zaczniemy kompilować klienta, upewnij się, że Twój serwer jest gotowy.

Co potrzebujesz?

  • Serwer z publicznym adresem IP lub skonfigurowaną domeną.

  • Uruchomione usługi RustDesk Server: Na serwerze muszą działać dwa programy: hbbs (serwer ID) i hbbr (serwer przekazujący).

  • Otwarte porty sieciowe: Upewnij się, że na zaporze sieciowej (firewallu) Twojego serwera otwarte są porty TCP (21115-21119) oraz UDP (21116).

  • Klucz publiczny: Po pierwszym uruchomieniu hbbs tworzy plik id_ed25519.pub. Skopiuj jego zawartość – będzie to Twój „sekretny składnik” do skonfigurowania klienta.

Część 2: Konfiguracja Środowiska Deweloperskiego na Debianie 12

Teraz przygotujemy Twoją stację roboczą (komputer z Debianem 12) do kompilacji.

Krok 2.1: Aktualizacja Systemu

Co robimy? Zapewniamy, że nasz system ma najnowsze listy pakietów i aktualizacje bezpieczeństwa.
Dlaczego? Jest to podstawowa dobra praktyka, która zapobiega problemom z instalacją starych lub niekompatybilnych wersji oprogramowania.

sudo apt-get update
sudo apt-get upgrade -y

Co robimy? Instalujemy język programowania Rust wraz z jego menedżerem pakietów cargo.
Dlaczego? RustDesk jest napisany w języku Rust, więc potrzebujemy jego oficjalnych narzędzi do zbudowania programu z kodu źródłowego.


curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Postępuj zgodnie z instrukcjami na ekranie (zazwyczaj wystarczy wcisnąć Enter, aby wybrać opcję domyślną). Po instalacji aktywuj Rusta w bieżącym terminalu:

Generated bash

source "$HOME/.cargo/env"

Krok 2.3: Instalacja Zależności Systemowych

Co robimy? Instalujemy wszystkie biblioteki deweloperskie, których RustDesk potrzebuje do kompilacji.
Dlaczego? RustDesk do działania potrzebuje wielu elementów systemu: do rysowania okien (GTK), do obsługi dźwięku (Opus, PulseAudio), do przechwytywania obrazu (X11, RandR) i wielu innych. Poniższa komenda instaluje wszystkie te „klocki” naraz.

Generated bash

sudo apt-get install -y build-essential git pkg-config curl libgtk-3-dev libayatana-appindicator3-dev libdbus-1-dev libglib2.0-dev libvdpau-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev libclang-dev libpam0g-dev libyuv-dev libopus-dev libxcb-randr0-dev

Krok 2.4: Obejście Problemu z scrap (Instalacja vcpkg)

Co robimy? Instalujemy menedżer pakietów C++ od Microsoftu (vcpkg) i używamy go do zainstalowania jednej, kluczowej biblioteki (libyuv).
Dlaczego? To jest najważniejszy krok, który wynika z naszego śledztwa. Okazuje się, że skrypt budujący moduł do przechwytywania obrazu (scrap) w RustDesk jest wadliwy i na nowoczesnych systemach Linux nie potrafi znaleźć biblioteki libyuv standardowymi metodami. Zamiast tego „płacze” o vcpkg. Dajemy mu więc to, czego chce.

  1. Zainstaluj zależności dla vcpkg:

    Generated bash

    sudo apt-get install -y tar
  2. Pobierz i zainstaluj vcpkg:

    Generated bash

    git clone https://github.com/microsoft/vcpkg.git ~/vcpkg
    ~/vcpkg/bootstrap-vcpkg.sh
    ```3.  **Zainstaluj `libyuv` za pomocą vcpkg (z katalogu domowego!):**
    ```bash
    cd ~
    ~/vcpkg/vcpkg install libyuv

Część 3: Pobranie Kodu Źródłowego RustDesk

Co robimy? Pobieramy kod programu RustDesk z jego oficjalnego repozytorium.
Dlaczego? Potrzebujemy „przepisu” (kodu), aby móc „upiec ciasto” (program).

  1. Pobierz kod wraz z submodułami:

    Generated bash

    git clone --recursive https://github.com/rustdesk/rustdesk.git

    Flaga –recursive jest kluczowa – pobiera ona również mniejsze, zależne projekty (jak hbb_common), których RustDesk potrzebuje.

  2. Wejdź do katalogu projektu:

    Generated bash

    cd rustdesk

Część 4: Finałowa Kompilacja

Jesteśmy gotowi. Wszystko jest na swoim miejscu. Teraz składamy to w całość.

Co robimy? Uruchamiamy kompilację, podając wszystkie niezbędne informacje w jednej, „pancernej” komendzie.
Dlaczego? Przekazujemy kompilatorowi wszystkie zmienne, których potrzebuje:

  • VCPKG_ROOT: Wskazuje drogę do vcpkg, aby naprawić błąd z przechwytywaniem obrazu.

  • OPUS_LIB_DIR: Podaje ścieżkę do biblioteki dźwięku, na wszelki wypadek.

  • RENDEZVOUS_SERVER: Adres Twojego serwera.

  • RS_PUB_KEY: Twój unikalny klucz publiczny.

Pamiętaj, aby zastąpić wartości twoj.adres.ip.serwera i twoj_klucz_publiczny.

Generated bash

VCPKG_ROOT=$HOME/vcpkg \
OPUS_LIB_DIR=/usr/lib/x86_64-linux-gnu \
RENDEZVOUS_SERVER=twoj.adres.ip.serwera \
RS_PUB_KEY=twoj_klucz_publiczny \
cargo build --release

Po kilku minutach powinieneś zobaczyć zielony komunikat: Finished release [optimized] target(s) in ….

Gratulacje! Twój własny klient RustDesk jest gotowy!

Znajdziesz go w katalogu: ~/rustdesk/target/release/rustdesk

Część 5: (Opcjonalnie) Kompilacja Klienta dla Windows

Jeśli potrzebujesz również wersji dla Windows, możesz ją stworzyć bezpośrednio na swoim Debianie.

  1. Zainstaluj narzędzia do kompilacji dla Windows:

    Generated bash

    sudo apt-get install -y mingw-w64
  2. Dodaj cel „Windows” do Rusta:

    Generated bash

    rustup target add x86_64-pc-windows-gnu
  3. Skonfiguruj Cargo:

    Generated bash

    mkdir -p ~/.cargo
    cat <<'EOF' > ~/.cargo/config
    [target.x86_64-pc-windows-gnu]
    linker = "x86_64-w64-mingw32-gcc"
    ar = "x86_64-w64-mingw32-ar"
    EOF
  4. Skompiluj wersję dla Windows: (Pamiętaj o swoich danych serwera i klucza)

    Generated bash

    cd ~/rustdesk
    VCPKG_ROOT=$HOME/vcpkg \
    OPUS_LIB_DIR=/usr/lib/x86_64-linux-gnu \
    RENDEZVOUS_SERVER=twoj.adres.ip.serwera \
    RS_PUB_KEY=twoj_klucz_publiczny \
    cargo build --release --target=x86_64-pc-windows-gnu

Gotowy plik rustdesk.exe znajdziesz w: ~/rustdesk/target/x86_64-pc-windows-gnu/release/rustdesk.exe

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.