macOS Catalina 10.15.x 系统根目录只读问题解决方法

 mac, macpro  macOS Catalina 10.15.x 系统根目录只读问题解决方法已关闭评论
1月 202020
 

macOS Catalina苹果新系统升级了根目录的文件权限,变成只读了,这么做对开发者来说简直就是灾难,好多原来的项目都不能运行了。(我原来用来破解intellidea/pycharm/webstorm的jetbrains-agent.jar 文件放在根目录/data/下,点击intellidea/pycharm/webstorm都无法启动,原来以为是jdk的问题,后来发现就是升级了Catalina新系统后,新系统居然删除了我的/data目录😱😱😱😱😱)

 

解决根目录只读的办法如下:

1. 关掉SIP(系统安全保护)
2. 重新挂载根目录
3. 重新启动项目

具体操作:
一、关掉SIP需要重新启动按住 Command + R 进入 macOS 恢复系统,在实用工具里面点击终端,加上下面这一句代码按下会车,看见successfully…之后重新启动

csrutil disable

二、重新挂载根目录需要在终端输入下面这句代码
sudo mount -uw /

三、最后就可以在根目录创建文件夹了并赋权 sudo mkdir /xxx,sudo chmod 777 /xxx

原来有启动Finder的,最好重启Finder再新建文件夹,让这次允许读写的配置在Finder中生效
killall Finder

macos 10.15.x catalina could not be verified/ xcode 11 An unknown error occurred. See the install log for more details.

 mac, macpro, xcode, 开发  macos 10.15.x catalina could not be verified/ xcode 11 An unknown error occurred. See the install log for more details.已关闭评论
1月 202020
 

2012 macpro  升级 macos 到 10.15.2  catalina  并 安装 新xcode时碰到下列问题,供其他碰到的同学参考。

  • 问题1.  “macOS Catalina” could not be verified, 在”系统偏好设置 ” -> “软件更新”下下载完catalina更新包后点安装,提示  “macOS Catalina” could not be verified.
    解决办法:打开“ 系统偏好设置”->“日期与时间”->去掉打勾”自动设置日期与时间”, 重启机器,并再次软件更新并安装。

Go to settings then date&time. Click and then unclick “set date and time automatically”. Save the changes by clicking the lock.

Then restart the computer and proceed to download the update once again through settings and software update. It resolved the issue of the update not being verified.

 

  • 问题2. macos catalina安装完,打开xcode时,提示“An unknown error occurred. See the install log for more details.”

解决方法:

  • 这个问题再次在Xcode 11.1出现,是有个证书在2019年的10月份某天过期引起的。
  • 你可以通过暂时把系统日期修改到过期的日期之前来解决。
  • 在Xcode 11这个版本下,设置系统日期为2019年10月3日,然后运行Xcode,再安装组件,(就可以安装成功了),完成之后再把系统日期改回正常状态。
  • This problem has once again appeared in Xcode 11.1 and is caused by an invalid certificate that expired some day in October 2019.
  • You can work around the problem by temporarily changing the system date to before the certificate expiration date.
  • In the case of Xcode 11, set the system date to Oct 3, 2019, run Xcode, then change the date back after the components have installed.

苹果公司就这么把版本放出来也是醉了!

 

 

Telegram连接MTProxy时一直connecting问题

 linux  Telegram连接MTProxy时一直connecting问题已关闭评论
12月 272019
 

我们一般使用Telegram的时候,都需要先爬Qiang,这样还是比较麻烦的,而在Telegram最新版本中内置了MTProxy代理,占用小,耗电量也小,只需要我们简单设置下,就可以让Telegram和本地应用一样,即开即用,而不需要额外的爬Qiang了。

什么是Telegram MTProxy

Telegram MTProxy是Telegram官方出的一个轻量级的代理工具,可以直接配置在Telegram客户端中,不需要开启其他代理就可以直连Telegram。官方地址:Telegram MTProxy

Telegram MTProxy安装

MTProxy具体搭建过程见:https://github.com/TelegramMessenger/MTProxy

如果觉得麻烦也可以使用一键安装方式:https://github.com/FunctionClub/MTProxy-Bash

 

