在 Docker 的容器内开发,相当于使用VSCode的远程开发能力,好处非常多。
这不废话嘛,同上。
官方推荐安装 Remote Development 这个扩展包,它包括三个扩展功能:
如果你只使用 Docker ,可以只安装 Remote - Containers 这个扩展。
安装成功后,你可以在 VSCode 的左下角,看到一个“蓝底色+两个相对白箭头”的图标。
点击图标,可以看到 Remote - Containers 提供了许多方法进行配置。
照着 docker-compose.yml 进行修改,见下面示例
使用 VSCode 开发 Python 是替代 PyCharm 的一个很好选择,有丰富的扩展和第三方工具可以使用,安装配置好它们,会让开发工作事半功倍。下面列举推荐安装的扩展和工具:
扩展
工具
配置 Venv 路径
选项 | 值 |
---|---|
Python: Venv Folders | 如果安装时使用默认位置,就填写 micromamba,下面的不用设置 |
Python: Venv Path | 如果安装时没有使用默认位置,就填写安装位置,上面的不用设置 |
Python: Conda Path | 直接输入conda 即可 |
# 先激活 micromamba 环境
PS "Your Project Path"> conda activate PyQt
# 创建Python虚拟环境
# --upgrade 参数是升级虚拟环境用的,新建虚拟环境时要去掉。
# --system-site-packages 会降低环境隔离性,生产环境慎用。
(PyQt) PS "Your Project Path"> python -m venv --prompt "<myproject>" --upgrade-deps .venv --symlinks --upgrade --system-site-packages
# 查看项目资源管理器,看到 .venv 文件夹就成功了。
# 激活Python虚拟环境
(PyQt) PS "Your Project Path"> Activate.ps1
# 成功进入虚拟环境
(myproject) (PyQt) PS "Your Project Path">
重启 vscode 再次进入项目终端,不一定会看到项目前缀2。VsCode已经自动修你激活了Python虚拟环境,不需要再操作。 安装包里不需要激活 micromamba 环境,否则包将被安装到 micromamba 环境中。
OpenWRT 配置 IPv6,在网上有许多教程,但大部分都说的不清不楚。 所以我从 OpenWRT 配置文件的角度,给出一个肯定能用的配置。 相关配置原理不详述,可自行上网查找。
# /etc/config/network ... config interface 'lan' option proto 'static' option ipaddr '192.168.10.10' option netmask '255.255.255.0' option device 'eth0' option ip6assign '64' # IPv6分配长度。要与 wan 口一致。 config interface 'wan' option proto 'pppoe' option username '***********' option password '***********' option device 'eth1' option ipv6 'auto' # 自动获取IPv6地址,使用这个选项后,会自动创建一个虚拟动态接口(WAN_6),不用配置。 option ip6assign '64' # IPv6分配长度。参考 WAN_6 接口 IPv6-PD 的掩码长度,一般为“60”,比它大即可,系统默认为64。 ...
# /etc/config/firewall ... config zone option name 'lan' list network 'lan' option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' config zone option name 'wan' list network 'wan' option input 'DROP' # 关闭 wan 口输入流量 option output 'ACCEPT' # 只出不进 option forward 'REJECT' option masq '1' # 打开 NAT 功能 option mtu_fix '1' # 路由器直接拨号时使用 ... # 转发规划很重要 config forwarding option src 'lan' option dest 'wan' ... # 允许外网IPv6协议下,任意地址的547端口的UDP包通过wan口,访问本机546端口 config rule option name 'Allow-DHCPv6' option proto 'udp' option src 'wan' option src_port '547' option dest_port '546' option target 'ACCEPT' option family 'ipv6'
# /etc/config/dhcp
...
config dhcp 'lan'
option interface 'lan'
option start '100'
option dhcpv4 'server'
option limit '200'
option force '1'
option leasetime '2h'
option ra 'server' # RA服务 服务器模式
option dhcpv6 'server' # DHCPv6服务 服务器模式
list ra_flags 'none' # RA标记 无
config dhcp 'wan'
option interface 'wan'
option ignore '1'
list ra_flags 'none'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
$ curl 6.ipw.cn
版本 | 说明 |
---|---|
64 | 用于现代PC硬件(大约在2007年以后的产品),它是为具有64位功能的计算机而构建的,并支持现代CPU功能。除非有充分的理由,否则请选择此选项。 |
Generic | 仅适用于32位硬件(旧硬件或某些Atom处理器),应为i586 Linux体系结构,将在Pentium 4及更高版本上运行。仅当您的硬件无法运行64位版本时才使用此功能。 |
Legacy | 用于奔腾4之前的非常旧的PC硬件,在Linux体系结构支持中称为i386。它会错过许多现代硬件上想要/需要的功能,例如多核支持以及对超过1GB RAM的支持,但实际上会在较旧的硬件上运行,而其他版本则不会。 |
Geode | 是为Geode SoC定制的自定义旧版目标,Geode SoC仍在许多(老化的)网络设备中使用,例如PCEngines的较旧Alix板。 |
文件名 | 说明 |
---|---|
Combined | 组合的,包括bootloader、kernel、rootfs |
squashfs | 该磁盘映像使用传统的OpenWrt布局,一个squashfs只读根文件系统和一个读写分区,在其中存储您安装的设置和软件包。由于此映像的组装方式,您只有230 兆MB的空间来存储其他程序包和配置,而Extroot不起作用。squashfs适用于直接编译带有软件包的openwrt系统,方便重置路由器,不必从安装包重新刷机。 |
ext4 | 此磁盘映像使用单个读写ext4分区,没有只读squashfs根文件系统,因此可以扩大分区。故障安全模式或出厂重置等功能将不可用,因为它们需要只读的squashfs分区才能起作用。选择64的情况下,ext4适合我们扩容,并安装软件包。 |
efi | 指的是UEFI,可以使用GPT分区列表,是较新的技术,性能和可扩展性上更好,不带efi的则是使用Legacy。 |
bootloader | 引导程序 |
kernel | Linux内核 |
rootfs | openwrt根系统 |
$ uname -r
kernel 4.9 及以上已支持 tcp_bbr,看内核版本是否大于等于4.9,否则要升级内核,或者安装bbr。
bbr2 效果要好于 bbr,相当原理可查看参考文档
# 查看可用的拥塞算法
$ sysctl net.ipv4.tcp_available_congestion_control
# 查看使用的拥塞算法
$ sysctl net.ipv4.tcp_congestion_control
# 设置拥塞算法
$ sysctl -w net.core.default_qdisc=fq
$ sysctl -w net.ipv4.tcp_congestion_control=bbr
# 查看设置结果
$ lsmod | grep bbr
$ echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
$ echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
$ sysctl -p
$ nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
6.0+ (380行)
if (data.status !== 'Active') {
替换为
if (false) {
重启服务
$ systemctl restart pveproxy.service
cat info.log error.log > merge.log.bak
cp merge.log.bak merge.log
安装 xrdp
$ sudo apt install xrdp
启动xrdp服务,并设置为开机启动
$ sudo systemctl start xrdp
$ sudo systemctl enable xrdp
解决黑屏/空屏/无画面
$ nano /etc/xrdp/startwm.sh
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
. $HOME/.profile
重启deepin,使用Xorg模式登录
$ sudo nano /etc/default/grub
修改配置项
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1366x768"
更新 grub
$ sudo /usr/lib/deepin-api/adjust-grub-theme
$ sudo update-grub
注意:这种方法最高只能支持 1920×1080 的分辨率,对于大显示器,高 DPI 的童鞋,可以考虑用 RDP,VNC 等方式来用上更高的分辨率。