0%

Mac-Programming-Environment

最近开始用mac来开发。记录下环境安装过程方便以后快速恢复熟悉的开发环境。

这里提前修改一下控制台前缀

1
2
3
4
5
[dev mc]$ sudo vim /etc/bashrc
#修改以下内容
PS1='\h:\W \u\$ '
#修改成
PS1='[dev \u]$ '

好用的工具

  • pages 同事推荐的软件暂时用来写周报。
  • brew 这是一个神器,和linux 上的yum 类似的工具。
  • sublime text 我之前在windows上都是使用notepad++。上App Store上没找到,该用这个了。

pages

  • 直接在app store安装就好了

brew

  • 安装过程使用终端安装。
1
2
#  这里并没有换行,复制的时候请注意。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 基本操作方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 更新
brew update
# 安装软件
brew install xxx(软件名)

#常见命令整理如下,以下命令都可带上 cask 参数:

brew search name:联网搜索软件是否存在 brew 中
brew install name:安装软件
brew upgrade name:更新软件
brew uninstall name:卸载软件
brew reinstall name:重新安装软件
brew info name:查看软件安装地址
brew cleanup:清理缓存等
brew doctor:查看建议,例如升级等

mvnd

maven-mvnd,可以读作 Maven Daemon,译作 Maven 守护版,旨在为 Maven 提供更快的构建速度,灵感借鉴了 Gradle 和 Takari(Maven 生命周期优化器)。

1
2
3
4
5
6
# Windows
choco install mvndaemon
# Linux
sdk install mvnd
# macOS
brew install mvndaemon/homebrew-mvnd/mvnd

mycli

python编写的mysql客户单工具

1
brew install mycli

最终安装第三方程序如下:

  • 首先进入用户的工作空间,路径/User/{user}/Downloads 这里的user 就是你的电脑用户名称。
1
2
3
4
5
6
7
8
9
[dev mc]$ ls -l
total 2031352
-rw-r--r--@ 1 mc staff 9987856 6 21 09:40 Typora.dmg
-rw-r--r--@ 1 mc staff 8958105 6 21 10:43 apache-maven-3.5.3-bin.zip
-rw-r--r--@ 1 mc staff 31940569 6 21 08:59 git-2.17.1-intel-universal-mavericks.dmg
-rw-r--r--@ 1 mc staff 69518288 6 12 14:23 googlechrome.dmg
-rw-r--r--@ 1 mc staff 659753157 6 20 16:55 ideaIU-2018.1.5.dmg
-rw-r--r--@ 1 mc staff 259882804 6 20 17:00 jdk-8u171-macosx-x64.dmg
-rw-r--r--@ 1 mc staff 42296521 6 21 13:44 sogou_mac_47e.zip
  • 简单介绍下安装的程序:sogou、Typora、maven、git、chrome、idea、jdk、Navicat Premium、gradle。

安装sogou输入法

  • 最开始在app store上安装了一个版本,但是不知道配置。从新在官方网站下载一个mac版本的。

安装jdk

  • 由于是从官方网站上下载的版本,和windows里面的安装过程类似,这里不多说。主要是安装完成之后java home在什么地方需要注意应该在后面的需要配置相关信息。
1
2
3
4
5
#检查安装效果
[dev mc]$ java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
  • 检查javahome位置。
1
2
3
4
5
[dev mc]$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
1.8.0_171, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home

安装git

  • git安装也是可视化安装,和windows下流程类似。
1
2
dev mc]$ git --version
git version 2.17.1

安装chrome

  • 反正我没在app store找到,也许是我瞎了。

安装idea

  • 安装过程可视化,这就不多说。主要是激活需要注意下。我采用修改hosts文件的方式;据说这个方法需要经常激活。
  • 安装完成之后先不进入idea,先修改hosts文件。并从http://idea.lanyus.com获取激活码。
1
2
3
4
5
6
7
8
9
10
11
12
13
#修改host文件
[dev mc]$ sudo vim /etc/hosts
#
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
#这里是追加的内容。
0.0.0.0 account.jetbrains.com

这里需要提权操作sudo,保存的时候需要强制保存wq!

  • 修改完hosts文件,并从网站中获取了激活码就打开idea第一次需要激活。在Activation code 粘贴激活码就ok了。

安装openresty

  • 在mac上直接使用brew安装
1
brew install openresty/brew/openresty
  • 安装完成之后,默认的安装位置在 /usr/local/Cellar/openresty/xxx (xxx是版本号)

  • 设置环境变量

