1.1 Rust安装

从今天起,坚持每天学习10分钟Rust...这是一个刚兴起几年的语言,希望深入地进行学习,为什么呢,因为以下这些让人辛酸的理由.....

最开始学习的是C++,没学太懂,之后又学了C,这时还完全对计算机语言没什么概念

然后又学习了操作系统原理、汇编、编译原理、算法与数据结构,书看了,书后面的练习题也做了,自测考试,汇编60分,编译原理实现了一个加减乘除的小程序,算法与数据结构89分,满分都是100分,后来不学了,忘光了,这时大概有些明白操作系统是个什么东西

再后来学习的.net,做了一个小博客网站,能发文章能评论,这中间还学习了一个VB,这个语言做window桌面开发很方便,后来觉得总是拖拉组件没意思,也就没再学习了

然后有些迷茫了……也无法分区这些语言的差别

然后接触到了Java,此时Java刚刚宣布可以跨平台不久,认为这是个不错的选择,深入学习了两年,工作用了三年,公司的平台是花巨资从IBM买的架构,我前两年没事就研究这个,大概在第二年时终于把主要环节弄明白了,然后自己模仿写了个小架构,此时突然有些明白了软件是用来干什么的了,大学的专业是软件工作,至到此时才理解到,软件是用来满足人们或者说市场的需求的;此时,意识到了,做程序员,就要追求代码的精益求精,要懂得规范与标准,做项目有一个好的平台架构是多么的重要,但又感觉发现的太晚了,因为自己之前并没有追求代码的精益求精,周围的人也没人关注这个东西,大家空闲时都打打游戏、看看电影或者想着怎么把个妹子之类的,感觉此时自己距离架构师的距离是十万八千里之远……此时Java还没火,个人感觉前途一片灰暗

既然架构师这条路不好走,我选择把知识面拓展宽一些,转而去学习oracle 成为了一个oracle dba,从小弟开始,工资没涨反而降了,开始了Oracle的学习

然后开始接触运维,做了一年后,自动化运维又火了,又学了python,辅助运维

之后,mysql也火了,好多公司开始上mysql,然后又学习了mysql

之后Go语言也火了,又学习了Go

现在tidb也很火,又开始研究tidb

……

总是在一个东西火的时候去学习,学差不多之后发现这东西已经大众化了,只能说是,眼界不行,视野不开阔、境界高度不够;

但我已经在不断挑战自己了,我初次学习C++才刚学会打字,刚接触电脑没多久,还不知道word文档还有不同字体这一说,只会打开一个word打几个字,那时看C++就跟看天书一样,我去接触尝试了我之前完全没有接触过的东西,应该算是挑战,尽管它就像小时候背的诗歌一样,完全不明白其中的含义;就像我之前上Oracle培训的时候,那个水平很高的讲师讲完一个update语句在内存中数据库块及进程流转过程,我完全能明白并且复述这个过程,但讲师神秘一笑地问我,“你懂了吗?”,我说,“我懂了”,他接着肯定地说,“你不懂!” ,只是背概念和浅显地理解,那不叫懂!

此时明白,如果你是一个不断挑战自己的人,那么你就不要把自己放在一个安逸的环境中,在你可以奋斗的年龄里,你应该去竞争激烈、平台巨大、足够前沿的公司里,要走在世界的前列!

我就这么稀里糊涂地渡过了十载春秋……总追不上时代的步伐,希望看到这篇文章的人能从中得到一些东西,少走一些弯路

开始Rust的学习之旅了……

安装

curl https://sh.rustup.rs -sSf | sh

# vim /etc/profile
export PATH=$PATH:/root/.cargo/bin

非root用户安装配置
export PATH=~/.cargo/bin:$PATH
# rustc
--version rustc 1.31.1 (b6c32da9b 2018-12-18)

 

苹果电脑环境变量

cd

source .bash_profile

73xt@192 ~ % source .bash_profile 
73xt@192 ~ % which rustc
/Users/73xt/.cargo/bin/rustc

在苹果电脑里,执行上面的sh会自动向.bash_profile中添加以下一行,没有时,手工添加

73xt@192 ~ % cat .bash_profile|grep cargo
. "$HOME/.cargo/env"

 

 

验证

mkdir ~/projects
cd ~/projects
mkdir hello_world
cd hello_world

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


# rustc main.rs 
# ls
main  main.rs
# ./main 
Hello, world!

 rust的编译需要依赖glib库,但Linux系统6与7之前的glib库变化比较大,因此,rust编译出的可执行文件,通常不能跨linux的大版本执行

centos7上编译后在centos6上执行,报错如下

$ ./main
./main: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./main)

关于版本的解决方案:

在开发环境中使用docker部署与线上对应的系统版本,在docker中编译后再上线

 

idea中配置rust插件

------------------------------------------------------

在电脑中补充安装

rustup component add rls rust-analysis rust-src

 

idea 安装rust,toml插件

下面两个目录是自动填充的,需要将rust安装到启动idea的目录

 

更换清华数据源:~/.cargo目录下创建config文件

tanpengfei3@bage:~/.cargo$ cat config 
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index"

 

ubuntu中创建新用户并添加管理员权限

 

rust 源码安装

环境ubantu系统,用户ai

 

检查依赖包

sudo su - root
apt install g++


python 确认python环境为2.7,否则安装 apt install python2.7

简易安装
---------------------------------------------------------------------------------
sudo apt install python3         # version 3.7.3-1, or
sudo apt install python          # version 2.7.16-1
sudo apt install python-minimal  # version 2.7.16-1

更改默认值,python默认为Python2,现在修改为Python3,谁的值高谁优先
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

 


apt install make cmake
apt install curl git
apt install libssl-dev
apt install pkg-config

sudo apt install llvm
sudo apt-get install re2c

re2c --version
re2c 1.3

切换到普通用户
git clone https://github.com/ninja-build/ninja.git
cd ninja/
./configure.py --bootstrap
sudo cp ninja /usr/bin/

 

下载软件

wget https://static.rust-lang.org/dist/rustc-1.50.0-src.tar.gz

 

创建安装目录

sudo mkdir -p /opt/app/rust/rust50

sudo chown -R ai.ai /opt/app/rust

 

解压安装

su - root

注意,这一步使用root用户安装

tar -xvf rustc-1.50.0-src.tar.gz

mv rustc-1.50.0-src /opt/soft/
cd rustc-1.50.0-src/

cp config.toml.example config.toml

 

修改安装目录到新的位置,并允许进行扩展安装
vim config.toml
# Instead of installing to /usr/local, install to this path instead.
prefix = "/opt/app/rust/rust50"
extended = true


sudo ./x.py build && ./x.py install

 
cargo需要另行安装:

$ ./x.py install cargo


vim /etc/profile
export PATH=$PATH:/opt/app/rust/rust50/bin

posted @ 2019-01-15 16:20  方诚  阅读(855)  评论(0编辑  收藏  举报