石榴骑士的小站

面向工资编程


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

在CentOS7上搭建自用Git服务器

发表于 2018-04-02 | 更新于 2019-01-08 | 分类于 操作系统

创建单独的 git 用户,并切换到新创建的用户。

1
2
3
adduser git
passwd git
su git -

在根目录下创建单独的仓库根文件夹,方便管理。仓库根文件夹要设置为 git 用户所有。

1
2
mkdir /repositories
chown -R git:git /repositories

初始化新的空仓库,仓库名通常都以.git结尾

1
git init --bare /repositories/sample.git

创建公钥用来连接SSH,这里可以直接在客户端生成然后用sftp传输公钥到.ssh文件夹。注意要把.ssh文件夹和authorized_keys文件的权限分别改为700和600,否则无法验证。

1
2
3
4
mkdir /home/git/.ssh
chmod 700 /home/git/.ssh
cat /home/git/.ssh/test_rsa.pub >> /home/git/.ssh/authorized_keys
chmod 600 /home/git/.ssh/authorized_keys

禁止git用户登录Shell,编辑/etc/passwd文件,找到类似以下行

git:x:1001:1001::/home/git:/bin/bash

修改成

git:x:1001:1001::/home/git:/usr/bin/git-shell

接下来就可以使用Url ssh://git@Address:Port/repositories/sample.git 来访问仓库了。

搬瓦工VPS搭建SS服务器

发表于 2018-04-01 | 更新于 2019-01-06 | 分类于 操作系统

目录

  • 系统环境准备
  • 安装ShadowSocks

系统环境准备

  搬瓦工默认给我安装的是CentOS6_X86 bbr,于是第一件事就是果断重新安装成CentOS7。所有VPS的设置都在KiwiVM的控制台里面。

  重新安装好系统之后第一件事就是修改root用户的密码,避免弱口令。然后新建一个普通用户并为它配置sudo权限。

1
2
3
adduser username
passwd username
vi sudo # 在配置中添加一行: username ALL=(ALL) NOPASSWD: ALL

  由于是开放在外网,当然要配置防火墙

1
yum install firewalld -y

  防火墙根据需要来配置

1
2
3
firewall-cmd --zone=public --remove-service=ssh # 用其它端口连接ssh,移除默认的
firewall-cmd --zone=public --add-port=12345/tcp # 允许SSH
firewall-cmd --zone=public --add-port=54321/tcp # 允许ShadowSock

  这些琐事完成之后就可以切换到普通用户来安装Python了。

1
2
3
4
5
6
7
8
9
10
11
yum install wget git gcc gcc-c++ zlib zlib-devel openssl-devel -y
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar xf Python-3.6.5.tgz
cd Python-3.6.5
vi Modules/Setup # 搜索关键字 zlib 和 ssl 去掉zlib和ssl依赖的注释
./configure --prefix=/usr/local/python36 --enable-optimizations
make && make install
rm -rf /usr/bin/python # 删掉默认的Python链接修改成Python3
ln -s /usr/local/python/bin/python3.6 /usr/bin/python
ln -s /usr/local/python/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python36/bin/pip3 /usr/bin/pip

  由于上面将系统默认的python链接改成了Python3,yum、firewalld等组件会无法运行,修改下面几个文件可以解决

  • /usr/libexec/urlgrabber-ext-down
  • /usr/bin/yum
  • /usr/bin/firewall-cmd
  • /usr/bin/firewall-offline-cmd
  • /usr/sbin/firewalld

首行usr/bin/python 修改为 /usr/bin/python2

安装ShadowSocks

http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed19fa950d100b8d354816d3382bd7a744228b8e1bd32200101931feb821291305d9c57d670aae495efeb56b32610c64f5dadf893acacb943f58ff3044060bf54b05d269ee8a&p=8b2a970c939550f708e2947d095695&newp=8b2a970689970eff57ed977a52078f231610db2151d4d7116b82c825d7331b001c3bbfb423251101d8c376630baf435ae9f63c79310523a3dda5c91d9fb4c57479cb78603f&user=baidu&fm=sc&query=vps%B4%EE%BD%A8ss&qid=d36f268b00033903&p1=2

在CentOS7上编译OpenCVSharp

发表于 2018-03-30 | 更新于 2019-01-08 | 分类于 .Net

目录

  • 编译库
  • 遇到的坑

  公司一个项目的要求有点奇葩,要用OpenCV做运动检测,不能用Python和C++且必须部署在Linux系统上。由于公司没人做Java于是只能寄希望于.net core了。

  GitHub上有一个OpenCV的Wraper项目OpenCvSharp支持.net core和.net standard,950+ star似乎挺可靠,于是果断添加它的包 OpenCvSharp3-AnyCPU。

  仔细看了下,整个包有3个主要库文件:OpenCvSharp.dll为OpenCV的.net包装,OpenCvSharpExtern.dll和opencv_ffmpeg341.dll为NativeDll,没有提供Linux对应的库。要想在Linux下面使用这个包,关键是要重新编译OpenCvSharpExtern.dll。

编译库

  • 编译CMake

下载、编译CMake的过程

