So Tired !_! 逆水行舟, 不进则退!

24Mar/20

homebrew安装和解决brew安装速度慢的问题

Posted by Nick Xu

homebrew安装

ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

解决brew安装速度慢的问题(替换homebrew镜像源)

1.替换brew.git:

cd $(brew --repo)
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git

2.替换homebrew-core.git:

cd $(brew --repo)/Library/Taps/homebrew/homebrew-core
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git

3.终端输入命令:

echo $SHELL 看输出结果是/bin/zsh还是/bin/bash

  • /bin/zsh替换homebrew-bottles:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc
  • /bin/bash替换homebrew-bottles:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile

4.恢复homebrew国内镜像源配置

  • 重置brew.git
cd $(brew --repo)
git remote set-url origin https://github.com/Homebrew/brew.git
  • 重置homebrew-core.git
cd $(brew --repo)/Library/Taps/homebrew/homebrew-core
git remote set-url origin https://github.com/Homebrew/homebrew-core.git
  • 重置homebrew-bottles
将刚添加到~/.bash_profile文件的语句注释掉即可

解决brew安装包一直卡在Updating Homebrew

运行命令brew install node,结果界面一直卡在Updating Homebrew上,有两种解决办法

方法一:关闭brew每次执行命令时的自动更新(推荐)

vim ~/.bash_profile
# 新增一行
export HOMEBREW_NO_AUTO_UPDATE=true

方法二(懒人方法):

出现Updating Homebrew的时候ctrl+c一下就行
Tagged as: Comments Off
14Feb/20

Mac 环境将 Socks 代理转 Http 代理

Posted by Nick Xu

安装 polipo

sudo port install polipo

快速使用

$ polipo socksParentProxy=localhost:1080

配置文件方式启用

 

# vi ~/.poliporc

socksParentProxy =127.0.0.1:1080″
socksProxyType = socks5
proxyAddress = "::0"        # both IPv4 and IPv6
# or IPv4 only
# proxyAddress = "0.0.0.0"
proxyPort = 8123

运行

$ polipo -c ~/.poliporc

测试

$ curl --proxy http://127.0.0.1:8123 https://www.google.com

配置开机自启动

参考链接:mac环境下开机自启动Shell脚本

参考链接

hg使用代理,向.hgrc的末尾添加以下内容:

   [hostfingerprints]
   vim.googlecode.com=c2:8a:1e:9c:a8:00:be:02:4c:2a:53:60:2b:09:50:d8:ee:5c:bc:68        
   [http_proxy]
   host=127.0.0.1:8087
   [web]
   cacerts = /etc/ssl/certs/ca-certificates.crt
Filed under: Mac OS Comments Off
25Aug/19

‘caching_sha2_password’ cannot be loaded

Posted by Nick Xu

django访问mysql数据库报错:

django.db.utils.OperationalError: (2059, "Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/Cellar/mysql-connector-c/6.1.11/lib/plugin/caching_sha2_password.so, 2): image not found")

mysql8.0用户密码加密方式为caching_sha2_password,django暂不支持,需要修改下mysql的加密方式:

登录mysql:

mysql -u root -p

查看当前加密方式:

use mysql;
select user,plugin from user where user='root';

修改加密方式:

alter user 'root'@'localhost' identified with mysql_native_password by 'password';

生效:

flush privileges;

作者:倪大头
链接:https://www.jianshu.com/p/939eb5157e83
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Filed under: Mac OS, 数据库 Comments Off
21Aug/19

mac解决安装mysql-python错误my_config.h

Posted by Nick Xu

brew install mysql
brew unlink mysql
brew install mysql-connector-c
sed -i -e 's/libs="$libs -l "/libs="$libs -lmysqlclient -lssl -lcrypto"/g' /usr/local/bin/mysql_config
pip install MySQL-python
brew unlink mysql-connector-c
brew link --overwrite mysql

出现下列错误:

ld: library not found for -lssl

解决:

sudo env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install MySQL-python

