利用Rock64搭建内网Time Machine备份服务器

很长的时间都是用一块4T装在硬盘盒里的西数硬盘来做Time Machine备份,需要备份的时候用USB将笔记本和硬盘盒连接起来,备份完毕后再将硬盘盒收起来. 有时候会忘了备份,有时候也会觉得很麻烦. 最重要的是这样做实在是不够优雅. 于是想到了给笔记本配置一块网络硬盘作为Time Machine备份盘. 苹果曾经有一个现成的商业解决方案AirPort Time Capsule, 但是这玩意儿已经停产而且价格相当不美丽. 第一时间想到了家里现有的安装有Armbian的Rock64开发板,通过搜索了解到了专用于实现AFP协议的开源项目Netatalk看到项目托管在sourceforge让我有不详的感觉…好在只是下载源码到本地进行编译. # 首先在Rock64上安装各种依赖: apt install \ build-essential \ libevent-dev \ libssl-dev \ libgcrypt-dev \ libkrb5-dev \ libpam0g-dev \ libwrap0-dev \ libdb-dev \ libtdb-dev \ avahi-daemon \ libavahi-client-dev \ libacl1-dev \ libldap2-dev \ libcrack2-dev \ libdbus-1-dev \ libdbus-glib-1-dev \ libglib2.0-dev \ pkg-config # 下载源码,当前最新版3.1.12 wget http://prdownloads.sourceforge.net/netatalk/netatalk-3.1.12.tar.gz tar zxf netatalk-3.1.12.tar.gz cd netatalk-3.1.12 # 编译安装 ./configure \ --with-init-style=debian-systemd \ --without-libevent \ --without-tdb \ --with-cracklib \ --enable-krbV-uam \ --with-pam-confdir=/etc/pam. »

Author image 月杪 on #Mac,

给我的 Macbook Pro 配置外接显卡

MacBook Pro虽然被苹果标榜为生产力工具,但是毕竟是笔记本. CPU性能还算能过得去吧,虽然在神奇的散热设计加成下战斗力并不能完全发挥出来. 相比CPU最大的问题还是GPU的性能. 2018款MacBook Pro内建GPU为Radeon Pro 560X, 作开发播放视频浏览网页对GPU需求并不大所以就算运行的是内建的UHD Graphics 630核显也不会有什么问题. 但是偶尔我还玩一下World of Warcraft,这就很尴尬了. 而且通常在家我都会外接4k显示器,在将游戏特效降到最低以后还需要将模型渲染比例设定为2k才可以勉强运行8.0版本的World of Warcraft. 虽然World of Warcraft是公认的一个CPU游戏,不过通过观察GPU负载我还是确认提升GPU性能可以非常显著的提升运行World of Warcraft的体验. 同时我也在战网讨论中确认了这个猜想https://us.battle.net/forums/en/wow/topic/20765096767. 于是开始计划购置对应的硬件. Apple Store直接提供了成品: Blackmagic eGPU 内建RX 580, 价格5998.00 Blackmagic eGPU Pro 内建vega 56, 价格10798.00 家里有矿的话可以考虑 准备 GPU 显卡由于苹果一直不给Nvidia的10.14版本Web Driver签名,所以除非我愿意安装10.13否则我只能老老实实选择A卡. 详细的支持在苹果的eGPU支持页面有列出Use an external graphics processor with your Mac. 最终选择了华硕的ROG STRIX-RXVEGA64-O8G-GAMING 1298-1590MHz. 苹果文档中推荐蓝宝石品牌的显卡,不过通过搜索确认这款华硕的显卡也可以正常支持. https://www.reddit.com/r/eGPU/comments/93uxbk/my_setup_2018_15_macbook_pro_razer_core_x_vega_64/ 显卡坞 选择了vega64这样的电老虎,那么显卡坞的选择面就很窄了. egpu.io上有 buyer’s guide »

Author image 月杪 on #Mac,

自己编译鼠须管

