2015-08-28 26 views
3

我有一臺能連接互聯網的OS X系統的筆記本電腦,以及一些因安全原因無法訪問互聯網的Linux服務器。如何在離線環境中使用Cargo建立項目?

我想在Linux服務器上建立一些依賴的Rust項目。由於Linux服務器無法訪問互聯網,我在OSX筆記本電腦上運行cargo build命令,並將依賴關係源文件下載到.cargo目錄,然後將這些文件複製到Linux服務器並將它們放入/root/.cargo目錄中。

我使文件結構相同,但是當我在Linux服務器上運行cargo build時,它仍然嘗試連接到this網站,並且構建失敗。雖然dep源文件已經在.cargo目錄中,但cargo build命令總是嘗試連接互聯網。

如何在脫機環境中構建具有依賴關係的Rust項目?爲什麼複製依賴關係的源文件不起作用?

回答

4

簡短的回答是:現在,它很複雜。

長的回答是,cargo將嘗試連接到github以檢查Cargo.toml文件引用的包的索引。

我建議你檢查cargo-vendor原型來解決這個問題(aturon是Rust工具子組的成員),否則你可以看看有些人爲了避免依賴於crates.io而使用created a mirror互聯網。

Rust的構建需要不要求互聯網和其他人的工作,但目前沒有有效的解決方案。

+0

擊敗我* 7秒*。 :P還應該補充一點,提問者的實際問題是*索引*保存在GitHub倉庫中;只是鏡像包自己是不夠的。 –

+0

@DK .:是不是已經包含在我的第二段?如果您認爲它不夠明顯,歡迎進行任何編輯以使其更清晰。 –

+0

非常感謝。現在,這真的很複雜~~~ –