手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表查看gouki的文章

go mod 快速使用

 我自己的用法,不知道别人是不是这样的

感觉用了go mod ,gopath可以不用设置了。
老方法:src/pkg/bin,建三个目录,然后GOPATH设置在这个外层(因为感觉go get的时候好象还是会往pkg里扔,只是pkg多了一个目录叫:mod)
在src下建一个目录,比如:blog,在blog目录里go mod init
然后就是正常的用法了。比如你要引入啥,go get 就行 了。如果是你手动写的一个路径。你引入后,还得执行go mod tidy 。
只是这样我老是不能正常。所以我每次都选择 go mod tidy && go mod vendor,会在blog里生成Vendor的目录。然后就一切OK了。
 
go mod对我来说最方便的应该就是Replace了。比如我准备要放个代码上github(或者其他),但中途可能会改,总不可能一直先commit,再go get 吧?
所以replace github.com/xxx/xxx 0.0.1 => /Users/gouki/go/xxx/xxx ,切换到本地。。那边代码有更新。我这边go mod tidy && go mod vendor就完事儿了。
 
总感觉这样目前还不是最佳的。但先弄一下吧。至少我目前够用了

go install go-sqlite3时,报错:#include nested too deeply

 安装sqlite3的时候,报:

XML/HTML代码
  1. /usr/local/include/stdint.h:2:10: error: #include nested too deeply  
  2. #include <stddef.h>  
  3.          ^  
  4. /usr/local/include/stdint.h:59:11: error: #include nested too deeply  
  5. # include <stdint.h>  
  6.           ^  
  7. /usr/local/include/stdint.h:72:11: error: #include nested too deeply  
  8. # include <sys/types.h>  
  9.           ^  
  10. /usr/local/include/stdint.h:76:10: error: #include nested too deeply  
  11. #include <limits.h>  
  12.          ^  
  13. /usr/local/include/stdint.h:82:11: error: #include nested too deeply  
  14. # include <inttypes.h>  
  15.           ^  
  16. 5 errors generated.  
开始的时候以为cgoenabled=0结果 。go env的时候发现有打开。
又以为可能是xcode-select 没装,于是执行xcode-select --install 进行工具安装 。症状依然。最后找到这里:https://github.com/SOHU-Co/kafka-node/issues/881,看来有不少人有这个问题。只是有人说,brew doctor一下就行了。光执行,并没啥用
最后有一个人提出:
XML/HTML代码
  1. mkdir /tmp/includes  
  2. brew doctor 2>&1 | grep "/usr/local/include" | awk '{$1=$1;print}' | xargs -I _ mv _ /tmp/includes  
一下子全解决了!
 
 

Q: Problems upgrading to macOS Mojave on MacBook Pro 2018

 有人说重置SMC可以解决这个问题,然而我没有试。最后看LOG,居然一堆连网错误,难道要校验checksum?

再到苹果官网上看到这个:
https://discussions.apple.com/message/33927150#33927150
  1. Hi,  
  2.   
  3. Had the same problem, but for me it worked by  
  4.   
  5. removing all DNS search domains  
  6. untick the automatic proxy configuration  
  7.    
  8.   
  9. for the Wifi adapter.  
  10.   
  11. good luck.  
果然尝试。果然有效(最终发现还是有问题,终于。。重置NVRAM,安装完成)
 
网址:https://appletoolbox.com/2017/12/macos-could-not-be-installed-how-to-fix/
  1. 节选  
  2. Next, let’s try out the basic NVRAM reset (or PRAM for older Macs) on your computer.  
  3. Follow these steps if you are not sure about how to do the NVRAM reset  
  4. Shut down your Mac  
  5. Turn it on and immediately press and hold these four keys together: Option, Command, P, and R macOS Could Not Be Installed, How-To Fix  
  6. Release the keys after about 20 seconds, during which your Mac might appear to restart  
  7. Open System Preferences and check (and adjust, if necessary) any settings that reset, like volume, display resolution, startup disk selection, or time zone  
  8. 说白了,就是启动的时候 cmd+option+P+R,等20秒。放开,再重启
 
 一切都清静 了。只是感觉这一版,没什么变动的

gorm的一些Callback

 要知道gorm的callback看代码就可以知道了:

XML/HTML代码
  1. func init() {  
  2.     DefaultCallback.Create().Register("gorm:begin_transaction", beginTransactionCallback)  
  3.     DefaultCallback.Create().Register("gorm:before_create", beforeCreateCallback)  
  4.     DefaultCallback.Create().Register("gorm:save_before_associations", saveBeforeAssociationsCallback)  
  5.     DefaultCallback.Create().Register("gorm:update_time_stamp", updateTimeStampForCreateCallback)  
  6.     DefaultCallback.Create().Register("gorm:create", createCallback)  
  7.     DefaultCallback.Create().Register("gorm:force_reload_after_create", forceReloadAfterCreateCallback)  
  8.     DefaultCallback.Create().Register("gorm:save_after_associations", saveAfterAssociationsCallback)  
  9.     DefaultCallback.Create().Register("gorm:after_create", afterCreateCallback)  
  10.     DefaultCallback.Create().Register("gorm:commit_or_rollback_transaction", commitOrRollbackTransactionCallback)  
  11. }  
类似:beginTransactionCallback 的一共有9个,事务和创建等等。一般事务的话会用的比较多一点,还有就是针对时间的beforecreate等
 
当然更多的还得看官方的文档:http://gorm.io/zh_CN/docs/hooks.html。默认会执行什么,应该执行什么,这里都有写,可以看一下下的
 
 
 

mac 修改 ulimit

下述是指在mac下面。linux 8 是这样的

 ulimit -n 运行一下,看看是多少,如果是65536就算了。不是的话,如果有需要就自己改一下。常见的ulimit -n 65536,直接运行就行了,但这只是临时的

 
其实以下内容是COPY来的。我没有细究。
 
原文来自:http://ronglei0324.blog.163.com/blog/static/676332232013122112049188/
  1. $ sysctl kern.maxfiles  
  2. kern.maxfiles: 12288  
  3. $ sysctl kern.maxfilesperproc  
  4. kern.maxfilesperproc: 10240  
  5. $ sudo sysctl -w kern.maxfiles=1048600  
  6. kern.maxfiles: 12288 -> 1048600  
  7. $ sudo sysctl -w kern.maxfilesperproc=1048576  
  8. kern.maxfilesperproc: 10240 -> 1048576  
  9. $ ulimit -n  
  10. 256  
  11. $ ulimit -n 1048576  
  12. $ ulimit -n  
  13. 1048576