现在macOS上的第三方输入法选择的余地并不多,大众的都是天朝特色互联网流氓的产品. 不过还好我们还有rime系列. 鼠须管是rime输入法在macOS下的版本,输入法设定需要用户自己编辑配置文件. 唯一的问题是提供的二进制文件下载太旧是2015年的,而从后面基本都是稳定性提升所以能自己编译最新版本的话应该比自己直接下载的更好. 准备工作 保证机器上已安装好Xcode Command Line Tools,在安装了Xcode的情况下输入: xcode-select --install 编译依赖,需要用到brew brew install cmake git boost 编译安装 git clone --recursive https://github.com/rime/squirrel.git cd squirrel make deps make sudo make install 后面的工作就和从pkg安装一样了. 更新 在最近重新编译Squirrel 0.11.0 版本的时候遇到了问题. ** BUILD FAILED ** The following build commands failed: Ld xbuild/lib/Release/librime.1.4.0.dylib normal x86_64 (1 failure) make[1]: *** [release] Error 65 make: *** [librime] Error 2 在搜索了Squirrel的issues列表issues#247后发现是因为由brew安装的最新版 boost 1.68.0 会依赖icu4c,而这个依赖在Mac下并不存在. boost: stable 1.68.0 (bottled), HEAD Collection of portable C++ source libraries https://www. »

删除通过pkg安装的程序

Mac下安装程序是非常便捷的. 但是这仅仅是局限于dmg/App安装,当你使用pkg安装了程序而开发者又没有提供卸载工具而你又需要卸载的话就完全摸不着头脑了. 不过我们可以通过pkgutil这个工具来搞定. 我们以mtr这个软件为例,我们并不知道mtr.pkg到底安装了什么文件,那么可以先执行pkgutil --pkgs pkgutil --pkgs com.apple.pkg.OSX_10_13_IncompatibleAppList.16U1254 com.apple.pkg.CustomVoice_en_US_nora.16U1181 com.apple.pkg.update.os.10.13.1Supplemental.17B1003 com.apple.pkg.DevSDK_macOS1013_Public com.apple.pkg.XProtectPlistConfigData.16U4027 com.apple.pkg.MRTConfigData.16U4028 com.apple.pkg.CLTools_Executables com.apple.pkg.GatekeeperConfigData.16U1300 org.rudix.pkg.mtr # 这就是我们要找的pkg com.apple.pkg.XProtectPlistConfigData.16U4024 com.apple.pkg.update.os.10.13.2SupplementalPatch.17C205 com.apple.pkg.MRTConfigData.16U4017 com.apple.pkg.MRTConfigData.16U4013 com.apple.pkg.GatekeeperConfigData.16U1259 com.apple.pkg.GatekeeperConfigData.16U1265 com.apple.pkg.CLTools_SDK_OSX1012 com.apple.update.fullbundleupdate.17D47 com.apple.pkg.DevSDK com.apple.pkg.iTunesX.12.7.3.delta com.apple.pkg.EmbeddedOSFirmware com.apple.pkg.BridgeOSUpdateCustomer com.apple.pkg.XProtectPlistConfigData.16U4022 com.apple.pkg.CLTools_SDK_macOSSDK com.apple.pkg.iTunesX.12.7.delta .... 找到对应pkg的identify后执行pkgutil --files [identify] pkgutil --files org.rudix.pkg.mtr usr usr/local usr/local/bin usr/local/bin/mtr usr/local/share usr/local/share/doc usr/local/share/doc/mtr usr/local/share/doc/mtr/AUTHORS usr/local/share/doc/mtr/COPYING usr/local/share/doc/mtr/FORMATS usr/local/share/doc/mtr/NEWS usr/local/share/doc/mtr/README usr/local/share/doc/mtr/SECURITY usr/local/share/doc/mtr/TODO usr/local/share/man usr/local/share/man/man8 usr/local/share/man/man8/mtr.8 现在我们就知道mtr这个pkg包安装了哪些文件了. »

Author image 月杪 on #Mac,

在Mac上为Git配置代理