Filed under: Mac OS, Python Comments Off
19Aug/19

macOS Sierra 合上盖子不休眠的问题及解决办法

Posted by Nick Xu

一.问题(15年款的mbp)

本人上个月买的macbook pro,刚开始每天晚上睡觉都是直接合上盖子(开着一堆程序)系统会自动休眠,但是自从前几天升级了新系统Sierra之后就发现合上盖子竟然没有休眠(第二天早上起来发现掉了50%多的电,而且温度堪比暖宝宝),而且有个同事更新Sierra后也产生了和我一样的问题,经过上网查找及调试终于发现问题所在。

系统信息.png

二.解决

1.快速方法

如果是跟我一样在没更新系统之前休眠没有任何问题但是更新之后合上盖子无法休眠,请打开--系统偏好设置->节能->电池,会看到这一栏

节能-电池.png

如果你的电脑这里显示的是2分钟,那么打开terminal终端

终端.png

然后输入pmset -g custom 检查一下电源参数

电源相关参数

看到第二个红框(电池电源参数),然后往下找到displaysleep,sleep,和disksleep参数(找不到可以参考图片里面的红线),这三个参数的意思,我引用网络上的解答

displaysleep
Mac闲置多长时间后进入显示器睡眠,单位是分钟,这个时间不能长于sleep下设置的时间
sleep
Mac闲置多长时间后进入睡眠,这个系统偏好设置里也有,单位是分钟
disksleep
Mac闲置多长时间后关闭硬盘。这个系统偏好里也有,只不过换了一个字眼—如果可能,使硬盘进入睡眠—勾上这个的话系统就会自动根据sleep的时间设一个合适的时间。单位是秒,这个时间不能长于sleep下设置的时间

  • 时间的长度比较:sleep>=displaysleep>=disksleep
    从图中看出disksleep单位是秒,一般都是最短的,而sleep和displaysleep是单位是分,系统要求是sleep的时间要大于等于displaysleep的时间,而我图里sleep(1)小于display(2),它们之间的时间冲突了导致mac在电池状态下没有正常进入休眠,所以你需要回到--系统偏好设置->节能->电池,把时间改成5分钟(反正要大于2)就可以了,改完后这时在terminal输入pmset -g custom 对比这3个参数

    修改之后.png

只要符合sleep(min)>=displaysleep(min)>=disksleep就可以了,这样mac就可以正常休眠了。
ps:这个诡异的系统设置是15年款的macbook升级到sierra后有的,因为我找了很多同事的对比,他们captian系统的电源参数都是正常符合上述的式子的,可以正常休眠,然后15年款之前的升级到sierra参数也符合,就我和另外几个15年款的mac升级sierra后出现无法休眠问题。

2.其他导致无法休眠的原因及解决办法

  • 如果不是上述原因的话,那么就是你可能下载了某些软件会在mac合上盖子还会唤醒mac从而阻止休眠,这时候打开活动监视器然后点能耗查看,把防止睡眠中如果有程序是“是”就改成“否”。
    活动监视器
  • 重置SMC
  • 如果还不行,在terminal终端输入pmset -g assertions 可以查看日志,查出是什么程序唤醒,然后关闭,这里网上有许多教程:
    传送门1
    传送门2
    苹果官方文档

作者:codychen123
链接:https://www.jianshu.com/p/7b55f2bb3cbd
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Filed under: Mac OS Comments Off
15Aug/19

pycurl libcurl link-time ssl backend (openssl) is different from compile-time ssl backend (none/other)

Posted by Nick Xu

export PYCURL_SSL_LIBRARY=openssl

pip install pycurl --compile --no-cache-dir --global-option=build_ext --global-option="-L/usr/local/opt/openssl/lib" --global-option="-I/usr/local/opt/openssl/include"

Tagged as: Comments Off
7Dec/18

(苹果Mac OSX系统)绿联USB无法连接网络解决方案

Posted by Nick Xu

检测驱动是否装载:

