Fedora X11开发环境

Windows系统

安装 vcxsrv, xshell, xftp。

clion在Windows上可以远程linux开发,但是调试多个tcp程序不如命令行手动gdb来的实在。
调试redis源码也要用gdb,反正无论怎样都是要用gdb调试的,逃不开躲不过,还是尽早适应的好。

不在xshell中用vim写C++,而是通过X11使用vscode写C++。不使用vscode调试C++,而是在命令行手动gdb进行调试。

vim的配置太恶心了,要什么功能都要用插件去实现,选插件然后配置太麻烦,关键的是没法保证实现想要的效果,浪费生命浪费时间。

抛弃vim,拥抱vscode,从我做起!

在windows上跑虚拟机才是正解,linux开发环境使用X11更加方便,只要CPU够强、内存够大,鱼与熊掌可以兼得。

Fedora34系统环境从零开始

系统安装

1. 使用 Fedora-Workstation-Live-x86_64-34-1.2.iso 安装系统

开发环境使用 Workstation版, 不用Server版。配置默认为字符界面,桌面在需要时再进行切换。

自定义LVM磁盘分区, 设置登录账号。

2. 更新系统

1
[lukas@fedora muduo]$ dnf update

3. 调整运行级别

配置默认为字符界面,这样虚拟机需要的运行资源占用少。

1
[lukas@fedora muduo]$ systemctl set-default runlevel3.target

4. C++编译工具

1
2
3
4
5
6
dnf install -y boost boost-devel zlib-devel curl-devel \
protobuf protobuf-devel cmake gcc gcc-c++ gdb make \
tmux git vim openssh-server

dnf install -y clang clang-devel clang-libs llvm llvm-doc \
llvm-devel clang-tools-extra clang-analyzer

5. VSCode

5.1 按文档安装

1
https://code.visualstudio.com/docs/setup/linux

5.2 launch.json 示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "asio_chat_server",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/bin/asio_chat_server",
"args": ["4000"],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build-all"
}
]
}

5.3 tasks.json 示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"version": "2.0.0",
"tasks": [
{
"label": "build-all",
"type": "shell",
"command": "/usr/bin/bash vscode.sh",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
}
]

}

菜单 终端 -> 运行生成任务(Ctrl+Shift+B), 会运行 tasks.json 中 "isDefault": true 的task。

X11环境下的输入法

Fedora默认输入法是Ibus,当运行级别为3的时候,Ibus相关的服务不是开机启动的,需要你在xshell连上之后,手动启动ibus。

0. 用到的包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[lukas@localhost yum.repos.d]$ rpm -qa | grep ^ibus
ibus-libs-1.5.24-5.fc34.x86_64
ibus-gtk2-1.5.24-5.fc34.x86_64
ibus-gtk3-1.5.24-5.fc34.x86_64
ibus-1.5.24-5.fc34.x86_64
ibus-setup-1.5.24-5.fc34.noarch
ibus-libzhuyin-1.10.0-2.fc34.x86_64
ibus-m17n-1.4.9-1.fc34.x86_64
ibus-libpinyin-1.12.0-3.fc34.x86_64
ibus-anthy-python-1.5.12-7.fc34.noarch
ibus-anthy-1.5.12-7.fc34.x86_64
ibus-hangul-1.5.4-5.fc34.x86_64
ibus-typing-booster-2.15.16-1.fc34.noarch
[lukas@localhost yum.repos.d]$
1
sudo dnf install ibus-libs ibus-gtk2 ibus-gtk3 ibus ibus-setup ibus-libzhuyin ibus-m17n ibus-libpinyin ibus-anthy-python ibus-anthy ibus-hangul ibus-typing-booster xsel

1. 复制粘贴

1
sudo dnf -y install xsel

1. 设置快捷键

1
[lukas@fedora muduo]$ ibus-setup

在程序窗口中设置为 Ctrl + 空格

2. 设置Ibus相关环境变量

1
2
3
4
5
export XIM=ibus
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XIM_PROGRAM="ibus-daemon"
export XMODIFIERS="@im=ibus"

在 ~/.bashrc 里面添加

3. 手动启动Ibus守护进程

1
ibus-daemon -x -d

4. 剪切板复制粘贴

1
ForwardX11 yes

修改ssh配置,在 /etc/ssh/ssh_config 文件配置上述选项。
vmware中启用剪切板复制粘贴。

X11环境下可能出现的问题

  1. 文本输入时,按了字母数字外的键盘按键,出现一直输入222222222222222222222222无法停止的现象

这是一个偶尔出现的状况,不太清楚原因,没找到彻底的解决办法。

解决办法: 关闭程序,重新开启程序


Fedora X11开发环境
https://pygyme.com/开发环境配置/fedora-x11开发环境/
作者
PYGYME
发布于
2021年12月31日
许可协议