curl https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz -o cmake-3.11.0.tar.gz --progress
tar zxf cmake-3.11.0-Linux-x86_64.tar.gz
cd cmake-3.11.0
makdir bin
cd bin
./bootstrap
make
  • 编译OpenCV

下载、编译OpenCV的过程

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout tags/3.4.1
mkdir bin
cd bin
cmake  -DCMAKE_BUILD_TYPE=Release ..
make
  • 编译OpenCvSharp

下载、编译OpenCvSharp的过程

git clone https://github.com/shimat/opencvsharp.git
cd opencvsharp
git checkout tags/3.4.1.20180320
mkdir bin
cd bin
cmake  -DCMAKE_BUILD_TYPE=Release ..

遇到的坑

  由于缺少一些opencvsharp自带的文件,编译时需要将opencvsharp/opencv_files_*/include/opencv2文件夹拷贝到/usr/local/include文件夹中,不需要覆盖已存在的文件。

  编译完成后生成的libOpenCvSharpExtern.so不能放到类似/usr/local/lib这样的库文件夹而应该跟Nuget包OpenCvSharp3-AnyCPU放在一起:lib\netcoreapp1.0\OpenCvSharp.dll所在的目录。否则无法被.net core找到并加载。

借助GitHub-Pages配合Jekyll构建个人博客站点

发表于 2018-02-27 | 更新于 2019-01-08

目录

  • Quick Setup
  • Fork 指南
  • 经验和遇到的坑

Quick Setup

  Jekyll是基于Ruby的工具,首先需要安装Ruby,Ruby的官方网站可以下载。安装好后会自动弹出命令提示符窗口询问是否安装msys2,因为后面需要用 gem 安装Jekyll,所以这里选择安装 msys2 和 MinGW dev toolchain。之后是gem,gem可以在(rubygems.org)[https://rubygems.org/pages/download]下载,安装完后重新打开命令提示符,用 gem install 命令安装以下几个gem包:

Jekyll 这个不用说了
kramdown markdown转html
liquid liquid Template
github-pages for building Jekyll sites with any GitHub-hosted theme
tzinfo Ruby Timezone Library
tzinfo-data 为tzinfo提供windows系统上的支持

到这里,所有需要安装的东西就都结束了。

Fork 指南

  博客的模板问题有两种选择:直接fork其他人的现成项目,这个最省事基本不用修改;去Jekyll Themes下载模板修改这个最麻烦,博主之前就是打算下载空的模板来修改,现学现卖liquid与Jekyll。弄到半路想想看其实部署个博客不就是来记录自己平常项目的经验经历嘛,这样造轮子完全背离了自己的初衷,干嘛不直接“拿来”个现成的项目呢?

  在google上乱搜一阵之后发现了个全是法文的小站,随便复制几段翻译发现主人是个自由职业的Java程序猿,整个页面的布局还挺符合我的需求,于是直接Fork修改。

https://github.com/remidoolaeghe/remidoolaeghe.github.io

  作者把所有的工作都做好了,基本上不需要做多少修改:页面里用国外CDN的js、css换成了国内的,去掉了自己不需要的页面,评论换成国内能访问的IntenseDebate(速度还是很慢,后面看看能不能换成gitalk),修改了文章页面右侧“相关博文”部分的查找逻辑。轻松完成~

经验和遇到的坑

文档:

Jekyll https://jekyllrb.com/docs/home/
liquid https://shopify.github.io/liquid/
markdown语法 http://wowubuntu.com/markdown/index.html

Jekyll有一个本地的服务器可以用来调试、预览整个博客系统,在命令提示符输入以下命令可以查看jekyll的所有命令选项

jekyll help

pygments所使用的css文件可以用以下命令来生成

pygmentize -f html -a .highlight -S vs > pygments.css
  • -a .highlight指所有css类都具有.highlight这一祖先
  • -S vs 指定所需要的样式

所有的样式可以在Python中使用以下代码查看

1
2
from pygments.styles import STYLE_MAP
STYLE_MAP.keys()

实际上GitHub Pages现在已经转为使用Rouge来实现代码高亮了,不过因为Pygments和Rouge两者的样式通用,所以还是可以用Pygments的样式文件。Rouge的使用方法参照命令

rougify help

本地调试的过程中遇到不少坑,不过都不难解决,只是因为不熟悉liquid模板,修改代码的时候花了一点时间。

  • 本地调试

本地调试可以使用命令

bundle exec jekyll serve

如果输出错误

Liquid Exception: invalid byte sequence in GBK in *****

可以把控制台的代码页改为utf-8再重试

chcp 65001
  • tzinfo

Ruby的tzinfo库如果在windows系统上使用会报dependency error,bing+google之后找到这么个issue:tzinfo dependency error。

解决方法是安装tzinfo-data

gem install tzinfo-data

再在站点根目录的Gemfile里添加一行

gem 'tzinfo-data'
  • GitHub Pages

页面生成很快,如果生成出现问题可以等GitHub系统发送邮件到你账户对应的邮箱来查看。博主之前没仔细看GitHub Pages的文档,不知道生成失败会发送邮件,于是做了点无用功在找Bug上。

liyuqihxc

liyuqihxc

4 日志
2 分类
5 标签
GitHub E-Mail
© 2018 – 2019 liyuqihxc
由 Hexo 强力驱动
|
主题 – NexT.Gemini