MTProxy 一直Connecting问题排查

情况说明:

  • Google Cloud Platform (GCP) 安装了MTProxy并正常启动(<secret>、proxy-secret、proxy-multi.conf为上面安装步骤中产生的对应文件或字符)。
./mtproto-proxy -u nobody -p 8888 -H 8443 -S <secret> --aes-pwd proxy-secret proxy-multi.conf -M 1
  • gcp上打开了8443入口的访问

 

但启动telegram客户端使用mtproxy代理时输入ip、host和secret后,始终在connecting状态,在gcp上可以看到对应端口的连接都有,但就是连接不上。

  1. 网上一种说法是:因为gcp时间与运行telegram客户端机器时间不同步,可在gcp上安装个ntp服务同步时间解决,但不适用与我这边的情况。
  2. 我这里通过下面步骤解决:使用阿里云服务器或者AWS服务器或GCP搭建Telegram MTProxy时,发现这个MTProxy绑定的是内网IP,解决方案也很简单,使用NAT模式就行,指定内网IP和外网IP, 启动命令行里需要加入  –nat-info <intranet ip>:<public ip>, 上面的启动命令变为:

./mtproto-proxy -u nobody -p 8888 -H 8443 -S <secret> –nat-info <intranet ip内网ip>:<public ip外网ip> –aes-pwd proxy-secret proxy-multi.conf -M 1

supervisord管理python进程时print(stdout)日志输出不及时,甚至有缺失问题解决

 python, supervisord  supervisord管理python进程时print(stdout)日志输出不及时,甚至有缺失问题解决已关闭评论
12月 192019
 

使用supervisord管理python进程,代码中print()打印的日志在使用tail -f查看时输出总是不及时,甚至有缺失问题,网络上有下面的几种方式解决:

If you are also using Supervisor to monitor and heal your long running Python projects and observed that output of your program is not being logged to stdout_logfile, it is because Python print statement does not automatically flush output to STDOUT.

One solution is using sys.stdout.flush() frequently to flush the output or if you are using Python 3.3, print(msg, flush=True) is another solution. However, a better solution is to run python with -u parameter (unbuffered mode).

以上总结方法:

  1. 频繁使用sys.stdout.flush()
  2. python3.3以后版本,print使用print(msg, flush=True)
  3. supervisord配置文件里command命令行添加-u参数(这个是最推荐的方法)

举例:

[program:analysis]
command = python -u AnalysisTest.py -port=70%(process_num)02d

S3fs在Amazon EC2 Linux实例上挂载S3存储桶后,使用ls出现“cannot open directory alert/: Operation not permitted”解决办法

 aws  S3fs在Amazon EC2 Linux实例上挂载S3存储桶后,使用ls出现“cannot open directory alert/: Operation not permitted”解决办法已关闭评论
12月 182019
 

利用S3fs在Amazon EC2 Linux实例上挂载S3存储桶请见下面文章
https://aws.amazon.com/cn/blogs/china/s3fs-amazon-ec2-linux/

 

在挂载了s3存储桶后,使用ls命令列出存储桶目录时,出现“cannot open directory alert/: Operation not permitted”,可以使用下面的方式解决:

在进行挂载时,添加当前用户的uid,gid及umask参数(关于当前用户的uid及gid查看可以使用id命令):
-o uid=1000 -o gid=1000 -o umask=0077

xcode下已经使用 “Automatically manage signing”,还提示“is automatically signed, but provisioning profile 1fe1af09-c71e-4300-94d8-76d14cec2eb4 has been manually specified. Set the provisioning profile value to “Automatic” in the build settings editor, or switch to manual signing in the Signing & Capabilities editor.”解决方案

 开发  xcode下已经使用 “Automatically manage signing”,还提示“is automatically signed, but provisioning profile 1fe1af09-c71e-4300-94d8-76d14cec2eb4 has been manually specified. Set the provisioning profile value to “Automatic” in the build settings editor, or switch to manual signing in the Signing & Capabilities editor.”解决方案已关闭评论
12月 092019
 

