搭建 Debian 开发环境遇到的问题
Aidan Engineer

前段时间将开发环境从 Kali 切换到 Debian,感觉还是精简一点好,为了开发便利性,安装了一部份开发必备的环境,虽然大部分程序都能用超级牛力的 apt 进行安装,但还是有些程序在安装过程中遇到了错误,这里记录一下

安装原则是这样的:

  1. apt 有的优先用 apt 进行安装(如:g++, gcc, git, golang, openjdk)
  2. .deb 可用的优先使用(如:elasticsearch, nvim)
  3. 其他包管理工具可用的优先考虑(如:pip 可以按照 mycli, redis; node 可以安装 hexo)
  4. 压缩包安装的方式(如:kafka)

PS: 当前软件源使用 debian-testing

1
2
3
deb http://deb.debian.org/debian testing main
deb http://deb.debian.org/debian testing-updates main
deb http://security.debian.org/debian-security/ testing-security main

docker

docker 版本关系

刚开始学 docker 的时候,被 docker.io docker-io docker-engine docker-ce docker-ee 这些名词搞晕了,之所以有这么多名称,是由它的发展历史决定的

为什么会有 docker.io docker-io 这种命名方式

在 Docker 技术出现之前,Linux 中已经有一个叫 docker 的工具,在 Linux 系统中软件名不能与 docker 重名,而且那个时候 Docker 的官网是 docker.io,所以,就在软件名称上加了 io 的后缀

因此,在 Debian/Ubuntu 中就是 docker.io ,在 RedHat/CentOS 就是 docker-io

docker.iodocker-engine 命名

使用 docker.iodocker-io 为软件名,主要是前期的一段时间,后来随着 Docker 的发展,软件包名改成了 docker-engine ,名称达到了统一

大一统

后续 Docker 发展愈发火热,在征得同名软件作者的同意下,将 docker 更改为 wmdocker,Docker 容器的软件包名正式成了 docker

后续

Docker 发展到 1.13.1 版本后,Docker 公司把 Docker 分成了两种形式:

  • docker-ce 社区版,免费
  • docker-ee 商业版,收费

现在要安装最新版的 Docker 软件包,就是使用 docker-ce 这个名称了

安装前一般需要卸载旧版本,也就是网上常见的一条命令

apt remove docker docker-engine docker.io

Debian 安装

docker.io 包是 Debian/Ubuntu 从其官方仓库上提供的 docker 版本使用的名称。每个外部依赖项都是一个单独的包,并且将独立更新

与官方版本差别并不大,兼容性日常使用应该可以忽略。考虑国内网络环境,直接安装 docker.io 从 apt 镜像源下载更新更快

MariaDB

MariaDB 是 Debian 数据库的默认选择,安装只需要一条命令 sudo apt install mariadb-server

推荐安装之后将常用用户添加到 mariadb 组中, sudo usermod -g mysql aidan

安全性

MariaDB 附带了一个脚本 mysql_secure_installation ,可以帮助您提高安装的安全性。在终端中运行 sudo mysql_secure_installation

每个步骤都有详细解释,酌情选择即可,如果对安全比较在意全选 Y

默认情况下, MariaDB root 用户使用 unix_socket 身份验证插件,该插件在调用 mysql 客户端工具时检查有效用户 ID

这意味着只有在 mysql 以系统 root 身份调用命令或将 sudo 添加到命令时,才能以 root 身份连接到 MariaDB 服务器

为了提高安全性,建议保留默认的身份验证插件,并允许 root 用户仅通过 Unix 套接字进行身份验证。

如果要将根身份验证更改为经典身份验证,登录 MariaDB 服务器 sudo mysql 可以定义密码

1
2
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_root_passwd';

后续可以使用 mysql -u root -p 进行登录

远程登录

  1. 修改 /etc/mysql/my.conf
    注释掉 bind-address = 127.0.0.1 或者改为 bind-address = 0.0.0.0
  2. 为远程登录用户赋予权限
    grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;
    flush privileges;

带进度条的复制和移动

advcpmv


参考文章:
https://zhuanlan.zhihu.com/p/305572519
https://z.itpub.net/article/detail/CF3376ECFEA0A659D48576FEEB954192

  • 本文标题:搭建 Debian 开发环境遇到的问题
  • 本文作者:Aidan
  • 创建时间:2022-07-27 10:54:19
  • 本文链接:https://aidanblog.top/build-debian-dev_env/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论