删除 Mac OS X 中“打开方式”里重复或无用的程序列表

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain user;killall Finder;echo “Open With has been rebuilt, Finder will relaunch

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system-domainuser;

MACOS下升级MySQL数据库

1. 官网下载新版本的MySQL

2.在设置中关闭MySQL数据库

3.安装数据库,安装好之后打开利用Spotlight打开/usr/local文件夹,就会看到两个版本的mysql数据库,这两个文件中都有data,还有mysql指针这个文件夹

4.首先将新版本中的data文件夹重命名为dataold,

sudo mv 新版本路径/data  新版本路径/dataold

5.将老版本中的data文件夹复制到新版本中

sudo cp -rf  老版本路径/data   新版本路径

6.然后设置正确的权限

sudo chown -R  _mysql /usr/local/mysql-5.7.19-osx10.12-x86_64/data //后面跟的是新版本中data的路径

7.启动Mysql 修复数据库

sudo /usr/local/mysql/support-files/mysql.server start

8.运行升级程序

/usr/local/mysql/bin/mysql_upgrade -u username -p

//输入你原来数据库的用户名和密码 ,如果先前设置了环境变量直接输入mysql_upgrade 即可,别忘了用户名和密码

9.重启mysql数据库

sudo /usr/local/mysql/support-files/mysql.server restart

10.查看版本号

mysql -u username -p

如何编译 LibreOffice

