Vmware下安装Debian 9.0.4
在虚拟机里折腾Debian 9.0.4,听起来是个老生常谈的话题,但实际动手时,不少细节还是值得捋一捋。尤其Debian以“干净”著称,很多工具都没预装,走一遍流程相当于给新手上一堂完整的Linux基础课。下面就从新建虚拟机开始,一步步把整个环境搭起来。
新建Vmware虚拟机
这一步比较简单,直接略过具体的操作步骤——创建虚拟机、选择操作系统类型(Linux,Debian 9.x 64位)、分配内存和硬盘,按默认向导走就行。唯一要注意的是,如果物理机内存紧张,建议给虚拟机分配2GB以上,否则后续编译可能会卡住。
在Vmware中安装Debian 9.0.4
在新建的虚拟机设置里加载ISO镜像,然后启动虚拟机。看到如下安装界面:

这几个选项分别是:图形界面安装、安装、高级选项、帮助、语音合成安装。我们选择第二项“安装”(如果需要图形桌面,选第一项)。进入语言选择界面:

后面一路选择“是”,然后持续下一步。遇到域名输入时,可以填自己的域名,没有的话填localhost或者留空。设置root密码和普通用户密码时,记住密码要足够复杂,后面要用。
分区与软件选择
分区环节根据需求选择即可,这次选的是“使用整个磁盘”。接下来选择是否使用网络镜像——如果网络环境好,建议选“是”,这样后续安装软件包会更方便。安装完成后重启,默认进入图形界面。点击左上角的“活动”,在搜索栏输入“terminal”,就能打开终端。

解决sudo问题
首次使用sudo命令时,很可能会遇到这样的报错:

原因很简单:Debian基础系统没有自带sudo,需要手动安装。解决方法如下:先用su root切换到管理员权限,然后执行apt-get install sudo。安装后,如果普通用户执行sudo仍提示“xxx不在 sudoers 文件中”,那就需要编辑/etc/sudoers文件。该文件默认权限0440只读,修改后需要用:wq!强制保存。

图形化界面的开启与关闭
默认进入图形界面,但如果后续操作希望直接在命令行下进行,可以关掉它。这里提供几种思路:
- 直接停止gdm3服务:
/etc/init.d/gdm3 stop(但重启后仍会启动) - 用
update-rc.d gdm3 -f remove移除开机自启 - 更彻底的方法:修改
/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT中加入text参数,然后执行update-grub2。这样开机直接进入命令行。临时需要图形界面时,执行/etc/init.d/gdm3 start即可。
安装SSH Server
为了方便用putty或Xshell远程连接虚拟机,需要安装SSH服务。在终端执行:
$ sudo apt-get install ssh openssh-server
安装后要查IP地址,但Debian默认没有ifconfig,会报错:

这是没装net-tools导致的,安装一下就好:
$ sudo apt-get install net-tools
之后就能正常使用ifconfig了:

安装JDK
下载JDK有两种方式:物理机下载后用FileZilla上传,或者直接在虚拟机里用wget。这里采用wget方式:

解压:
假设JDK解压到/home/xuda/jdk8/jdk1.8.0_171,接下来配置环境变量。编辑/etc/profile,追加以下内容(需root权限):
export JA VA_HOME=/home/xuda/jdk8/jdk1.8.0_171/
export CLASSPATH=.:$JA VA_HOME/lib/dt.jar:$JA VA_HOME/lib/tools.jar
export PATH=$JA VA_HOME/bin:$PATH

加载配置并验证:
$ source /etc/profile
$ ja va -version

安装GCC编译环境
如果需要编译C/C++代码,可以自己从源码编译GCC。先下载源码包(gcc-8-20180504.tar.xz),可以用物理机下载后上传,或者直接在虚拟机里wget。安装依赖库:
$ apt install build-essential libgmp-dev libmpfr-dev libmpc-dev
解压(注意是双层压缩):
$ xz -d gcc-8-20180504.tar.xz
$ tar -xvf gcc-8-20180504.tar.xz

编译安装:
$ cd gcc-8-20180504/
$ ./configure --disable-multilib
$ make
$ make install
等待编译完成后,用gcc -version验证。当然,如果只是日常使用,直接apt-get install gcc make gdb build-essential会更省事。
安装MySQL
MySQL安装也推荐用apt-get,但这里演示手动下载安装包的方式。下载MySQL 8.0.11:
$ wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
解压:
$ tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

添加mysql用户组和用户:
$ groupadd mysql
$ useradd -g mysql mysql

在mysql目录下新建data文件夹:
$ mkdir data

注意:MySQL 5.7之后,mysql_install_db已废弃,改为使用mysqld --initialize:
$ mysqld --initialize --basedir=/home/xuda/mysql/mysql-5.7 --datadir=/home/xuda/mysql/mysql-5.7/data/

如果遇到libaio.so.1: cannot open shared object file错误,执行apt-get -f install即可修复。
接着修改目录权限并复制启动文件:
$ chown -R root .
$ chown -R mysql data
$ cp support-files/mysql.server /etc/init.d/mysqld
$ chmod 755 /etc/init.d/mysqld
$ cp my_print_defaults /usr/bin

编辑/etc/init.d/mysqld,修改basedir、datadir和port:
basedir=/usr/local/mysql-5.7.20/
datadir=/usr/local/mysql-5.7.20/data
port=3306
启动服务:
$ service mysqld start
登录MySQL(第一次无密码):
$ mysql -u root -p
进入后修改root密码:
mysql> use mysql;
mysql> update user set authentication_string=password("新密码") where user='root';

总结
Debian的简洁确实是一把双刃剑。它没有预装sudo、net-tools甚至图形界面依赖,这些“坑”恰恰让学习者有机会深入理解系统底层。遇到问题不要慌,多查日志、多试几条命令,往往就能找到答案。整个过程走下来,从系统安装到JDK、GCC、MySQL的配置,基本就能搭建一个可用的开发环境了。