sudo kextload /Library/Extensions/AX88772.kext
1
note:如果已装载成功,则执行成功,否则显示错误提示。

操作如下:
step1:关机重启立马按住command+R,等待进入language界面。
step2:按需求选择后,在工具栏打开终端。
step3:输入csrutil status查看当前状态,状态为enabled。
step4:输入csrutil disable,关闭System Integrity Protection。
step5:重启电脑。
再次重新装载,如若查看还未装载成功,请下载最新驱动AX88179。
---------------------
作者:shannon-Li
来源:CSDN
原文:https://blog.csdn.net/weixin_42555131/article/details/81843315
版权声明:本文为博主原创文章,转载请附上博文链接!

Filed under: Mac OS Comments Off
23Oct/18

关于 “does not contain bitcode.”的错误解决办法

Posted by Nick Xu

Xcode7运行项目时出现了如下的错误:

does not contain bitcode. You must rebuild it with bitcode enabled
(Xcode setting ENABLE_BITCODE), obtain an updated library from the
vendor, or disable bitcode for this target. for architecture armv7

关于什么bitcode的错误,那bitcode是个什么鬼呢?

什么是 bitcode ?

通俗解释:在线版安卓ART模式。

Apple 官方文档– App Distribution Guide – App Thinning (iOS, watchOS) 是这样定义的:

Bitcode is an intermediate representation of a compiled program. Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the App Store. Including bitcode will allow Apple to re-optimize your app binary in the future without the need to submit a new version of your app to the store.

翻译过来就是:

bitcode 是被编译程序的一种中间形式的代码。包含 bitcode 配置的程序将会在 App Store 上被编译和链接。 bitcode 允许苹果在后期重新优化我们程序的二进制文件,而不需要我们重新提交一个新的版本到 App Store 上。

在 Xcode简介— What’s New in Xcode-New Features in Xcode 7 中这样描述:

Bitcode. When you archive for submission to the App Store, Xcode will compile your app into an intermediate representation. The App Store will then compile the bitcode down into the 64 or 32 bit executables as necessary.

也就是

当我们提交程序到 App Store上时, Xcode 会将程序编译为一个中间表现形式( bitcode )。然后 App store 会再将这个 bitcode 编译为可执行的64位或32位程序。

请看这里 http://blog.csdn.net/soindy/article/details/48518717

如果你的应用也准备启用 Bitcode 编译机制,就需要注意以下几点:

Xcode 7默认开启 Bitcode ,如果应用开启 Bitcode,那么其集成的其他第三方库也需要是 Bitcode编译的包才能真正进行 Bitcode 编译

开启 Bitcode 编译后,编译产生的 .app 体积会变大(中间代码,不是用户下载的包),且 .dSYM文件不能用来崩溃日志的符号化(用户下载的包是 Apple 服务重新编译产生的,有产生新的符号文件)

通过 Archive 方式上传 AppStore 的包,可以在Xcode的Organizer工具中下载对应安装包的新的符号文件

出现的问题原因是什么呢?

原来是某些二进制库不支持bitcode.而Xcode默认是要支持bitcode的,而且如果支持的话,其中所有的二进制库和framework都必须包含bitcode.

怎么样解决呢?

我们可以直接将bitcode直接关掉就可以了。target —> Built Seeting —>搜索 bitcode —>将Yes置为No
---------------------
作者:ismilesky
来源:CSDN
原文:https://blog.csdn.net/ismilesky/article/details/50721365
版权声明:本文为博主原创文章,转载请附上博文链接!

Filed under: Mac OS Comments Off
23Oct/18

如何隐藏SDK中(.a库之间的冲突)符号 iOS/C/C++

Posted by Nick Xu

一、 问题引入

在当下的开发中,应用的功能做的越来越复杂,工程也越来越大,所以为了

尽可能缩短开发周期,不可避免的会用到许多第三方库,随之而来的也会遇到好

多问题。比如,程序调用函数funa,funa函数从在于两个库liba.a,libb.a中,

