mirror of
https://github.com/rustdesk/doc.rustdesk.com.git
synced 2026-06-15 21:20:54 +00:00
full translation
This commit is contained in:
@@ -3,4 +3,120 @@ title: macOS
|
||||
weight: 21
|
||||
---
|
||||
|
||||
[English](/docs/en/dev/build/osx)
|
||||
Ci sono diversi modi per farlo, questa guida presuppone che `Xcode`, `Git` e `Homebrew` siano già installati.
|
||||
|
||||
La sfida più grande è probabilmente trovare le versioni di tutti gli strumenti che funzionano insieme, specialmente dato che parti della toolchain come Xcode e LLVM sono dettate dalla tua versione di macOS. Le versioni utilizzate in questa guida probabilmente non sono quelle che dovresti utilizzare. Come punto di partenza per capire quali versioni utilizzare, guarda il [workflow di build di GitHub](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) per la versione di RustDesk che vuoi compilare. Scegli il tag per vedere il file nell'angolo in alto a sinistra della pagina. Ma questo potrebbe non funzionare necessariamente perché gli strumenti macOS forniti con il runner di GitHub potrebbero non essere le stesse versioni di quelle sul tuo sistema locale.
|
||||
|
||||
#### Export
|
||||
`export` viene utilizzato per impostare varie variabili ambientali. Quando esegui `export`, quella variabile viene impostata solo per la sessione terminale corrente, e quindi deve essere ripetuta per ogni nuova finestra terminale che vuoi utilizzare per compilare RustDesk, ora o in futuro. Generalmente, è preferibile aggiungere tutti gli `export` a uno script che viene eseguito automaticamente per ogni terminale che viene aperto, ad esempio `~/.bash_profile`. I comandi `export` completi elencati qui possono essere semplicemente aggiunti al file, ma devono anche essere eseguiti nel terminale corrente perché il file non viene letto fino a quando non viene aperto un *nuovo* terminale.
|
||||
|
||||
### Installa gli strumenti che utilizzeremo da Homebrew
|
||||
|
||||
```sh
|
||||
brew install python3 create-dmg nasm cmake gcc wget ninja pkg-config wget rustup
|
||||
```
|
||||
|
||||
Alcune delle installazioni potrebbero fallire perché alcune delle cartelle di destinazione non esistono sul nostro sistema. In quel caso, crea la cartella, imposta proprietario e permessi ed esegui nuovamente il comando `brew`. Esempio se `/usr/local/include` non esiste:
|
||||
```sh
|
||||
sudo mkdir /usr/local/include
|
||||
sudo chown <username>:admin /usr/local/include
|
||||
sudo chmod 775 /usr/local/include
|
||||
```
|
||||
|
||||
### Installa vcpkg
|
||||
Vcpkg viene utilizzato per gestire le dipendenze C/C++ utilizzate da RustDesk. Decidi dove vuoi l'installazione ed esegui quanto segue dalla cartella in cui vuoi che risieda la cartella `vcpkg`. In questo esempio `/Users/<username>/repos/` viene utilizzato come posizione, e il tag `2023.04.15` viene utilizzato come versione.
|
||||
|
||||
```sh
|
||||
git clone https://github.com/microsoft/vcpkg
|
||||
cd vcpkg
|
||||
git checkout 2023.04.15
|
||||
./bootstrap-vcpkg.sh -disableMetrics
|
||||
./vcpkg install libvpx libyuv opus aom
|
||||
export VCPKG_ROOT=~/repos/vcpkg
|
||||
```
|
||||
|
||||
### Installa e configura Rust
|
||||
Utilizziamo `rustup` per gestire Rust, che è già stato installato sopra utilizzando Homebrew. Ma deve ancora essere configurato. Segui le istruzioni e assicurati che sia `rustup` che `rustc` siano nel `PATH`. In questo esempio utilizziamo la versione di Rust `1.75.0`, ma potresti dover utilizzare una versione diversa. Puoi installare e gestire più versioni di Rust con `rustup`.
|
||||
|
||||
```sh
|
||||
rustup-init
|
||||
rustup default 1.75.0
|
||||
rustup component add rustfmt
|
||||
```
|
||||
Per una panoramica delle toolchain Rust installate e predefinite, esegui `rustup show`.
|
||||
|
||||
### Scarica i file sorgente di RustDesk
|
||||
|
||||
Decidi dove vuoi i file sorgente di RustDesk ed esegui quanto segue dalla cartella in cui vuoi che risieda la cartella `rustdesk`. In questo esempio `/Users/<username>/repos/` viene utilizzato come posizione.
|
||||
|
||||
```sh
|
||||
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
|
||||
cd rustdesk/libs/portable/
|
||||
python3 -m pip install --upgrade pip
|
||||
pip3 install -r requirements.txt
|
||||
```
|
||||
|
||||
Se `python3` o `pip` sono sconosciuti, aggiungili al `PATH` con qualcosa come (usa i nomi delle tue cartelle effettive):
|
||||
```sh
|
||||
export PATH=~/Library/Python/3.9/bin:$PATH
|
||||
```
|
||||
Una volta fatto, esegui nuovamente i comandi falliti. Ricorda anche di modificare `~/.bash_profile`.
|
||||
|
||||
### Installa i componenti dell'interfaccia utente
|
||||
RustDesk può essere compilato utilizzando sia [Sciter](https://sciter.com/) che [Flutter](https://flutter.dev/). Entrambi necessitano di componenti aggiuntivi, quindi segui i passaggi per la versione pertinente, o entrambe.
|
||||
|
||||
#### Sciter
|
||||
|
||||
Dalla cartella `rustdesk`, esegui:
|
||||
```sh
|
||||
wget https://github.com/c-smile/sciter-sdk/raw/master/bin.osx/libsciter.dylib
|
||||
```
|
||||
|
||||
#### Flutter
|
||||
|
||||
[FVM](https://fvm.app/) ti consente di gestire quale versione di Flutter viene utilizzata, ed è probabilmente il modo più semplice per poter facilmente provare diverse versioni di Flutter.
|
||||
|
||||
```sh
|
||||
brew tap leoafarias/fvm
|
||||
brew install fvm cocoapods
|
||||
```
|
||||
Installa e usa, ad esempio Flutter `3.16.9`, con:
|
||||
|
||||
```sh
|
||||
fvm global 3.16.9
|
||||
```
|
||||
FVM è pensato per utilizzare una configurazione più complessa dove può fornire diverse versioni di Flutter per progetti diversi, ma questo va oltre lo scopo di questa guida. Invece, aggiungi semplicemente la posizione del Flutter predefinito fornito da FVM al tuo `PATH` manualmente, il che significa che devi utilizzare `fvm global` per cambiare versione di Flutter:
|
||||
|
||||
```sh
|
||||
export PATH=$HOME/fvm/default/bin:$PATH
|
||||
```
|
||||
|
||||
Una volta fatto, dovresti disabilitare la telemetria e controllare se tutto è OK:
|
||||
|
||||
```sh
|
||||
flutter --disable-analytics
|
||||
dart --disable-analytics
|
||||
flutter doctor -v
|
||||
```
|
||||
Non importa se alcuni dei controlli falliscono, di solito lo fanno, quello che è importante è che il controllo per l'ambiente che intendi utilizzare sia OK, ovvero `Xcode`. Se vengono segnalati problemi, affrontali prima di andare avanti.
|
||||
|
||||
Una volta che Flutter è attivo e funzionante, è il momento di installare il "bridge" che lega insieme Rust e Flutter. Ecco un'altra delle versioni che devono funzionare insieme a tutto il resto, in questo esempio utilizziamo `1.80.1`:
|
||||
|
||||
```sh
|
||||
cargo install flutter_rust_bridge_codegen --version "1.80.1" --features "uuid"
|
||||
```
|
||||
|
||||
### Build
|
||||
|
||||
Compila dalla cartella `rustdesk`. Compila la versione Sciter con:
|
||||
|
||||
```sh
|
||||
python3 ./build.py
|
||||
```
|
||||
|
||||
Compila la versione Flutter con:
|
||||
```sh
|
||||
flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart --c-output ./flutter/macos/Runner/bridge_generated.h
|
||||
python3 ./build.py --flutter
|
||||
```
|
||||
Se tutto va bene, ora dovresti avere un file `dmg` pronto per l'installazione nella tua cartella `rustdesk`.
|
||||
@@ -3,4 +3,120 @@ title: macOS
|
||||
weight: 21
|
||||
---
|
||||
|
||||
[English](/docs/en/dev/build/osx)
|
||||
これを行う方法は複数ありますが、このガイドでは `Xcode`、`Git`、`Homebrew` が既にインストールされていることを前提としています。
|
||||
|
||||
最大の課題は、特に Xcode や LLVM などのツールチェーンの一部が macOS バージョンによって決まるため、すべてのツールが連携して動作するバージョンを見つけることです。このガイドで使用されているバージョンは、あなたが使用すべきバージョンではない可能性があります。使用するバージョンを決定する開始点として、ビルドしたい RustDesk バージョンの [GitHub ビルドワークフロー](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) を参照してください。ページの左上でファイルを表示するタグを選択してください。ただし、GitHub ランナーに付属する macOS ツールが、ローカルシステムのものと同じバージョンでない可能性があるため、これが必ずしも機能するとは限りません。
|
||||
|
||||
#### Export
|
||||
`export` は様々な環境変数を設定するために使用されます。`export` を実行すると、その変数は現在のターミナルセッションのみに設定され、現在または将来 RustDesk をビルドするために使用したい新しいターミナルウィンドウごとに繰り返す必要があります。一般的には、すべての `export` を、開かれるすべてのターミナルに対して自動的に実行されるスクリプト(例:`~/.bash_profile`)に追加することが望ましいです。ここに記載されている完全な `export` コマンドは、単純にファイルに追加できますが、ファイルは *新しい* ターミナルが開かれるまで読み込まれないため、現在のターミナルでも実行する必要があります。
|
||||
|
||||
### Homebrew から使用するツールをインストールする
|
||||
|
||||
```sh
|
||||
brew install python3 create-dmg nasm cmake gcc wget ninja pkg-config wget rustup
|
||||
```
|
||||
|
||||
対象フォルダがシステムに存在しないため、一部のインストールが失敗する場合があります。その場合は、フォルダを作成し、所有者と権限を設定して、`brew` コマンドを再度実行してください。例えば、`/usr/local/include` が存在しない場合:
|
||||
```sh
|
||||
sudo mkdir /usr/local/include
|
||||
sudo chown <username>:admin /usr/local/include
|
||||
sudo chmod 775 /usr/local/include
|
||||
```
|
||||
|
||||
### vcpkg をインストールする
|
||||
Vcpkg は RustDesk が使用する C/C++ 依存関係を管理するために使用されます。インストール場所を決定し、`vcpkg` フォルダを配置したいフォルダから以下を実行してください。この例では、場所として `/Users/<username>/repos/` を使用し、バージョンとしてタグ `2023.04.15` を使用しています。
|
||||
|
||||
```sh
|
||||
git clone https://github.com/microsoft/vcpkg
|
||||
cd vcpkg
|
||||
git checkout 2023.04.15
|
||||
./bootstrap-vcpkg.sh -disableMetrics
|
||||
./vcpkg install libvpx libyuv opus aom
|
||||
export VCPKG_ROOT=~/repos/vcpkg
|
||||
```
|
||||
|
||||
### Rust をインストールして設定する
|
||||
Rust の管理には `rustup` を使用しますが、これは上記で Homebrew を使用して既にインストールされています。ただし、まだ設定が必要です。指示に従い、`rustup` と `rustc` の両方が `PATH` にあることを確認してください。この例では Rust バージョン `1.75.0` を使用していますが、異なるバージョンを使用する必要がある場合があります。`rustup` を使用して複数のバージョンの Rust をインストールして管理できます。
|
||||
|
||||
```sh
|
||||
rustup-init
|
||||
rustup default 1.75.0
|
||||
rustup component add rustfmt
|
||||
```
|
||||
インストールされたデフォルトの Rust ツールチェーンの概要を確認するには、`rustup show` を実行してください。
|
||||
|
||||
### RustDesk ソースファイルをダウンロードする
|
||||
|
||||
RustDesk ソースファイルを配置する場所を決定し、`rustdesk` フォルダを配置したいフォルダから以下を実行してください。この例では、場所として `/Users/<username>/repos/` を使用しています。
|
||||
|
||||
```sh
|
||||
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
|
||||
cd rustdesk/libs/portable/
|
||||
python3 -m pip install --upgrade pip
|
||||
pip3 install -r requirements.txt
|
||||
```
|
||||
|
||||
`python3` または `pip` が不明な場合は、以下のようにして `PATH` に追加してください(実際のフォルダ名を使用してください):
|
||||
```sh
|
||||
export PATH=~/Library/Python/3.9/bin:$PATH
|
||||
```
|
||||
それが完了したら、失敗したコマンドを再度実行してください。`~/.bash_profile` も編集することを忘れないでください。
|
||||
|
||||
### ユーザーインターフェイスコンポーネントをインストールする
|
||||
RustDesk は [Sciter](https://sciter.com/) と [Flutter](https://flutter.dev/) の両方を使用してビルドできます。これらの両方には追加のコンポーネントが必要なので、関連するバージョンまたは両方の手順に従ってください。
|
||||
|
||||
#### Sciter
|
||||
|
||||
`rustdesk` フォルダから実行してください:
|
||||
```sh
|
||||
wget https://github.com/c-smile/sciter-sdk/raw/master/bin.osx/libsciter.dylib
|
||||
```
|
||||
|
||||
#### Flutter
|
||||
|
||||
[FVM](https://fvm.app/) を使用すると、使用する Flutter のバージョンを管理でき、異なる Flutter バージョンを簡単に試すための最も簡単な方法です。
|
||||
|
||||
```sh
|
||||
brew tap leoafarias/fvm
|
||||
brew install fvm cocoapods
|
||||
```
|
||||
例えば Flutter `3.16.9` をインストールして使用するには:
|
||||
|
||||
```sh
|
||||
fvm global 3.16.9
|
||||
```
|
||||
FVM は、異なるプロジェクトに異なる Flutter バージョンを提供できるより複雑な設定を使用することを意図していますが、それはこのガイドの範囲を超えています。代わりに、FVM によって提供されるデフォルトの Flutter の場所を手動で `PATH` に追加するだけで、Flutter バージョンを切り替えるために `fvm global` を使用する必要があります:
|
||||
|
||||
```sh
|
||||
export PATH=$HOME/fvm/default/bin:$PATH
|
||||
```
|
||||
|
||||
それが完了したら、テレメトリを無効にし、すべてが正常かどうかを確認する必要があります:
|
||||
|
||||
```sh
|
||||
flutter --disable-analytics
|
||||
dart --disable-analytics
|
||||
flutter doctor -v
|
||||
```
|
||||
一部のチェックが失敗しても問題ありません。通常は失敗します。重要なのは、使用を意図している環境、つまり `Xcode` のチェックが正常であることです。問題が報告された場合は、先に進む前にそれらに対処してください。
|
||||
|
||||
Flutter が起動して実行されたら、Rust と Flutter を結びつける「ブリッジ」をインストールする時です。これは、他のすべてと連携して動作する必要があるバージョンのもう1つです。この例では `1.80.1` を使用します:
|
||||
|
||||
```sh
|
||||
cargo install flutter_rust_bridge_codegen --version "1.80.1" --features "uuid"
|
||||
```
|
||||
|
||||
### ビルド
|
||||
|
||||
`rustdesk` フォルダからビルドしてください。Sciter バージョンをビルドするには:
|
||||
|
||||
```sh
|
||||
python3 ./build.py
|
||||
```
|
||||
|
||||
Flutter バージョンをビルドするには:
|
||||
```sh
|
||||
flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart --c-output ./flutter/macos/Runner/bridge_generated.h
|
||||
python3 ./build.py --flutter
|
||||
```
|
||||
すべてがうまくいけば、`rustdesk` フォルダにインストール準備完了の `dmg` ファイルができているはずです。
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
title: macOS
|
||||
weight: 21
|
||||
---
|
||||
|
||||
```
|
||||
cd
|
||||
git clone https://github.com/microsoft/vcpkg
|
||||
cd vcpkg
|
||||
git checkout 2023.04.15
|
||||
./bootstrap-vcpkg.sh
|
||||
brew install nasm yasm
|
||||
./vcpkg install libvpx libyuv opus aom
|
||||
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
|
||||
cd rustdesk
|
||||
export VCPKG_ROOT=$HOME/vcpkg
|
||||
wget https://github.com/c-smile/sciter-sdk/raw/master/bin.osx/libsciter.dylib
|
||||
cargo run
|
||||
```
|
||||
@@ -3,4 +3,120 @@ title: macOS
|
||||
weight: 21
|
||||
---
|
||||
|
||||
[English](/docs/en/dev/build/osx)
|
||||
Existem várias maneiras de fazer isso, este guia assume que `Xcode`, `Git` e `Homebrew` já estão instalados.
|
||||
|
||||
O maior desafio é provavelmente encontrar versões de todas as ferramentas que funcionem juntas, especialmente desde que partes da cadeia de ferramentas como Xcode e LLVM são ditadas pela sua versão do macOS. As versões usadas neste guia provavelmente não são as que você deve usar. Como ponto de partida para descobrir quais versões usar, consulte o [workflow de compilação do GitHub](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) para a versão RustDesk que você quer compilar. Escolha a tag para ver o arquivo no canto superior esquerdo da página. Mas isso não necessariamente funcionará porque as ferramentas do macOS que vêm com o runner do GitHub podem não ser as mesmas versões que as do seu sistema local.
|
||||
|
||||
#### Export
|
||||
`export` é usado para definir várias variáveis ambientais. Quando você executa `export`, essa variável é definida apenas para a sessão atual do terminal, e essas devem ser repetidas para cada nova janela do terminal que você quiser usar para compilar RustDesk, agora ou no futuro. Geralmente, é preferível adicionar todos os `export`s a um script que é executado automaticamente para cada terminal que é aberto, por exemplo `~/.bash_profile`. Os comandos `export` completos listados aqui podem simplesmente ser anexados ao arquivo, mas também devem ser executados no terminal atual porque o arquivo não é lido até que um *novo* terminal seja aberto.
|
||||
|
||||
### Instalar as ferramentas que vamos usar do Homebrew
|
||||
|
||||
```sh
|
||||
brew install python3 create-dmg nasm cmake gcc wget ninja pkg-config wget rustup
|
||||
```
|
||||
|
||||
Algumas das instalações podem falhar porque algumas das pastas de destino não existem no nosso sistema. Nesse caso, crie a pasta, defina o proprietário e permissões e execute o comando `brew` novamente. Exemplo se `/usr/local/include` não existir:
|
||||
```sh
|
||||
sudo mkdir /usr/local/include
|
||||
sudo chown <nome_usuario>:admin /usr/local/include
|
||||
sudo chmod 775 /usr/local/include
|
||||
```
|
||||
|
||||
### Instalar vcpkg
|
||||
Vcpkg é usado para gerenciar as dependências C/C++ usadas pelo RustDesk. Decida onde você quer a instalação e execute o seguinte da pasta na qual você quer que a pasta `vcpkg` resida. Neste exemplo `/Users/<nome_usuario>/repos/` é usado como localização, e a tag `2023.04.15` é usada como versão.
|
||||
|
||||
```sh
|
||||
git clone https://github.com/microsoft/vcpkg
|
||||
cd vcpkg
|
||||
git checkout 2023.04.15
|
||||
./bootstrap-vcpkg.sh -disableMetrics
|
||||
./vcpkg install libvpx libyuv opus aom
|
||||
export VCPKG_ROOT=~/repos/vcpkg
|
||||
```
|
||||
|
||||
### Instalar e configurar Rust
|
||||
Usamos `rustup` para gerenciar o Rust, que já foi instalado acima usando Homebrew. Mas, ainda precisa ser configurado. Siga as instruções e certifique-se de que tanto `rustup` quanto `rustc` estão no `PATH`. Neste exemplo usamos a versão `1.75.0` do Rust, mas você pode precisar usar uma versão diferente. Você pode instalar e gerenciar múltiplas versões do Rust com `rustup`.
|
||||
|
||||
```sh
|
||||
rustup-init
|
||||
rustup default 1.75.0
|
||||
rustup component add rustfmt
|
||||
```
|
||||
Para uma visão geral sobre as cadeias de ferramentas Rust instaladas e padrão, execute `rustup show`.
|
||||
|
||||
### Baixar os arquivos fonte do RustDesk
|
||||
|
||||
Decida onde você quer os arquivos fonte do RustDesk e execute o seguinte da pasta na qual você quer que a pasta `rustdesk` resida. Neste exemplo `/Users/<nome_usuario>/repos/` é usado como localização.
|
||||
|
||||
```sh
|
||||
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
|
||||
cd rustdesk/libs/portable/
|
||||
python3 -m pip install --upgrade pip
|
||||
pip3 install -r requirements.txt
|
||||
```
|
||||
|
||||
Se `python3` ou `pip` for desconhecido, adicione-os ao `PATH` com algo como (use seus nomes de pasta reais):
|
||||
```sh
|
||||
export PATH=~/Library/Python/3.9/bin:$PATH
|
||||
```
|
||||
Uma vez feito isso, execute o(s) comando(s) falhado(s) novamente. Lembre-se de também editar `~/.bash_profile`.
|
||||
|
||||
### Instalar componentes da interface do usuário
|
||||
RustDesk pode ser compilado usando tanto [Sciter](https://sciter.com/) quanto [Flutter](https://flutter.dev/). Ambos precisam de componentes adicionais, então siga os passos para a versão relevante, ou ambos.
|
||||
|
||||
#### Sciter
|
||||
|
||||
Da pasta `rustdesk`, execute:
|
||||
```sh
|
||||
wget https://github.com/c-smile/sciter-sdk/raw/master/bin.osx/libsciter.dylib
|
||||
```
|
||||
|
||||
#### Flutter
|
||||
|
||||
[FVM](https://fvm.app/) permite gerenciar qual versão do Flutter é usada, e é provavelmente a maneira mais fácil de poder facilmente testar diferentes versões do Flutter.
|
||||
|
||||
```sh
|
||||
brew tap leoafarias/fvm
|
||||
brew install fvm cocoapods
|
||||
```
|
||||
Instale e use, por exemplo Flutter `3.16.9`, com:
|
||||
|
||||
```sh
|
||||
fvm global 3.16.9
|
||||
```
|
||||
FVM é destinado a usar uma configuração mais complexa onde pode fornecer diferentes versões do Flutter para diferentes projetos, mas isso está além do escopo deste guia. Em vez disso, simplesmente adicione a localização do Flutter padrão fornecido pelo FVM ao seu `PATH` manualmente, o que significa que você deve usar `fvm global` para trocar a versão do Flutter:
|
||||
|
||||
```sh
|
||||
export PATH=$HOME/fvm/default/bin:$PATH
|
||||
```
|
||||
|
||||
Uma vez feito isso, você deve desabilitar a telemetria e verificar se tudo está OK:
|
||||
|
||||
```sh
|
||||
flutter --disable-analytics
|
||||
dart --disable-analytics
|
||||
flutter doctor -v
|
||||
```
|
||||
Não importa se algumas das verificações falharem, elas geralmente falharão, o que é importante é que a verificação para o ambiente que você pretende usar esteja OK, nomeadamente `Xcode`. Se houver problemas relatados, resolva-os antes de prosseguir.
|
||||
|
||||
Uma vez que o Flutter esteja funcionando, é hora de instalar a "ponte" que liga Rust e Flutter juntos. Aqui está outra das versões que devem funcionar juntas com todo o resto, neste exemplo usamos `1.80.1`:
|
||||
|
||||
```sh
|
||||
cargo install flutter_rust_bridge_codegen --version "1.80.1" --features "uuid"
|
||||
```
|
||||
|
||||
### Compilar
|
||||
|
||||
Compile da pasta `rustdesk`. Compile a versão Sciter com:
|
||||
|
||||
```sh
|
||||
python3 ./build.py
|
||||
```
|
||||
|
||||
Compile a versão Flutter com:
|
||||
```sh
|
||||
flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart --c-output ./flutter/macos/Runner/bridge_generated.h
|
||||
python3 ./build.py --flutter
|
||||
```
|
||||
Se tudo correr bem, você deve agora ter um arquivo `dmg` pronto para instalar na sua pasta `rustdesk`.
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
title: macOS
|
||||
weight: 21
|
||||
---
|
||||
|
||||
[English](/docs/en/dev/build/osx)
|
||||
@@ -3,4 +3,120 @@ title: macOS
|
||||
weight: 21
|
||||
---
|
||||
|
||||
[English](/docs/en/dev/build/osx)
|
||||
有多种方式可以完成这项工作,本指南假设您已经安装了 `Xcode`、`Git` 和 `Homebrew`。
|
||||
|
||||
最大的挑战可能是找到所有能够协同工作的工具版本,特别是因为工具链的某些部分(如 Xcode 和 LLVM)由您的 macOS 版本决定。本指南中使用的版本可能不是您应该使用的版本。确定使用什么版本的起点是查看您想要构建的 RustDesk 版本的 [GitHub 构建工作流](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml)。在页面左上角选择要查看文件的标签。但这可能不一定有效,因为 GitHub 运行器附带的 macOS 工具可能与您本地系统上的版本不同。
|
||||
|
||||
#### Export
|
||||
`export` 用于设置各种环境变量。当您运行 `export` 时,该变量仅为当前终端会话设置,因此必须在每个新的终端窗口中重复这些设置,无论是现在还是将来想要构建 RustDesk 时。通常,最好将所有 `export` 添加到为每个打开的终端自动执行的脚本中,例如 `~/.bash_profile`。这里列出的完整 `export` 命令可以简单地追加到文件中,但也必须在当前终端中运行,因为文件在打开*新*终端之前不会被读取。
|
||||
|
||||
### 从 Homebrew 安装我们要使用的工具
|
||||
|
||||
```sh
|
||||
brew install python3 create-dmg nasm cmake gcc wget ninja pkg-config wget rustup
|
||||
```
|
||||
|
||||
某些安装可能会失败,因为我们的系统上不存在某些目标文件夹。在这种情况下,创建文件夹,设置所有者和权限,然后再次运行 `brew` 命令。例如,如果 `/usr/local/include` 不存在:
|
||||
```sh
|
||||
sudo mkdir /usr/local/include
|
||||
sudo chown <username>:admin /usr/local/include
|
||||
sudo chmod 775 /usr/local/include
|
||||
```
|
||||
|
||||
### 安装 vcpkg
|
||||
Vcpkg 用于管理 RustDesk 使用的 C/C++ 依赖项。决定您希望安装的位置,并从您希望 `vcpkg` 文件夹所在的文件夹运行以下命令。在此示例中,使用 `/Users/<username>/repos/` 作为位置,使用标签 `2023.04.15` 作为版本。
|
||||
|
||||
```sh
|
||||
git clone https://github.com/microsoft/vcpkg
|
||||
cd vcpkg
|
||||
git checkout 2023.04.15
|
||||
./bootstrap-vcpkg.sh -disableMetrics
|
||||
./vcpkg install libvpx libyuv opus aom
|
||||
export VCPKG_ROOT=~/repos/vcpkg
|
||||
```
|
||||
|
||||
### 安装和配置 Rust
|
||||
我们使用 `rustup` 来管理 Rust,它已经通过上面的 Homebrew 安装了。但是,它仍然需要配置。按照说明操作,并确保 `rustup` 和 `rustc` 都在 `PATH` 中。在这个示例中我们使用 Rust 版本 `1.75.0`,但您可能需要使用不同的版本。您可以使用 `rustup` 安装和管理多个版本的 Rust。
|
||||
|
||||
```sh
|
||||
rustup-init
|
||||
rustup default 1.75.0
|
||||
rustup component add rustfmt
|
||||
```
|
||||
要查看已安装和默认的 Rust 工具链概述,请运行 `rustup show`。
|
||||
|
||||
### 下载 RustDesk 源文件
|
||||
|
||||
决定您希望 RustDesk 源文件的位置,并从您希望 `rustdesk` 文件夹所在的文件夹运行以下命令。在此示例中,使用 `/Users/<username>/repos/` 作为位置。
|
||||
|
||||
```sh
|
||||
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
|
||||
cd rustdesk/libs/portable/
|
||||
python3 -m pip install --upgrade pip
|
||||
pip3 install -r requirements.txt
|
||||
```
|
||||
|
||||
如果 `python3` 或 `pip` 未知,请使用类似以下的方式将它们添加到 `PATH`(使用您的实际文件夹名称):
|
||||
```sh
|
||||
export PATH=~/Library/Python/3.9/bin:$PATH
|
||||
```
|
||||
完成后,再次运行失败的命令。记住也要编辑 `~/.bash_profile`。
|
||||
|
||||
### 安装用户界面组件
|
||||
RustDesk 可以使用 [Sciter](https://sciter.com/) 和 [Flutter](https://flutter.dev/) 构建。这两者都需要额外的组件,因此请按照相关版本或两者的步骤进行操作。
|
||||
|
||||
#### Sciter
|
||||
|
||||
从 `rustdesk` 文件夹运行:
|
||||
```sh
|
||||
wget https://github.com/c-smile/sciter-sdk/raw/master/bin.osx/libsciter.dylib
|
||||
```
|
||||
|
||||
#### Flutter
|
||||
|
||||
[FVM](https://fvm.app/) 让您管理使用的 Flutter 版本,可能是能够轻松尝试不同 Flutter 版本的最简单方法。
|
||||
|
||||
```sh
|
||||
brew tap leoafarias/fvm
|
||||
brew install fvm cocoapods
|
||||
```
|
||||
例如,安装并使用 Flutter `3.16.9`:
|
||||
|
||||
```sh
|
||||
fvm global 3.16.9
|
||||
```
|
||||
FVM 旨在使用更复杂的设置,为不同项目提供不同的 Flutter 版本,但这超出了本指南的范围。相反,只需手动将 FVM 提供的默认 Flutter 位置添加到您的 `PATH`,这意味着您必须使用 `fvm global` 来切换 Flutter 版本:
|
||||
|
||||
```sh
|
||||
export PATH=$HOME/fvm/default/bin:$PATH
|
||||
```
|
||||
|
||||
完成后,您应该禁用遥测并检查是否一切正常:
|
||||
|
||||
```sh
|
||||
flutter --disable-analytics
|
||||
dart --disable-analytics
|
||||
flutter doctor -v
|
||||
```
|
||||
一些检查失败并不重要,它们通常会失败,重要的是您打算使用的环境(即 `Xcode`)的检查是正常的。如果报告了问题,请在继续之前解决它们。
|
||||
|
||||
Flutter 启动并运行后,就该安装将 Rust 和 Flutter 绑定在一起的"桥接"了。这是另一个需要与其他所有东西协同工作的版本,在这个示例中我们使用 `1.80.1`:
|
||||
|
||||
```sh
|
||||
cargo install flutter_rust_bridge_codegen --version "1.80.1" --features "uuid"
|
||||
```
|
||||
|
||||
### 构建
|
||||
|
||||
从 `rustdesk` 文件夹构建。构建 Sciter 版本:
|
||||
|
||||
```sh
|
||||
python3 ./build.py
|
||||
```
|
||||
|
||||
构建 Flutter 版本:
|
||||
```sh
|
||||
flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart --c-output ./flutter/macos/Runner/bridge_generated.h
|
||||
python3 ./build.py --flutter
|
||||
```
|
||||
如果一切顺利,您现在应该在 `rustdesk` 文件夹中有一个准备安装的 `dmg` 文件。
|
||||
Reference in New Issue
Block a user