xcode项目签名已经使用 “Automatically manage signing”,但还是提示如下:

XXXXXX is automatically signed, but provisioning profile 1fe1af09-c71e-4300-94d8-76d14cec2eb4 has been manually specified. Set the provisioning profile value to “Automatic” in the build settings editor, or switch to manual signing in the Signing & Capabilities editor.

记录下自己错误提示中黑体字位置部分的文字:“1fe1af09-c71e-4300-94d8-76d14cec2eb4”

试下下面的方法:

  1.  右键点击 项目文件  xxxx.xcodeproj –> 显示包内容(Show Package Contents)–> 打开并编辑 project.pbxproj
  2. 在project.pbxproj 搜索“1fe1af09-c71e-4300-94d8-76d14cec2eb4”,找到对应的行,删除
  3. 再次进入xcode,使用“Automatically manage signing”,Done!

pm2修改配置文件后,restart未重新加载问题解决

 pm2  pm2修改配置文件后,restart未重新加载问题解决已关闭评论
11月 092019
 

修改了pm2的配置文件,发现使用下面命令都无效,配置就是没更新:

无效命令(Invalid):
pm2 reload config.json
网上也有说用下面的命令,我这边也无效
pm2 startOrReload config.js –update-env

后来只能使用删除项目后再启动方式OK:
以下有效(valid):
pm2 delete all
pm2 restart config.json

mac下使用pip安装模块时,出现错误提示:     “must supply either home or prefix/exec-prefix — not both”

 mac, python  mac下使用pip安装模块时,出现错误提示:     “must supply either home or prefix/exec-prefix — not both”已关闭评论
10月 232019
 

mac下使用pip安装时,出现错误提示:

    “must supply either home or prefix/exec-prefix — not both”

DistutilsOptionError: must supply either home or prefix/exec-prefix — not both

 

参考Homebrew python页 https://github.com/Homebrew/brew/blob/master/docs/Homebrew-and-Python.md

在文件~/.pydistutils.cfg中加入如下内容:

[install]

prefix=

 

再pip安装即可!

xcode 升级后使用模拟器提示“The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated” 解决方案

 swift  xcode 升级后使用模拟器提示“The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated” 解决方案已关闭评论
10月 082019
 

xcode 升级后使用模拟器提示“The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated” 解决方案

 

在终端运行 :

xcrun simctl spawn booted log config --mode "level:off"  --subsystem com.apple.CoreTelephony
DONE!

云服务器EC2配置Swap分区解决Cannot Allocate Memory

 centos  云服务器EC2配置Swap分区解决Cannot Allocate Memory已关闭评论
9月 192019
 

今天在EC2(Centos 7)上使用nvm 安装node时出现下面错误提示:

# nvm install 8.16.1
Downloading and installing node v8.16.1…
Downloading https://nodejs.org/dist/v8.16.1/node-v8.16.1-linux-x64.tar.xz…
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
xz: (stdin): Cannot allocate memory
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Binary download failed, trying source.
Downloading https://nodejs.org/dist/v8.16.1/node-v8.16.1.tar.xz…
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
xz: (stdin): Cannot allocate memory
tar: Child returned status 1
tar: Error is not recoverable: exiting now
nvm: install v8.16.1 failed!

这台EC2内存只有1G,看来需要配个交换分区。

 

步骤

# 创建一个全0填充的2GB文件。InputFile利用Linux系统的/dev/zero。bs是BlockSize。

sudo dd if=/dev/zero of=/mnt/2GB.swap bs=1M count=2048

 

# 把该文件格式化为Swap文件

sudo mkswap /mnt/2GB.swap

 

# 把该Swap文件挂载为Swap分区

sudo swapon /mnt/2GB.swap

 

# 检查是否成功挂载。Swap那一行现在就不是0了。

$ free -m

total        used        free      shared  buff/cache   available

Mem:            963         677          74          78         211          52

Swap:          2047          84        1963

# 配置fstab,使开机时自动挂载Swap文件为Swap分区

sudo vim /etc/fstab

 

# 在/ect/fstab中添加

/mnt/2GB.swap none swap sw 0 0