解决macOS Mojave(10.14.6) SSH连接断开问题

在使用SSH客户端进行连接管理的时候如果长时间不输入命令, 服务器会自动断开连接, macOS Mojave(10.14.6) 系统上问题比较严重,即时服务端一直发送数据,也会出现连接中断的情况,导致长时间执行的远程 Shell 会大概率失败。


然后在配置文件尾部,增加如下内容:

同时,对于超长时间的SSH监控,需要设置屏幕关闭时不要让电脑休眠,否则依旧会断开,原因在于对端发送数据的时候,电脑休眠,对于长时间的空连接是没问题的,但是对于数据频繁发送的情况,是必须阻止电脑休眠的。如下图:
继续阅读解决macOS Mojave(10.14.6) SSH连接断开问题

macOS上使用Openconnect代替Cisco Anyconnect

OpenConnect 是一个 Cisco Anyconnect 的替代品,具有开源、易获取、可靠等优点。而官方版本的 Cisco Anyconnect 配置较为繁琐,需要在管理界面同时部署多平台客户端才能支持多平台。相比之下 OpenConnect 在这点就具有优势,可以在官方版本无法跨平台时替代使用。

命令行模式:

GUI 界面模式:

使用起来是非常简单的。

参考链接


MAC修改主机名/计算机名

mac安装完成以后会默认将你的机器设成"longsky's Macbook Pro"之类的名字。这个本身看着就不爽,如果这台机器是别人先用你再用的话,就想把它改掉了。如果你想改计算机名的话,直接去"系统设置"->"共享"里改计算机名(Computer Name)就好了。这样大家在网络邻居里看到的你的名字就可以了。
对于大多数用户来说到这里就完事了。但是对于系统管理员来说,每次打开终端的时候发现还有一个"longsky's Macbook Pro"的东东在那里还是感觉很不爽。估计这个想改的人少,笔者费了九牛二虎之力才在mac的一个论坛的不起眼的小角落翻出来修改它的命令:

继续阅读MAC修改主机名/计算机名

解决Tunnelblick网站无法下载的问题

最近在 macOS Mojave (10.14.5) 上使用 OpenVPN , 最方便的是使用 Tunnelblick 。但是 Tunnelblick 官方网站https://tunnelblick.net/? 无法正常访问。

替代的方法是通过 brew cask 安装,具体的安装命令如下:

macOS Mojave(10.14.4)系统Octave 5.1.0使用pause()函数无法响应按键事件

目前 ( 2019/04/24 ),在 macOS Mojave (10.14.4)系统上使用 brew install octave ,安装 Octave 5.1.0 之后,使用 pause() 函数无法在点击键盘之后继续执行,除了 Ctrl + C 之外任意键都不响应。正常情况下,点击任意按键之后,应该继续执行后续的代码。

这个是目前使用 brew 安装的 Octave 5.1.0 在编译的时候,关联的库是 glibc 2.28 之后的版本。这个版本上 glibc 2.28 的某些行为发生变动。具体的讨论信息,参考 bug #55029: pause() with no arguments does not return like kbhit() with glibc 2.28 上的讨论。本质就是 glibc 2.28 之后的版本要求应用程序在接收信息结束( EOF )之后,主动调用 clearerr (stdin); ,否则会收不到后续的按键通知。这个 BUGOctave 5.2 版本被修复,但是这个版本何时发布,暂时不定。

目前的修复方式为要求 brew 从最新版本的代码编译安装,而不是安装已发布版本,如下:

修改下载的编译配置文件,并且关闭文档编译( 目前文档编译会失败),也就是增加? --disable-docs 这个编译参数。

调整之后的编译脚本如下:

参考链接


brew报告错误“fatal: unable to access 'https://aomedia.googlesource.com/aom.git/': Failed to connect to aomedia.googlesource.com port 443: Operation timed out”

最近在使用 brew 升级应用的时候,报告如下错误:

众所周知的原因,很早之前,就已经不能访问 Google 的服务器了,因此这个错误是正常现象。

解决方法如下:

参考链接


OS X EI Capitan(10.11.6)执行brew upgrade cmake 升级到cmake-3.14.2报告错误“make: *** [all] Error 2”


继续阅读OS X EI Capitan(10.11.6)执行brew upgrade cmake 升级到cmake-3.14.2报告错误“make: *** [all] Error 2”

Use ccache with CMake for faster compilation

C and C++ compilers aren’t the fastest pieces of software out there and there’s no lack of programmer jokes based on tedium of waiting for their work to complete.

There are ways to fix the pain though - one of them is ccache. CCache improves compilation times by caching previously built object files in private cache and reusing them when you’re recompiling same objects with same parameters. Obviously it will not help if you’re compiling the code for the first time and it also won’t help if you often change compilation flags. Most C/C++ development however involves recompiling same object files with the same parameters and ccache helps alot.

For illustration, here’s the comparison of first and subsequent compilation times of a largish C++ project:

Original run with empty cache:

Recompilation with warm cache:

Installation

CCache is available in repositories on pretty much all distributions. On OS X use homebrew:

and on Debian-based distros use apt:

CMake configuration

After ccache is installed, you need to tell CMake to use it as a wrapper for the compiler. Add these lines to your CMakeLists.txt:

Rerun cmake and next make should use ccache for wrapper.

Usage with Android NDK

CCache can even be used on Android NDK - you just need to export NDK_CCACHE environment variable with path to ccache binary. ndk-build script will automatically use it. E.g.

(Note that on Debian/Ubuntu the path will probably be /usr/bin/ccache)

CCache statistics

To see if ccache is really working, you can use ccache -s command, which will display ccache statistics:

On second and all subsequent compilations the “cache hit” values should increase and thus show that ccache is working.

参考链接


Use ccache with CMake for faster compilation

macOS Mojave(10.14.3)安装qemu

Install Homebrew:

Install qemu:

参考链接


macOS Mojave(10.14.3)编译Vulkan例子项目


编译 assimp的时候出现如下错误:

这个原因是由于代码的BUG导致的,修改~/Vulkan/xcode/assimp/assimp-mac/code/D3MFImporter.cpp230代码即可。

其他编译错误无视即可,只要能编译出 libassimp.3.3.1.dylib 即可。

修复方式如下图:
继续阅读macOS Mojave(10.14.3)编译Vulkan例子项目