1
export PATH=/usr/local/Cellar/openresty/1.19.9.1_2/nginx/sbin:$PATH
  • 检查
1
2
3
4
5
6
7
8
9
➜  ~ nginx -v
nginx version: openresty/1.19.9.1

➜ ~ nginx -V
nginx version: openresty/1.19.9.1
built by clang 13.0.0 (clang-1300.0.29.3)
built with OpenSSL 1.1.1l 24 Aug 2021
TLS SNI support enabled
configure arguments: --prefix=/usr/local/Cellar/openresty/1.19.9.1_2/nginx --with-cc-opt='-O2 -I/usr/local/include -I/usr/local/opt/pcre/include -I/usr/local/opt/openresty-openssl111/include' --add-module=../ngx_devel_kit-0.3.1 --add-module=../echo-nginx-module-0.62 --add-module=../xss-nginx-module-0.06 --add-module=../ngx_coolkit-0.2 --add-module=../set-misc-nginx-module-0.32 --add-module=../form-input-nginx-module-0.12 --add-module=../encrypted-session-nginx-module-0.08 --add-module=../srcache-nginx-module-0.32 --add-module=../ngx_lua-0.10.20 --add-module=../ngx_lua_upstream-0.07 --add-module=../headers-more-nginx-module-0.33 --add-module=../array-var-nginx-module-0.05 --add-module=../memc-nginx-module-0.19 --add-module=../redis2-nginx-module-0.15 --add-module=../redis-nginx-module-0.3.7 --add-module=../ngx_stream_lua-0.0.10 --with-ld-opt='-Wl,-rpath,/usr/local/Cellar/openresty/1.19.9.1_2/luajit/lib -L/usr/local/lib -L/usr/local/opt/pcre/lib -L/usr/local/opt/openresty-openssl111/lib' --pid-path=/usr/local/var/run/openresty.pid --lock-path=/usr/local/var/run/openresty.lock --conf-path=/usr/local/etc/openresty/nginx.conf --http-log-path=/usr/local/var/log/nginx/access.log --error-log-path=/usr/local/var/log/nginx/error.log --with-pcre-jit --with-ipv6 --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_v2_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_auth_request_module --with-http_secure_link_module --with-http_random_index_module --with-http_geoip_module --with-http_gzip_static_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-threads --with-stream --with-http_ssl_module

安装typora

  • 我在windows上经常使用这款编辑器、用mac依然使用。不过在写这篇文档的时候发现明显的bug ;还能忍受。

安装maven

  • 解压文件,并复制到/Users/{user}/opt文件夹中,我电脑到用户叫mc
1
2
3
[dev mc]$ unzip apache-maven-3.5.3.zip
...
[dev mc]$ mv apache-maven-3.5.3 /Users/mc/opt
  • maven需要配置环境变量,首先检查~/.bash_profile是否存在。如果不存在就创建一个。
1
2
3
4
5
6
7
8
9
10
11
#我这里是没有该文件
[dev mc]$ touch ~/.bash_profile
#编辑内容
[dev mc]$ sudo vim ~/.bash_profile

# maven所在的目录
export M2_HOME=/Users/mc/opt/apache-maven-3.5.3
# maven bin所在的目录
export M2=$M2_HOME/bin
# 将maven bin加到PATH变量中
export PATH=$M2:$PATH
  • 这里其实和windows上配置一样只不过写入到地方不一样而已。java_home也可以在这里配置。
  • 强制刷新配置信息[dev mc]$ source ~/.bash_profile
1
2
3
4
5
6
7
8
#检查配置信息
dev mc]$ mvn -v
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T03:49:05+08:00)
Maven home: /Users/mc/opt/apache-maven-3.5.3
Java version: 1.8.0_171, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.6", arch: "x86_64", family: "mac"

安装Navicat Premium

安装这个是比较麻烦的,不过总算是安装成功了。单独梳理一下自己的激活成功过程。不过我并不是自己算出的注册码而是使用作者给的。毕竟方便很多。

参考文献:Navicat Premium for Mac的破解教程

大概的流程是这样的:

  • 修改Navicat Premium rpk文件内容,也就是公钥。这里参考文档中的一堆钥。rpk文件地址就在Navicat Premium应用安装位置中Contents/Resources/里面。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 公钥,放在rpk文件中的。