Mac上为iTerm2设置代理可以直接用 export http_proxy=http://127.0.0.1:6152/ export https_proxy=http://127.0.0.1:6152/ 但是对git并不那么奏效,因为git除了走https外还需要走ssh. 试了网上很多办法都不行,最后找到了这个办法: 先将connect(我自己clone到了github)克隆到本地 ==bitbucket上的版本需要做出一项改动才能在Mac上正确编译使用,还是直接使用GitHub上已经修改好的仓库吧==1 git clone https://github.com/moonagic/connect.git cd connect # 直接gcc编译 make # 然后将编译得到的文件connect拷贝到bin目录 cp connect /usr/local/bin 修改ssh配置文件(没有的话新建一个) vi ~/.ssh/config # 全局 ProxyCommand connect -S 127.0.0.1:1080 %h %p # 只为特定域名设定 Host github.com ProxyCommand connect -S 127.0.0.1:1080 %h %p 其中-S代表走socks代理,如果需要使用HTTP/HTTPS代理的话使用-H 现在走ssh协议的git就可以走代理了. 改动为将signal(SIGALRM, (__sighandler_t)sig_timeout);注释掉. ↩︎ »

Mac开发环境配置笔记

Xcode 安装 直接Mac App Store搞定. Command Line Tools 直接在终端输入 xcode-select --install 其他的会自动帮你完成 Sublime 很好用的跨平台编辑器,直接安装就好.然后按照[[Package Control] https://packagecontrol.io ]中的提示配置好Package Control(Sublime上的包管理工具) iTerm2+zsh 安装iTerm2 先下载iTerm2,用来替代系统默认的终端. 配色可以使用Solarized 如果下面使用agnoster主题的话可能需要安装字体PowerlineFonts 将zsh设为默认的shell 在终端输入 chsh -s /bin/zsh 然后重启iTerm2就可以了. 安装和配置oh-my-zsh 在终端输入 wget --no-check-certificate http://install.ohmyz.sh -O - | sh 安装好后修改配置文件~/.zshrc,可以直接在终端中用vi打开也可以使用Sublime打开编辑. 其他先不动,先将默认主题修改为自己熟悉的,比如agnoste.在配置文件中查找ZSH_THEME,然后设定为ZSH_THEME="agnoster".重启iTerm2后就能看到效果了. 为终端配置代理 首先安装Surge,或者其他代理工具. 配置好后在.zshrc中加入一行 export https_proxy=http://127.0.0.1:6152/ 现在终端的网络请求就可以通过Surge的代理规则分流了 需要取消的话使用 unset https_proxy Homebrew 终端输入 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 通过下列命令将/usr/local/bin添加至$PATH环境变量中 echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc CocoaPods 先更新一下gem sudo gem update --system -n /usr/local/bin 如果有必要的话Ruby源可以替换为阿里的地址,如果已经在前面配置好了终端的代理可以跳过. »

Author image 月杪 on #Mac,

How to Uninstall JDK on Mac OS X

Remove the Java Runtime sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane Removing the Java JDK cd /Library/Java/JavaVirtualMachines sudo rm -rf jdk*.jdk »

Author image 月杪 on #Mac,

在Debian上搭建适用于Surge的HTTPS代理

搭建某环境的时候需要编译一个Nginx的衍生版,由于在Linux上编译Nginx已经非常熟悉于是以为在Mac上应该也是顺手拈来.. 结果make的时候直接一个大大的

fatal error: 'openssl/ssl.h' file not found
»

Author image 月杪 on #Mac,

Mac安装mtr

在Linux上诊断路由最好用的莫过于mtr了,而到了OS X上却没有提供内置(Linux也没内置,但是只需要一个简单的命令就能安装了).于是需要我们自己来安装. 其实Mac上安装mtr也很简单,不过需要用到brew,如果你没有安装brew的话需要先安装一下: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 然后通过brew来直接安装 brew install mtr 安装结束后尝试使用的话会提示你command not found… 解决办法是在你的shell配置中通过alias将路径映射到mtr命令上 如果你的shell是zsh的话直接打开.zshrc加入一行 alias mtr=/usr/local/sbin/mtr /usr/local/sbin/mtr是mtr的安装路径,可能不同的机器路径不同,比如我的rMBP和iMac的安装路径就只有rMBP是这个路径.不过安装的时候会告诉你相关路径的. 现在再执行mtr结果提示unable to get raw sockets 这时候需要添加权限 sudo chown root mtr sudo chmod u+s mtr 然后就可以在Mac上愉快的使用mtr了. 更新(已过期) 目前通过brew安装的mtr使用有很大的问题,需要自己cd到指定目录才可以正常使用. 通过pkg安装mtr会好很多,pkg地址在mtr pkg. 2018-02-22 更新 上一次更新使用pkg安装虽然能使用,但是版本太老而且是纯黑的背景如果你控制台并不是纯黑的话会非常难受. 我卸载了使用pkg安装的mtr,还是选择使用brew源安装. 和以前不同的是我的安装路径到了/usr/local/Cellar/mtr/0.92/sbin. 我将该目录下的mtr以及mtr-packet拷贝到/usr/local/bin目录下,然后将这两个文件都添加权限就又可以正常使用了. 2018-07-14 更新 最新版不支持上面的操作了,老老实实加sudo吧. 2019-02-25 更新 目前发现无法以root执行的原因是在代码里手动做了判定,应该是出于权限安全原因. mtr.c文件中: /* mtr used to be suid root. It should not be with this version. We'll check so that we can notify people using installation mechanisms with obsolete assumptions. »

Author image 月杪 on #Mac,

Yosemite黑苹果折腾笔记

前天Yosemite发布正式版,于是就想着把台式机装上全新的Yosemite. 走的还是习惯的U盘安装路线, 1.一个8GB以上的U盘 2.MAS下载的原生系统安装盘 3.Clover的安装程式 折腾开始: 首先从原生安装程序里取出createinstallmedia(路径在/Contents/Resources/createinstallmedia),放到桌面上即可 然后将准备好的U盘重新分区, 再然后将原版的安装app写入U盘的Mac分区,在终端中输入如下命令: sudo /Users/你的用户名/Desktop/createinstallmedia --volume /Volumes/格式化时U盘的名称 --applicationpath /Applications/Install\ OS\ X\ Yosemite.app [--force] 确认后就会开始将安装程序移动到U盘中.(如果是白苹果的话到这一步就已经可以开始安装了) 在移动完成后开始在U盘上安装Clover引导, 在终端输入: mkdir /Volumes/EFI 然后打开Clover安装程序,在更改安装位置中选择U盘,然后选择自定义安装如图:(图片遗失了) 安装完成后在Finder中的EFI挂载盘里放入自己修改好的config.plist,以及在/CLOVER/kexts/中的10.10文件夹中放入FakeSMC(版本需要大于6.9.1315) config.plist中重要的几点就是开启kext-dev-mode以及设定机型,其他参数未动 到现在安装U盘已经制作好了. 几个有用的命令: diskutil list (用来查看分区列表) mkdir /Volumes/EFI (新建EFI挂载点) sudo mount -t msdos /dev/disk0s1 /Volumes/EFI/ (挂载EFI分区) 然后我们就可以从U盘引导开始安装系统了 网上教程都有说使用 Boot without caches and with extra kexts 或者 Boot with extra kexts 启动,但实际上我是直接启动的也没发现问题 安装会持续几分钟,并且在最后一秒停留足够长的时间,长到你以为可以直接摁restart了.. 然后会提示重启,在重启进入Clover后需要再次启动安装U盘,这一次会自动继续安装.显示需要的时间大概在16分钟. 安装好后从U盘的Clover引导直接启动Yosemite. 经过各种设定后就进入系统了,但是进入后我发现我的声卡和网卡是没有驱动的 使用MultiBeast安装相应驱动后重启基本就OK了. »

Author image 月杪 on #Mac,