
Don’t be evil
记录一些奇怪的错误
0x00 swift控制端启动错误
每次在控制台输入swift的时候,都会报这个错:
bingyideMacBook-Pro:~ guoby$ swift
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 52, in <module>
import weakref
File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/weakref.py", line 14, in <module>
from _weakref import (
ImportError: cannot import name _remove_dead_weakref
Welcome to Apple Swift version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2). Type :help for assistance.
很长时间没有解决,在使用了google后,最终找到了解决方案。
If you're on OSX and are using homebrew, check your packages installed with brew by running brew list, and if "python@2" appears in that list, and Python 2.7 is your system Python, you can remove the brew installed package with brew remove python@2 --ignore-dependencies
使用brew list后,发现有python@2,然后使用命令:
brew remove python@2 --ignore-dependencies
成功解决问题。
0x01 vapor xcode报错
bingyideMacBook-Pro:Hello guoby$ vapor xcode
Generating Xcode Project [Failed]
error: terminated(72): xcrun --sdk macosx --find xctest output:
Error: Could not generate Xcode project: error: terminated(72): xcrun --sdk macosx --find xctest output:
google后,找到解决方案。
运行命令xcode-select -p后发现结果如下:
bingyideMacBook-Pro:Hello guoby$ xcode-select -p
/Library/Developer/CommandLineTools
文章描述如下:
This is not correct!
When your Xcode.app is in the Applications Folder, please run this command (to select Xcode):
“sudo xcode-select -s /Applications/Xcode.app/Contents/Developer”
This should work!
使用命令:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
问题得以解决,回忆为什么那么久都没有搞定,原来有google。
ps.现在可以正常使用vapor了,原来没有解决中文问题时,我还在犹豫。
0x02 mac intellij idea svn 记住密码
- 打开Settings->Version Control->Subversion;
- 先Clear Auth Cache清理缓存
- 把Enbale interactive mode选上。
0x03 mac 安装应用后Launchpad不显示
在终端下执行以下命令:
rm ~/Library/Application\ Support/Dock/*.db
killall Dock
0x04 Gitea 加入https
在gitea目录下执行命令:
gitea cert --host [HOST]
eg.服务器的ip地址为:192.168.100.201,命令如下:
gitea cert --host 192.168.100.201
会在目录下创建两个文件:
-
cert.pem
-
key.pem
配置app.ini文件内容:
[server]
PROTOCOL=https
ROOT_URL = `https://git.example.com:3000/`
HTTP_PORT = 3000
CERT_FILE = cert.pem
KEY_FILE = key.pem
0x04 Git: SSL certificate problem: unable to get local issuer certificate
如果是针对单个目录,执行以下命令:
git config http.sslVerify false
如果是全局目录,执行以下命令:
git config --global http.sslVerify false
0x05 SVN 带用户进行迁入
svn co https://mysvnserver/someproject --username
0x06 Mac下安装tac命令
1.安装coreutils软件包。
brew install coreutils
2.使用软链接改变命令名称
ln -s /usr/local/bin/gtac /usr/local/bin/tac
0x07 Mac下隐藏和显示文件
显示隐藏文件
defaults write com.apple.Finder AppleShowAllFiles YES;KillAll Finder
不显示隐藏文件
defaults write com.apple.Finder AppleShowAllFiles NO;KillAll Finder
快捷方式
command+shift+.
0x07 Mac下创见扩展卡无故推出
在使用了一段时间后,发现最近老出现的一个问题就是创见扩展卡经常推出。导致,经常使用手拔出来在安装进去, 非常不爽啊,以来用的时候没有出现过这样的问题,是系统升级后,一直都会出现这个问题。 在网上看了一个解决方案,就是去创见的官网下一个运用,JetDrive Toolbox,将Power Save Mode打开。 看看能不能解决这个问题,试一段时间来结论吧。
用了一段时间后发现,该应用已经起到了正常使用的效果。仅仅出现的问题是,每次盒盖后,重新开启后,会有一段时间, 存储卡是不显示的,过一会就自动加载出来。
我理解的是,在盒盖后,要求睡眠的时候,Toolbox将创见卡推出;当开启的时候,Toolbox将创见卡加载。从而避免了直接 推出的方式。
0x08 ruby应用的错误
错误方式:
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/universal-darwin18/rbconfig.rb:215: warning: Insecure world writable dir /Users/guoby/OneDrive/mywork/code/gocode/bin in PATH, mode 040777
解决办法:
sudo chmod 775 /Users/guoby/OneDrive/mywork/code/gocode
sudo chmod go-w /Users/guoby/OneDrive/mywork/code/gocode/bin
疑问???
现在只要在不同的路径下,都会报这样的错误,这样就郁闷了,是不是所有的目录都要去执行这个命令吗?
0x09 SVN Add 后如何撤销
在mac系统下,由于减压后会存在一些“_.xxx”的文件,一时没有想到,直接就svn add folder了。
svn add folder/
发现问题后,使用撤销命令
svn revert --recursive folder/
删除这些文件
find folder/ -name "._*" -delete
0x10 zip加密解密
(1).加密文件
zip -rP password demo.zip demo.docx
-P 密码 -r 遍历
(2).解密
unzip -P password demo.zip
0x11 Mac VSCode 更新失败解决方法
Could not create temporary directory: 权限被拒绝
解决办法,在命令行执行以下命令:
sudo chown $USER ~/Library/Caches/com.microsoft.VSCode.ShipIt/
重启之后,即可进行更新。
0x12 Mac App提示已损坏,打不开。您应将它移到废纸篓
解决办法,在命令行执行以下命令:
sudo spctl --master-disable
打开电脑的“系统偏好设置”–“安全与隐私”。在“通用”一览中,会看到“允许从以下位置下载的应用:”设置。这个时候应该已经有了三个可选项:“App Store、App和被认可的开发者、任何来源”。
选中“任何来源”,然后退出,重新打开之前安装的软件App就可以使用了。如果依旧不可以使用,重新安装一次就好。
0x13 Mac 移动硬盘文件灰色,项目“XXX”已被OS X使用,不能打开.
进入到文件目录,执行以下命令:
ls -l
查看文件权限信息,如果带@为被占用的文件,这个是macOS文件系统的附加属性(extended attributes)。
使用以下命令对文件的附加属性进行清除。
xattr -c xxx.xxx
0x14 对比文件是否是同一个文件的方法
- 使用md5sum命令对比输出结果
md5sum 2_bak.jpeg
- 使用cmp命令对比输出结果
cmp 20191028_102011_C0F17DF73F27.jpeg 2_bak.jpeg
0x15 exiftool查看图片信息
- 按照exiftool
brew install exiftool
- 使用exiftool
exiftool IMG_2397.JPG
- 使用go读取到map里进行数据使用
fileName := "/Volumes/Transcend/photo/good/IMG_2423.JPG"
cmd := exec.Command("exiftool", fileName)
buf, e := cmd.Output() // 错误处理略
if e != nil {
fmt.Print("read photo failed")
return
}
exifMap := make(map[string]string)
exifInfo := strings.Split(string(buf), "\n")
for i := 0; i < len(exifInfo)-1; i++ {
exifGroup := strings.Split(exifInfo[i], ":")
exifMap[strings.Trim(exifGroup[0], " ")] = strings.Trim(exifGroup[1], " ")
}
for k, v := range exifMap {
fmt.Printf("k:[%v].v:[%v]\n", k, v) // 输出k,v值
}
0x16 debugserver or lldb-server not found: install XCode’s command line tools or lldb-server
重新安装xcode-select即可,在命令行输入以下命令:
xcode-select --install
0x17 ffmpeg的视频转化
想准备专门写一节来描述,毕竟最近使用视频的几率相对要多一些
在MacOS上安装ffmpeg,推荐使用brew。
brew install ffmpeg
- webm转mp4
下面这行命令是将webm转换为mp4最精简的命令:
ffmpeg -i video.webm video.mp4
只是copy视频数据部分,对音频进行转码的ffmpeg命令如下:
ffmpeg -i video.webm -c:v copy video.mp4
但是我感觉这个命令是最好用的,精简的感觉速度要慢一些。
当用H.264编码视频的时候,可以通过「量化器」比例(crf值,crf是「固定码率因子(Constant Rate Factor)」的缩写)来控制视频的质量,取值范围是[0-51],0代表无损,默认值是23,51是质量最差,所以这个值的设置越低视频质量越好。导出视频的时候可以使用默认值,或者针对码率较小的视频可以适当提高crf的值。通过 「-crf」选项来指定crf值,示例代码:
ffmpeg -i video.webm -crf 26 video.mp4
ffmpeg同样提供了一系列是质量预设值,可以针对特定的压缩比例和编码速度对视频的质量进行校准。越慢的预设值代表越好的压缩效果,可用的预设值有:
ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow. PS:原文里没有把最后的 placebo写出来。根据英文词意大概可以知道,从前往后转换速度从最快到最慢。
默认的是 medium。当然我们是可以自定义的,通过-preset选项来实现,具体命令如下:
ffmpeg -i video.webm -preset veryfast video.mp4
所有mp4文件都包含moov原子,moov原子信息包含:视频的长度信息。如果moov放置在文件的开头部分,它会立即启用流式视频播放器来播放和清理MP4文件。ffmpeg默认是把moov原子放置在文件末尾,但也可以通过「-movflags faststart」选项将其放在头部,具体命令如下:
ffmpeg -i video.webm -movflags faststart video.mp4
为了确保老的iOS和Android设备的兼容性最高,我们需要一些特定的编码Profile和Level。例如视频编码使用High Profile和Level 4.2可以保证iPhone 5s上正常播放,但更老的iOS设备就不行了。具体的命令如下:
ffmpeg -i video.webm -movflags faststart -profile:v high -level 4.2 video.mp4