-----BEGIN PUBLIC KEY-----
MIIBITANBgkqhkiG9w0BAQEFAAOCAQ4AMIIBCQKCAQB8vXG0ImYhLHvHhpi5FS3g
d2QhxSQiU6dQ04F1OHB0yRRQ3NXF5py2NNDw962i4WP1zpUOHh94/mg/KA8KHNJX
HtQVLXMRms+chomsQCwkDi2jbgUa4jRFN/6N3QejJ42jHasY3MJfALcnHCY3KDEF
h0N89FV4yGLyDLr+TLqpRecg9pkPnOp++UTSsxz/e0ONlPYrra/DiaBjsleAESZS
I69sPD9xZRt+EciXVQfybI/2SYeAdXMm1B7tHCcFlOxeUgqYV03VEqiC0jVMwRCd
+03NU3wvEmLBvGOmNGudocWIF/y3VOqyW1byXFLeZxl7s+Y/SthxOYXzu3mF+2/p
AgMBAAE=
-----END PUBLIC KEY-----

#私钥,后面激活的时候需要生成离线激活码。
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQB8vXG0ImYhLHvHhpi5FS3gd2QhxSQiU6dQ04F1OHB0yRRQ3NXF
5py2NNDw962i4WP1zpUOHh94/mg/KA8KHNJXHtQVLXMRms+chomsQCwkDi2jbgUa
4jRFN/6N3QejJ42jHasY3MJfALcnHCY3KDEFh0N89FV4yGLyDLr+TLqpRecg9pkP
nOp++UTSsxz/e0ONlPYrra/DiaBjsleAESZSI69sPD9xZRt+EciXVQfybI/2SYeA
dXMm1B7tHCcFlOxeUgqYV03VEqiC0jVMwRCd+03NU3wvEmLBvGOmNGudocWIF/y3
VOqyW1byXFLeZxl7s+Y/SthxOYXzu3mF+2/pAgMBAAECggEAK5qZbYt8wenn1uZg
6onRwJ5bfUaJjApL+YAFx/ETtm83z9ByVbx4WWT7CNC7fK1nINy20/mJrOTZkgIx
x6otiNC4+DIsACJqol+RLoo8I9pk77Ucybn65ZteOz7hVZIU+8j6LzW0KDt6yowX
e75r7G/NEpfibNc3Zz81+oDd2x+bHyGbzc9QcePIVuEzkof6jgpbWrQZU14itx9l
VxEgj/fbMccvBx8brR/l9ClmDZd9Y6TWsF1rfJpF3+DPeqFkKCiD7PGz3bs4O/Zd
ZrfV21ZNVusBW49G6bU63gQVKsOf1qGo3efbAW1HVxgTQ/lExVdcMvdenZm+ADKp
L4/wUQKBgQDOfBjn3OC2IerUFu18EgCS7pSjTSibXw+TeX3D5zwszLC091G2rGlT
5DihBUhMfesNdpoZynrs4YB6Sz9C3wSGAB8AM/tNvPhtSVtbMHmrdT2DEEKCvLkO
RNBnt+8aTu2hGRanw9aL1189gzwrmXK5ZuuURfgLrB9ihrvjo4VznQKBgQCapx13
dEA1MwapBiIa3k8hVBCoGPsEPWqM33RBdUqUsP33f9/PCx00j/akwmjgQNnBlAJo
Y7LOqPCyiwOkEf40T4IlHdzYntWQQvHhfBwqSgdkTE9tKj43Ddr7JVFRL6yMSbW3
9qAp5UX/+VzOLGAlfzJ8CBnkXwGrnKPCVbnZvQKBgQCd+iof80jlcCu3GteVrjxM
LkcAbb8cqG1FWpVTNe4/JFgqDHKzPVPUgG6nG2CGTWxxv4UFKHpGE/11E28SHYjb
cOpHAH5LqsGy84X2za649JkcVmtclUFMXm/Ietxvl2WNdKF1t4rFMQFIEckOXnd8
y/Z/Wcz+OTFF82l7L5ehrQKBgFXl9m7v6e3ijpN5LZ5A1jDL0Yicf2fmePUP9DGb
ZTZbbGR46SXFpY4ZXEQ9GyVbv9dOT1wN7DXvDeoNXpNVzxzdAIt/H7hN2I8NL+4v
EjHG9n4WCJO4v9+yWWvfWWA/m5Y8JqusV1+N0iiQJ6T4btrE4JSVp1P6FSJtmWOK
W/T9AoGAcMhPMCL+N+AvWcYt4Y4mhelvDG8e/Jj4U+lwS3g7YmuQuYx7h5tjrS33
w4o20g/3XudPMJHhA3z+d8b3GaVM3ZtcRM3+Rvk+zSOcGSwn3yDy4NYlv9bdUj/4
H+aU1Qu1ZYojFM1Gmbe4HeYDOzRsJ5BhNrrV12h27JWkiRJ4F/Q=
-----END RSA PRIVATE KEY-----

