没有vim如何将内容写入文件

1,462 阅读2分钟

最近遇到一个问题,用docker装了Clickhouse,版本是21.12.3.32

这个镜像是基于Ubuntu 20.04.3 LTS的,想要测试一下CK的自定义函数功能,按照官网的例子需要写自定义函数,使用的是 python3,但是容器里没有安装python3环境。

于是就需要安装python3,发现apt命令的软件源也没有配置,也没有vim命令,于是需要配置国内的镜像源

环境

  • Docker
  • Ubuntu 20.04.3 LTS
  • 无vim编辑器

进入到软件源配置目录

/etc/apt/sources.list.d

通过cat 添加内容

cat > aliyun.list << EOF

aliyun.list是我自己命名的文件,要把软件源添加进去。

敲上面的命令后,会等待你输入,把下面的内容粘贴,最后输入EOF,结束命令。

#添加阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
#添加清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse multiverse

然后更新软件源

apt-get update

后续安装python参考这篇文章


补充:

由于我是Docker环境,所以还有一种方法,可以把/etc/apt目录在启动容器的时候,挂载到宿主机,在宿主机里编辑就可以了:

docker run -d --name clickhouse-server \
--ulimit nofile=262144:262144 \
-p 9000:9000 \
-p 8123:8123 \
-p 9009:9009 \
-v clickhouse_config:/etc/clickhouse-server \
-v ~/data/clickhouse/data:/var/lib/clickhouse \
-v ~/data/clickhouse/log:/var/log/clickhouse-server \
-v ~/data/clickhouse/etc/apt:/etc/apt \
--privileged=true --user=root \
clickhouse/clickhouse-server:21.12.3.32

如上加了

-v ~/data/clickhouse/etc/apt:/etc/apt \

这种方式不行,将/etc/apt挂载到外面后,发现文件夹内容全部丢失,有空看下原因,暂时不推荐用这种方式。


进阶

我的目的是想要使用clickhouse的可执行自定义函数的功能,想要在镜像内安装Java环境、python环境、vim编辑器之类的。

如果每次clickhouse升级了官方的镜像,我又得手动重新装。

更方便的做法是写一个自动化脚本,代替人工操作。docker镜像提供了Dockerfile可以自己制作想要的镜像,我写在了《制作自己的Clickhouse镜像》这篇文章里,有兴趣可以看下。