git 源码安装(Debian)

最近使用的git客户端要求升级git,以前都是用源的方式安装,没办法更新到新版本的git。于是使用了源码安装。这篇文章记录debian下二进制安装的步骤。

1. 源码下载

https://github.com/git/git/releases 下载最新源码。目前是2.30.1版本。

wget https://github.com/git/git/archive/v2.30.1.tar.gz
tar zxvf v2.30.1.tar.gz
mv git-2.30.1 /var/local

2. 安装依赖库

apt-get install dh-autoreconf libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev install-info

3. 编译安装

cd /var/local/git-2.30.1
make prefix=/usr/local/git all
make prefix=/usr/local/git install

4. 配置环境变量

临时生效:

export PATH=/usr/local/git/bin:$PATH

永久生效:

# vim /etc/profile
# 在文件末尾,添加如下两行:

export GIT_HOME=/usr/local/git
export PATH=$GIT_HOME/bin:$PATH

# 退出vim,source生效
source /etc/profile

5. 确认安装成功

which git
git version

6. 其它问题

有可能需要修改linux和mac下的乱码

参考资料


apt-get 命令代理

apt-get 工具可以使用 -o参数来使用配置字符串,或使用 -c 参数使用指定配置文件。

1. 使用-o选项

http代理:

sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:8000/" update

socks代理:

sudo apt-get -o Acquire::socks::proxy="socks5://127.0.0.1:1080/" update

2. 使用-c选项

创建个人配置文件~/apt_proxy.conf,内容:

Acquire::http::proxy "http://127.0.0.1:8087/";
Acquire::https::proxy "https://127.0.0.1:8087/";

使用命令:

sudo apt-get -c ~/apt_proxy.conf update

3. 如果我们设置了环境变量APT_CONFIG,那么APT工具集将使用APT_CONFIG指向的配置文件。

export APT_CONFIG=~/apt_proxy.conf
sudo apt-get update

参考资料


kubernetes switch context

我经常需要在多个 k8s 集群之间切换,可以使用配置文件来配置对多个集群的访问。有一点需要注意的是,kubectl 与集群的版本要一致,否则可能某些api的有变更导致结果与我们预期的不一致。

这篇文章记录切换不同集群的步骤。

kubectl config view

kubectl config get-contexts                          # 显示上下文列表
kubectl config current-context                       # 展示当前所处的上下文
kubectl config use-context my-cluster-name           # 设置默认的上下文为 my-cluster-name

默认访问说明

可以打开 ~/.kube/config 文件,默认是本集群的访问信息,文件结构默认如下:

apiVersion: v1
clusters:
- cluster:
    certificate-authority: 某ca-file路径 # 也有可能是base64过后的信息, certificate-authority-data: 
    server: https://1.2.3.4:6443
  name: cluster1
contexts:
- context:
    cluster: cluster1
    user: admin
  name: context-cluster1-admin

current-context: ""
kind: Config
preferences: {}
users:
- name: admin
  user:
    client-certificate: 某cert-file路径 # 也有可能是base64过后的信息, client-certificate-data: 
    client-key: 某key-file路径 # 也有可能是base64过后的信息, client-key-data: 
- name: experimenter
  user:
    password: some-password
    username: exp

添加集群访问的相关信息

了解配置文件之后,就可以添加相关信息了。只要修改对应的配置name,不与当前配置冲突即可。

以下是我的例子。

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: xxx
    server: https://10.181.1.131:6443
  name: cluster1
- cluster:
    certificate-authority: /vagrant/n1.ca
    server: https://10.181.2.131:6443
  name: n1
- cluster:
    certificate-authority-data: xxx
    server: https://10.181.3.131:6443
  name: n2
contexts:
- context:
    cluster: cluster1
    user: admin
  name: context-cluster1-admin
- context:
    cluster: n2
    user: admin-n2
  name: n2
- context:
    cluster: n1
    user: kubernetes-admin
  name: n1
current-context: context-cluster1-admin
kind: Config
preferences: {}
users:
- name: admin
  user:
    client-certificate-data: xxx
    client-key-data: xxx
- name: admin-n2
  user:
    client-certificate-data: xxx
    client-key-data: xxx
- name: kubernetes-admin
  user:
    client-certificate: /vagrant/n1.crt
    client-key: /vagrant/n1.key

然后就可以查看上下文信息了。

image-20210225111036059

使用以下命令行切换即可:

kubectl config use-context n1
kubectl config use-context n2

其它

记录一个 base64反解析为文件的用法:

img

将1,2,3的 value部分 反向base64还原,分别按顺序保存为 k8s-cluster.cak8s.crtk8s.key,三个文件,反向base64的命令如下:

echo '${替换内容}' | base64 -d

参考资料


grep 命令显示前后几行

grep -C n serch # 显示查找文件中匹配serch字串那行以及上下n行 
grep -B n serch # 显示查找文件中匹配serch字串那行以及前n行 before
grep -A n serch # 显示查找文件中匹配serch字串那行以及后n行 after