替换rpk文件内容后使用注册码NAVH-T4PX-WT8W-QBL5

  • 开始激活打开软件会提示激活操作。输入注册码并断网,提示手动激活也就是离线激活。复制请求代码。打开加密解密网站,将私钥填入加密秘钥,然后把请求码复制到待解密区域,计算出明文。
1
2
3
4
5
6
# 明文格式如下
{
"K" : "NAVHT4PXWT8WQBL5",
"P" : "Mac 10.13",
"DI" : "ODQ2Yjg2ZDBjMTEzMjhh"
}
  • 拿到明文,按照固定格式填充下面的待加密内容,就是激活码的明文。
1
2
# 在加密操作中,请勿换行。替换下面的k、di、t;这个t就是时间戳,n、o随意填。
{"K":"NAVHT4PXWT8WQBL5", "N":"52pojie", "O":"52pojie.cn", "DI":"ODQ2Yjg2ZDBjMTEzMjhh", "T":1516939200}
  • 拿到激活码的明文,用私钥加密的到激活码,填入激活就ok了。在教程中已经很详细了,所以就不多重复阐述。

安装gradle

安装有两种方式,第一种是下载解压包,然后配置环境变量。第二种是用brew进行安装。看gradle的官方也是推荐brew的安装方式。下面就简单演示下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[dev mc]$ brew install gradle
#检查是否安装完成
[dev mc]$ gradle --version
Welcome to Gradle 4.8.1!

Here are the highlights of this release:
- Dependency locking
- Maven Publish and Ivy Publish plugins improved and marked stable
- Incremental annotation processing enhancements
- APIs to configure tasks at creation time

For more details see https://docs.gradle.org/4.8.1/release-notes.html


------------------------------------------------------------
Gradle 4.8.1
------------------------------------------------------------

Build time: 2018-06-21 07:53:06 UTC
Revision: 0abdea078047b12df42e7750ccba34d69b516a22

Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM: 1.8.0_171 (Oracle Corporation 25.171-b11)
OS: Mac OS X 10.13.5 x86_64

这里需要注意的是brew安装的程序都存放在 /usr/local/,这里安装的地址就在/usr/local/Cellar/gradle

  • 在设置环境变量,和maven设置方式一样。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 编辑 bash_profile文件添加gradle配置信息
[dev mc]$ sudo vim ~/.bash_profile

# 添加一下内容
#gradle所在文件地址
export GRADLE_HOME=/usr/local/Cellar/gradle
#gradle bin所在的目录
export GRADLE=$GRADLE_HOME/bin
#将gradle bin加到PATH变量中
export PATH=$GRADLE:$PATH

#强制刷新配置文件
[dev mc]$ source ~/.bash_profile

#再次查检查环境配置
[dev mc]$ gradle --version

------------------------------------------------------------
Gradle 4.8.1
------------------------------------------------------------

Build time: 2018-06-21 07:53:06 UTC
Revision: 0abdea078047b12df42e7750ccba34d69b516a22

Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM: 1.8.0_171 (Oracle Corporation 25.171-b11)
OS: Mac OS X 10.13.5 x86_64

安装zsh

这个比默认自带的控制台强大很多,所以推荐使用。

  • 查看mac默认自带的zsh版本
1
zsh --version
  • mac自带的shell是bash,需要自己修改下。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat /etc/shells   #查看系统自带的bash

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh # 这个就是我们要用的。

chsh -s /bin/zsh # 这是修改默认bash。

  • 安装“oh my zsh”
1
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" #注意脚本
  • 注意事项
1
如果之前有在 ~/.bash_profile 配备环境变量,请修改~/.zshrc,在文件内添加source ~/.bash_profile 。不然会出这个错误 zsh: command not found: xxx

安装macvim

在终端里面的vim不是特别习惯,所以我找了下mac上的vim可视化软件。

https://github.com/macvim-dev/macvim

安装asciinema