一、安装编译环境依赖
$ sudo dnf builddep libreoffice
$ sudo. dnf install. ccache # 安装 ccache,从而能够在重新编译时复用之前编译的缓存以加速编译。您也可以不用ccache$ ccache -M 10G # 将 ccache 缓存大小限制设置为 10G$ ccache –set-config=cache_dir=# 若空间不足,可将 ccache 的缓存目录设置为其他的位置(比如挂载的其他分区目录)$ sudodnf installpatch avahi-devel # builddep 没有安装好这两个编译依赖的包$ sudodnf installfakeroot rpm-build # 若您需要 rpm 或 deb 格式的安装包,则需要安装这两个依赖项
二、克隆源代码及子模块(git clone)
首先克隆主代码。此处克隆 libreoffice-7-1 分支。克隆时,因为我只需要最新的源代码(不需要历次的所有commit),因此使用了depth=1选项。
$ gitclone –depth=1–branch libreoffice-7-1 git://go.suokunlong.cn/lo/core ./libreoffice-7-1
正克隆到 ‘./libreoffice-7-1’…
remote: 枚举对象: 120360, 完成.
remote: 对象计数中: 100% (120360/120360), 完成.
remote: 压缩对象中: 100% (86011/86011), 完成.
remote: 总共 120360(差异 46040),复用 87907(差异 32504)
接收对象中: 100% (120360/120360), 272.72MiB |9.36MiB/s, 完成.
处理 delta 中: 100% (46040/46040), 完成.
正在更新文件: 100% (120889/120889), 完成.
然后,配置子模块。若不进行如下配置,则若启用中文用户界面选项,会默认去git.libreoffice.org克隆子模块代码,速度较慢并且无法观察克隆进展:
$ cdlibreoffice-7-1/
$ gitsubmodule init
子模组 ‘dictionaries’(https://git.libreoffice.org/dictionaries)已对路径 ‘dictionaries’注册
子模组 ‘helpcontent2’(https://git.libreoffice.org/help)已对路径 ‘helpcontent2’注册
子模组 ‘translations’(https://git.libreoffice.org/translations)已对路径 ‘translations’注册
我们编译时只需要 translations 子模块,没有启用帮助及词典,因此到 .git/config 中将 dictionaries 和 helpcontent2 两个子模块删除。然后,将translations模块的url修改为国内镜像地址(比如 git://go.suokunlong.cn/lo/translations),以加快克隆速度。
然后,抓取子模块。此处使用 –depth=1 选项以只获取最新的翻译字符串,并且使用 –progress 选项以显示克隆进展。
$ gitsubmodule update –progress –depth=1正克隆到 ‘/home/suokunlong/build/lo/libreoffice-7-1/translations’…
remote: 枚举对象: 45290, 完成.
remote: 对象计数中: 100% (45290/45290), 完成.
remote: 压缩对象中: 100% (11030/11030), 完成.
remote: 总共 45290(差异 22278),复用 37455(差异 14997)
接收对象中: 100% (45290/45290), 107.72MiB |7.20MiB/s, 完成.
处理 delta 中: 100% (22278/22278), 完成.
remote: 总共 0(差异 0),复用 0(差异 0)
remote: 枚举对象: 14403, 完成.
remote: 对象计数中: 100% (14403/14403), 完成.
remote: 压缩对象中: 100% (3316/3316), 完成.
remote: 总共 11565(差异 5892),复用 9773(差异 4229)
接收对象中: 100% (11565/11565), 89.61MiB |3.06MiB/s, 完成.
处理 delta 中: 100% (5892/5892), 完成 155个本地对象.
来自 git://go.suokunlong.cn/lo/translations

  • branch 4a12b40c8751323705d82539be43d04990f934a9 ->FETCH_HEAD
    子模组路径 ‘translations’:检出 ‘4a12b40c8751323705d82539be43d04990f934a9’
    最后,获取 external_tarballs. 这是 libreoffice 在编译时使用的第三方库等包,默认是从境外服务器去抓取,速度很慢。我已将常用的包放在了境内服务器,您需要从以下位置下载。可以使用下载器一次性全部下载,或者在下面的 make 阶段根据终端输出再去仅下载需要的文件。下载的文件请放置到下列autogen.input中设定的路径下。
    https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/
    三、配置编译选项(autogen.input)
    你可以不指定编译选项,直接按照下一部分介绍的 autogen.sh命令生成makefile,这样做就会按照默认的编译选项进行。你也可以将编译选项作为autogen.sh运行时的参数传递给它,这种情况下就会使用命令行参数作为编译选项。
    但最方便的是通过autogen.input来设置编译选项。这个文件仅在不存在任何命令行参数时才会生效。在克隆的源代码根目录下建立 autogen.input 文件,内容如下。完整的编译配置选项及其含义,见源代码根目录下的configure文件。

我一般直接在线浏览帮助文档,因此将帮助禁用了–without-help

–without-helppack-integration

启用简体及繁体中文用户界面–with-lang=zh-CN zh-TW

自己编译的话在线更新及崩溃报告功能就没啥用了,禁用–disable-online-update

–disable-breakpad

禁用 Office Development Kit。若启用 ODK,则额外需要doxygen依赖项。–disable-odk

–without-doxygen

若编译好之后您需要rpm (或deb)包,则需要启用下列两项:–enable-epm

–with-package-format=rpm

若您需要在多个不同版本的编译之间共享external_tarballs第三方源代码包,则可设置下列选项:# –with-external-tar=# 现在很多功能都用不到java了,因此我直接将其禁用–without-java

我需要用到firebird数据库,因此启用–enable-firebird-sdbc

–without-system-firebird
–enable-python=internal
四、编译(autogen.sh && make)
在源代码根目录下运行 autogen.sh。该脚本会调用 autogen.input中定义的编译选项。
./autogen.sh
若提示缺少某个包,则很可能是需要手动安装这个包的devel版本。若看到如下的提示,则表示autogen.sh运行无错误:


To build, run:
/usr/bin/make
To view some help, run:
/usr/bin/make helpAfter the build has finished successfully, you can immediately run what you built using the command:
instdir/program/soffice
If you want to run the smoketest, run:
/usr/bin/make check


此时就可以运行 make 命令进行编译了:
make
此时,若提示正在从 dev-www.libreoffice.org 下载各种包,但墙内速度很慢的情况下,可以按下 Ctrl-C键中断,然后手动从我的墙内缓存链接下载,并放入 –with-external-tar 编译选项指定的目录。也可以从其他任何地方下载,比如提示下载 Python-3.7.7.tar.xz 时也可以从 http://npm.taobao.org/mirrors/python/3.7.7/ 下载。
编译比较耗时。按照官方wiki上的说法,首次编译大约耗时约 = 8小时 / cpu核心数,后续更改源代码后增量编译耗时从几秒钟到几小时不等,取决于代码更改的程度。若需要频繁重新编译,则安装ccache包是个不错的选择,autogen.sh若检测到你安装了ccache则会自动启用。你也可以用icecream等分布式编译方式加速编译。
编译完成后,执行 .instdir/program/soffice 即可运行。若在autogen.input 中启用了 “–with_package_format=rpm deb” ,则生成的安装包在 workdir/installation中。

excel转markdown

源码和下载:

0.1.3

特性

  • 转换Excel表格到MarkDown表格
  • 支持Excel单元格带超链接,如果一个单元格,你右键添加了超链接,自动转成[text](url)
  • 如果Excel里有合并的跨行单元格,在转换后的MarkDown里是分开的单元格,这是因为MarkDown本身不支持跨行单元格
  • 如果Excel表格右侧有大量的空列,则会被自动裁剪,算法是根据前100行来检测并计算
  • 支持指定小数数字的精度
  • 支持使用表格首行代替表头(保持空表头)
  • 支持指定对齐方式

常规用例,文件转换

Mac OS 版本请在命令行下直接使用exceltk,不用带exe后缀,MacOS的安装包自动配置好环境变量

  • 整个表格
    • exceltk.exe -t md -xls xxx.xls
    • exceltk.exe -t md -xls xxx.xlsx
  • 指定sheet
    • exceltk.exe -t md -xls xx.xls -sheet sheetname
    • exceltk.exe -t md -xls xx.xlsx -sheet sheetname
  • 指定小数数字的精度,例如指定精确到小数点后2位数字
    • exceltk.exe -t md -p 2 -xls xxx.xls

解决在移动设备上表格不能自适应的问题

通过指定-bhead 选项解决,使用表格首行代替表头,表头用空的代替:

exceltk.exe -t md -bhead -xsl test.xsl

输出如下风格的markdown:

||||||||||||||
|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|
|**姓名**|**序号**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|
|某某某|34|6.86|6.86|6.86|6.86|6.86|6.86|6.86|6.86|6.86|6.86|6.86|

效果如下:

姓名序号积点和积点和积点和积点和积点和积点和积点和积点和积点和积点和积点和
某某某346.866.866.866.866.866.866.866.866.866.866.86

指定对齐方式

exceltk -t md -a r -xls example.xlsx

-a 参数指定对齐方式,可选参数是l,c,r,分别是左对齐、居中对齐、右对齐

腾讯云图