草庐IT

在Ubuntu上安装rust

抓饼先生 2023-10-07 原文

查看rustup安装包信息(可选)

$ snap info rustup
name:      rustup
summary:   "EXPERIMENTAL: The Rust Language installer"
publisher: Daniel Silverstone (dsilvers)
store-url: https://snapcraft.io/rustup
contact:   dsilvers@digital-scurf.org
license:   Apache-2.0 OR MIT
description: |
  **NOTA BENE:** _This is an experimental, unofficial, snap and should not be relied on._
  
  Rustup is the Rust Language's installer and primary front-end.  You probably
  want this if you want to develop anything written in Rust.
  
  Please note, this snap is experimental and may be yanked without notice
  if this experiment proves to be a bad idea.
snap-id: tO4cnls38mXDXJiA0U72G7eCyrCAMweL
channels:
  latest/stable:    1.24.3 2021-06-22 (1027) 4MB classic
  latest/candidate: ↑                            
  latest/beta:      1.25.0 2022-06-13 (1407) 5MB classic
  latest/edge:      1.24.3 2022-07-11 (1425) 5MB classic

安装rustup

$ sudo snap install rustup
[sudo] password for user: 
error: This revision of snap "rustup" was published using classic confinement and thus may perform
       arbitrary system changes outside of the security sandbox that snaps are usually confined to,
       which may put your system at risk.

       If you understand and want to proceed repeat the command including --classic.

直接安装,有上述风险提示,需要在安装命令中增加–classic参数来安装。

$ sudo snap install rustup --classic
Download snap "core18" (2667) from channel "stable"                                                                                                                                         40%  323kB/s 1m48s
rustup 1.24.3 from Daniel Silverstone (dsilvers) installed

安装rustc

安装前,执行rustc --version命令,显示找不到。

$ rustc --version
error: no override and no default toolchain set

安装stable版本

$ rustup install stable
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2023-01-10, rust version 1.66.1 (90743e729 2023-01-10)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
 19.1 MiB /  19.1 MiB (100 %)   8.9 MiB/s in  1s ETA:  0s
info: downloading component 'rust-std'
 30.0 MiB /  30.0 MiB (100 %)  16.1 MiB/s in  1s ETA:  0s
info: downloading component 'rustc'
 67.4 MiB /  67.4 MiB (100 %)  12.1 MiB/s in  5s ETA:  0s
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
 19.1 MiB /  19.1 MiB (100 %)   1.6 MiB/s in 10s ETA:  0s 
info: installing component 'rust-std'
 30.0 MiB /  30.0 MiB (100 %)   3.3 MiB/s in  7s ETA:  0s
info: installing component 'rustc'
 67.4 MiB /  67.4 MiB (100 %)   4.4 MiB/s in 16s ETA:  0s
info: installing component 'rustfmt'

  stable-x86_64-unknown-linux-gnu installed - rustc 1.66.1 (90743e729 2023-01-10)

info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'

安装完成后进行确认

$ rustc --version
rustc 1.66.1 (90743e729 2023-01-10)

$ rustup default
stable-x86_64-unknown-linux-gnu (default)

cargo初体验

创建hello工程

创建名为“hello”的工程,名称可以任选。
在命令执行的目录下,创建以工程名(hello)命名的目录,其中包含rust项目默认的目录结构。

$ cargo new hello
     Created binary (application) `hello` package

创建完成后,查看自动生成文件。

$ find hello/
hello/
hello/Cargo.toml
hello/src
hello/src/main.rs

查看main.rs文件内容,默认的一个hello world。

//main.rs 
fn main() {
  println!("Hello, world!");
}

编译、运行

编译+运行

在hello目录下,直接执行cargo run,后面不跟项目名称。
自动编译,并运行,显示执行结果。

$ cargo run
   Compiling hello v0.1.0 (/home/user/source/rust/myrust/hello)
    Finished dev [unoptimized + debuginfo] target(s) in 0.67s
     Running `target/debug/hello`
Hello, world!

也可以在cargo run后面跟上项目名称。
注意,再次编译耗时为0,因为检测到已生成的目标文件和可执行文件,没有再次编译。

$ cargo run hello
    Finished dev [unoptimized + debuginfo] target(s) in 0.00s
     Running `target/debug/hello hello`
Hello, world!

cargo编译自动生成的文件

其中可执行文件为./target/debug/hello

$ find
.
./target
./target/debug
./target/debug/hello
./target/debug/deps
./target/debug/deps/hello-274bceb238a71d2c
./target/debug/deps/hello-274bceb238a71d2c.d
./target/debug/.cargo-lock
./target/debug/hello.d
./target/debug/examples
./target/debug/incremental
./target/debug/incremental/hello-1mywrsfxa307p
./target/debug/incremental/hello-1mywrsfxa307p/s-ghgnder5d2-atwot6-1rt7qa06ycrsb
./target/debug/incremental/hello-1mywrsfxa307p/s-ghgnder5d2-atwot6-1rt7qa06ycrsb/1k6fmvbj4kgxmvo.o
./target/debug/incremental/hello-1mywrsfxa307p/s-ghgnder5d2-atwot6-1rt7qa06ycrsb/11gozpvmuuvnuax0.o
./target/debug/incremental/hello-1mywrsfxa307p/s-ghgnder5d2-atwot6-1rt7qa06ycrsb/5a4b3go9tpkabteb.o
./target/debug/incremental/hello-1mywrsfxa307p/s-ghgnder5d2-atwot6-1rt7qa06ycrsb/work-products.bin
./target/debug/incremental/hello-1mywrsfxa307p/s-ghgnder5d2-atwot6-1rt7qa06ycrsb/42ng4k24mutpcm07.o
./target/debug/incremental/hello-1mywrsfxa307p/s-ghgnder5d2-atwot6-1rt7qa06ycrsb/f4rryg4sswprfky.o
./target/debug/incremental/hello-1mywrsfxa307p/s-ghgnder5d2-atwot6-1rt7qa06ycrsb/dep-graph.bin
./target/debug/incremental/hello-1mywrsfxa307p/s-ghgnder5d2-atwot6-1rt7qa06ycrsb/35wjyzzyjx18spd.o
./target/debug/incremental/hello-1mywrsfxa307p/s-ghgnder5d2-atwot6-1rt7qa06ycrsb/query-cache.bin
./target/debug/incremental/hello-1mywrsfxa307p/s-ghgnder5d2-atwot6.lock
./target/debug/.fingerprint
./target/debug/.fingerprint/hello-274bceb238a71d2c
./target/debug/.fingerprint/hello-274bceb238a71d2c/invoked.timestamp
./target/debug/.fingerprint/hello-274bceb238a71d2c/bin-hello
./target/debug/.fingerprint/hello-274bceb238a71d2c/dep-bin-hello
./target/debug/.fingerprint/hello-274bceb238a71d2c/bin-hello.json
./target/debug/build
./target/.rustc_info.json
./target/CACHEDIR.TAG
./Cargo.lock
./Cargo.toml
./src
./src/main.rs

单独执行可执行文件

$ cd target/debug/
$ l
build/  deps/  examples/  hello*  hello.d  incremental/
$ ./hello 
Hello, world!

用rustc单独编译

$ cd src/
$ rustc main.rs 
$ ./main 
Hello, world!

有关在Ubuntu上安装rust的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  3. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  4. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  5. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  6. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  7. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  8. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  9. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  10. ruby - 如何在 Ubuntu 中清除 Ruby Phusion Passenger 的缓存? - 2

    我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题:

随机推荐