终端录制,个人觉的动画比较容易表示清晰。

  • 安装命令 brew install asciinema

  • 使用方法输入 asciinema rec 即可开始录制。完成后按 Ctrl+D 或者exit退出。

安装wrk

HTTP的小工具。

  • 安装命令brew install wrk

安装Keycastr

显示按键的小工具(Mac),可以设置要显示的桌面、是否只显示带功能键的键位。开源免费

安装Go

这里偷懒直接在官方网站上下载可安装包,如果偷懒可以使用brew install go来安装,这里演示下源码安装

1
2
3
4
vim .bash_profile
export GOPATH=/usr/local/Cellar/go/1.7.6
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN
  • 检查配置go env

  • 配置goproxy,暂时还不清楚为什么配置未生效。所以在国内下载依赖依然会出超时。

  • 当我们使用 import "golang.org/x/tools/go/buildutil" 导入包时,其实导入的是$GOPATH/src/golang.org/x/tools/go/buildutil目录的包。

  • “golang.org/x” 下的包在 “github.com/golang”有镜像库。

  • 所以可以从 github.com 上将对应包下载下来放到对应的目录即可

  • 先切换到 $GOPATH 的 src 目录,cd $GOPATH/src,然后按需要下载:

    1. git clone --depth 1 https://github.com/golang/tools.git golang.org/x/tools
    2. git clone --depth 1 https://github.com/golang/lint.git golang.org/x/lint
    3. git clone --depth 1 https://github.com/golang/net.git golang.org/x/net
    4. git clone --depth 1 https://github.com/golang/sys.git golang.org/x/sys
    5. git clone --depth 1 https://github.com/golang/crypto.git golang.org/x/crypto
    6. git clone --depth 1 https://github.com/golang/text.git golang.org/x/text
    7. git clone --depth 1 https://github.com/golang/image.git golang.org/x/image
    8. git clone --depth 1 https://github.com/golang/oauth2.git golang.org/x/oauth2
  • 以前他的依赖以此类推。

安装chromedriver

使用爬虫的时候需要使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 检查是否安装 chromedriver
-> chromedriver -v
ChromeDriver 85.0.4183.87
# 注意chromedriver 和 chrome 的版本要协同,如果不一致。就都重新安装最新版即可,官网有版本对照表。
# 卸载 chromedriver
-> brew uninstall chromedriver
# 安装 chromedriver
-> brew cask install chromedriver
# 这里可能出现版本不正确,因为chrome经常更新。可以尝试手动安装
# 卸载 chromedriver
-> brew uninstall chromedriver
# 去官方网站下载 https://chromedriver.chromium.org/
# 下载后,将安装包加入到环境变量。以mac系统为例,将chromedriver移至/usr/bin目录下即可
-> sudo mv ~/Downloads/chromedriver /usr/bin
## macOS Catalina cp: /usr/bin/xcpretty: Operation not permitted 权限问题
## macOS Catalina 存在 Rootless机制,不再能够随心所欲的读写很多路径
## 关闭 Rootless,重启按住 Command+R,进入 恢复模式,打开Terminal
## csrutil disable
## 正常启动复制文件
## csrutil enable
## 或者加入本地环境变量
-> sudo mv ~/Downloads/chromedriver user/local/bin
## export PATH=$PATH:/usr/local/bin/chromedriver

Mac下个人工具清单。

brew

Tool name Install command Description
Wget brew install wget 下载工具
Curl brew install curl 下载工具
Diff brew install difftuils Gnu 比较工具
Find brew install findtuils Gnu 查找工具
htop brew install stop 代替top
Axel brew install axel 多线程下载
Tmux brew install tmux 终端复用
cloc brew install cloc 代码统计
Tldr brew install tldr 命令提示行
Ncdu brew install ncdu 磁盘空间占用成分
ctop brew install stop Docker 容器监控工具
Pstree brew install 进程树查看
Bash-completion brew install bash补全
Graphviz brew install 拓扑图绘制工具

brew cask

Tool name Install command Description
cask brew tap cask room/cask Cask
Macpass brew cask install macpass 免费密码管理
docker brew cask install docker docker 必备
Fonts brew tap cask room/fonts 字体管理
licecap brew cask install licecap 录屏软件
Kap brew cask install kap 视频录屏
sequel pro brew cask install sequel pro 数据库管理

tencent-lemon(Mac)

  • 腾讯柠檬清理,基本对标的就是 CleanMyMac

总结

  • 保不齐那天就又用上了。

END