并且程序执行需要连接这两个库,那么程序执行时是调用liba.a中funa还是调用

的libb.a中的funa呢?

其实这个取决于链接时的顺序,比如先链接的liba.a,这个时候通过liba.a的导出符号表就可以找到funa在liba.a中定义,并加入符号表中;链接libb.a的

时候发现符号表已经存在funa,就不会再次更新符号表,所以调用的始终是liba.a中的funa函数。

这里的调用严重的依赖于链接库加载的顺序,很大程度上会导致混论。作为SDK的提供者,我们尤其要避免这点。

正常我们使用的库中包含了好多符号信息,如图1所示:

图1

这些符号信息有以下几个弊端:

1、增大了库的体积;

2、隐蔽性较差;

3、容易带来冲突。在开发过程中第三点带来的问题尤其严重,特别是当我们提供的SDK用到第

三方库的时候(因为使用我们SDK的客户也有可能用到跟我们一样的第三方库)。

二、 解决办法

1、对第三方库处理  (C/C++)

下面继续以x264(下文以libx264.a带过)为例说明如何编译第三方的库。

没有隐藏符号的第三方库如“图1”所示,函数前面会带有external的标示。

在最终对外发布的SDK中_x264_predict_16x16_dc_c还是打着external的标签,

及对外可见。如图2所示:

图2

隐藏符号后,在libx264.a中,原先打上external标签的函数,会以private external标识。如图3所示:

图3

那么如何才能得到我们想要的、打上private external标签的库呢,有两种方

法可以做到。

1)对每个函数加属性__attribute__((visibility(“hidden”))) void funa_hidden()

{

printf(“hidden symbol\n”);

}

void funa_visible()

{

printf(“exported symbol”);

}

这样做的好处是可以根据需要对每个函数做定制处理。但若我们用到的三方库代码量大,这种方法就是费时费力了。

2)编译库时统一处理

利用gcc的扩展属性,编译库时加上-fvisibility=hidden。

a)静态库

gcc –static –o libtest.a –fvisibility=hidden –c test.c

b)动态库

gcc –dynamic –o libtest.so –fvisility=hidden –c test.c,其中dynamic为clang的写法,大部分gcc写法为shared。

上边两种方法只处理了c/c++,因为语法问题,汇编需要做特殊里,但也是在函数头加属性,但它的属性写法为.private_extern。.macro function name, export=0, align=2

.macro endfunc

ELF .size \name, .

- \name

FUNC .endfunc

.purgem endfunc

.endm

.text

.align \align

.if \export

.global EXTERN_ASM\name

ELF .type EXTERN_ASM\name, %function

FUNC .func EXTERN_ASM\name

EXTERN_ASM\name:

.private_extern

EXTERN_ASM\name

.else

ELF .type

FUNC .func    \name:   .endif

.endm

\name, %function

\name

因为需要处理的汇编文件较少,所以对汇编采用了直接编辑源文件的方法。

其实个人觉得也应该能在编译时做统一处理,有兴趣的可以自己找一下方法。

2、对xcode工程的处理 (iOS)

对xcode工程处理相对直观、简单了许多。只需在工程的设置里做如下处理。

1)打开工程设置,跳转到build setting页面;

2)搜索hidden;

3)将Symbols Hidden by Default设置Yes;

图4

其实通过观察编译的过程可以发现,通过上述设置,苹果最终将其转化为步

骤1的命令进行编译。编译的结果也是在库里加了private external而已。

3、符号剥离

最后一步,也是最关键的一步,就是真正将步骤1或步骤2中打上private

external标签的函数做最终的处理,把它们从要发布的库里剥离。

1)首先设置prelink

在target的build setting里搜索prelink,将Perform Single-Object Prelink置为

Yes,然后把该工程需要的库都直接拖到Prelink libraries中。如图5所示:

图5

2)设置 post process

将Deployment Postprocessing置为Yes。如图6所示:

图6

3)设置剥离方式

将Strip Style设置为Non-Global Symbols。如图7所示:

图7

到目前为止,所有的设置都已经完成,接下来编译。有兴趣的同学可以观察

一下编译的过程,会发现通过设置prelink,xcode会将库里所有的目标文件根据

你支持的architecture分类打包,如libxxx-armv7-master.o/libxxx-arm64-master.o,

最后一步执行Strip命令将所有需要隐藏的符号剥离。

作者:atme
链接:https://www.jianshu.com/p/761fca990325
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Filed under: Mac OS Comments Off
25Jul/18

H3C交换机 从console口配置 到设置远程访问(web/telnet)

Posted by Nick Xu

一、console口配置:

现在一般的电脑没有装配com的公口,所以,需要另外购买1根转换线。这里先说原装线的配置:

1、使用交换机自带的,rj45(及网线口)转com(RS232,9孔)线:
买了线才发现,台式服务器(IBM)后面是有这个接口的(机柜式服务器不确定)。
(1)插上线后,xp,打开超级终端;win7、win2008等等,推荐SecureCRT,比网上找的其他的软件好用多了!!
(2)随便写个名字,选择com1端口(!这个很重要!),具体的参数最好按照说明指导书设置,说明指导书可以通过搜索H3C网站相关型号找到。也可以直接点下“恢复默认设置”。
(3)我的经验是,如果只有光标在闪,那么按下回车键,就会出来信息了。

2、使用rj45(网口)转USB线:
(1)首先安装这条线的驱动;
(2)插上线后,xp,打开超级终端;win7、win2008等等,推荐SecureCRT,比网上找的其他的软件好用多了!!
(3)随便写个名字,选择的端口要看“设备管理器”中,“端口”项目中多出来的那个“service。。。”是com几,比如,我的就是“com3”(!这个很重要!),具体的参数最好按照说明指导书设置,说明指导书可以通过搜索H3C网站相关型号找到。也可以直接点下“恢复默认设置”。
(4)我的经验是,如果只有光标在闪,那么按下回车键,就会出来信息了。

二、配置远程访问,包括http和telnet访问:
(1)配置ip和http访问:
sys
[h3c]interface vlan 1  //进入vlan1进行配置
[h3c-vlan-interface1]ip address 192.168.1.1 255.255.255.0 //设置交换机的ip地址
[h3c-vlan-interface1]quit

(1) Device

# Web 用 名为 admin, 为 admin, 为 http,用 为 network-admin。 [Sysname] local-user admin

[Sysname-luser-manage-admin] service-type http
[Sysname-luser-manage-admin] authorization-attribute user-role network-admin

[Sysname-luser-manage-admin] password simple admin

[Sysname-luser-manage-admin] quit

# HTTP 。
[Sysname] ip http enable
(2) PC
在 PC 的 内 的 IP 并 , 示 Web 面。
在 Web 用 对 中 用 名、 及 , < > 可 , 示 Web 面。成 ,用 可以在 对 进行 。

 

(2)配置telnet访问:
sys
[h3c]telnet server enable  //设置允许telnet服务
[h3c]user-interface vty 0  //
[h3c-vty-0]authentication-mode scheme //设置访问模式,包括none(无账户无密码)、password(无账户有密码)、scheme(有账户有密码)
[h3c-vty-0]quit
[h3c]local-user 你的用户名
“[h3c-user-]password cipher 你的密码”//如果之前设置了可以不用写了
“[h3c-user-]anthorization-attribute level 3 “ //设置访问级别  //如果之前设置了可以不用写了
[h3c-user-]service-type telnet//设置该账户的访问模式
[h3c-user-]quit

(3)访问:
之后就可以通过网页访问交换机了,网页输入192.168.1.1,就会进入交换机的登录页面;
xp可以直接在运行里输入”telnet 192.168.1.1“,win7等系统,需要先安装telnet服务,在”程序“,”安装windows功能“里就可以安装了。

Filed under: Linux, Mac OS Comments Off
site
site