轶哥

妄图改变世界的全栈程序员。

Win11设置默认浏览器的方法

在win11正式版中,设置默认浏览器的方法被微软修改了,更加精细,以至于一开始我竟没有找到在哪里设置。

以前在win10中,设置默认浏览器只需要进入设置-应用-默认应用,对Web浏览器进行选择即可调整默认应用程序。但是在win11中居然开了个倒车,没有提供这样的默认选项,取而代之的是精细化的默认应用设置。

虽然精细化的设置能够最大程度的把管理权交给用户,但是win10的快捷设置方式也不失为一个值得保留的选项。两者完全可以共存。摒弃简单方案提高了用户切换默认浏览器的难度,在第一次启动Edge的时候不小心点了介绍界面的确定按钮,win11就把默认浏览器设置一键为Edge了,还不晓得杂个改回去,就这实在是有点流氓。

Win11正式版升级安装Docker(基于WSL2)

微软于今日(2021年10月05日)发布了正式版win11。访问Windows 11 安装助手即可下载安装。下载和前期安装过程不会影响系统正常使用,最后的重启安装的过程大概耗时20分钟,和普通更新感觉耗时差不多。

问题描述

从Win10升级到Win11后,当计算机第一次启动时(以及之后的每次),Docker Desktop 将无法启动。Docker Desktop 在 Windows 更新之前运行良好。

每次重新启动计算机或尝试手动启动 Docker Desktop 时,都会出现此问题。

安装win11后Docker运行报错,主要报错内容是Microsoft .NET Framework无法连接xxx,其实就是无法连接到wsl2。

根据Docker官方说明,需要升级到最新的wsl2内核Docker Desktop

Win10中通过WSL2开发基于Electron的Ubuntu应用程序

本文将介绍如何在Windows 10操作系统中借助WSL2开发基于Electron的Ubuntu窗口应用程序,可以实现在win10中编写代码并查看linux应用的运行效果。

借助此方法,仅需一台MacOS设备和一台Win10的设备,即可通过Electron开发和测试主流操作系统(Windows、Linux、MacOS)下桌面应用程序并可以有差异化的调用操作系统的原生API。

通过MacOS系统可以编译几乎所有平台的应用程序,例如可以在MacOS中编译Win10 x64Linux ARM64等平台的应用程序。但是在win10ubuntu中无法编译MacOS应用程序(可以借助虚拟机或者带有MacOS系统的Docker镜像实现MacOS平台应用程序的编译,但是可能无法正常进行签名)。关于Electron自动编译及自动更新、分发,可以参阅此视频教程

win10共享文件无法访问,保存了错误密码

在win10中,访问网络中的计算机共享文件,有些计算机配置需要使用账户和密码才能访问其共享的文件。

image.png

然而,如果勾选了记住我的凭据,但是记住了一个错误的凭据(特别是当这个凭据用户名为guest或者某个被禁用的用户)。那么将会出现下面的报错,无法进入共享文件夹且无法切换用户。

image.png 报错内容: \DESKTOP-XX 无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。此用户无法登录,因为该帐户当前已被禁用。

解决此问题需要删除在系统中已保存的有异常的用户信息。

Apple M1 编译原生Electron应用程序

Apple Silicon M1芯片可谓是性能爆炸,开发体验极佳,生态中适配速度也算得上势如破竹。借助Rosetta 2平稳过渡ARM64,实在是高明。在MacOS 11+系统中通过 Apple M1 编译原生M1 Electron应用程序也算得上轻松容易。

理论兼容M1芯片的Electron版本是11.2.3,实测兼容较好的版本是13.0.0-beta.5+

electron-builder需升级至20.10+,建议版本22.10.5+

本地Node.js版本请安装v15.5.0+

MacOS建议升级到11.2.3+

通过electron-builder编译Electron ARM64应用程序,需调整package.json配置文件。

Electron 12+ 出现 require is not defined 报错解决

在 Electron 12 及更高版本,设置了nodeIntegration: truenodeIntegrationInWorker: truenodeIntegrationInSubframes: true,渲染进程仍然可能出现require is not defined的报错。

这个报错还跟随有module is not definedexports is not defined

同样的报错在Electron 5+曾出现过,原因是发布v5.0.0的时候,官方将nodeIntegration默认值设置为了false(与此同时还将webviewTag设置为了false)。

近期,Electron 12.0.0 发布。修复了诸多异常。同时也将contextIsolation的默认值更改为true(详见:https://github.com/electron/electron/pull/27949)。

CentOS8卸载podman安装docker

由于CentOS8默认安装了podman,因此在CentOS8中安装docker会导致冲突引发如下异常。

Error: 
 Problem 1: problem with installed package podman-2.0.5-5.module_el8.3.0+512+b3b58dca.x86_64
  - package podman-2.0.5-5.module_el8.3.0+512+b3b58dca.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30b.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30b.x86_64
  - cannot install the best candidate for the job
  - package runc-1.0.0-64.rc10.module_el8.3.0+479+69e2ae26.x86_64 is filtered out by modular filtering
 Problem 2: problem with installed package buildah-1.15.1-2.module_el8.3.0+475+c50ce30b.x86_64
  - package buildah-1.15.1-2.module_el8.3.0+475+c50ce30b.x86_64 requires runc >= 1.0.0-26, but none of the providers can be installed
  - package docker-ce-3:20.10.1-3.el8.x86_64 requires containerd.io >= 1.4.1, but none of the providers can be installed
  - package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30b.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30b.x86_64
  - package containerd.io-1.4.1-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30b.x86_64
  - package containerd.io-1.4.1-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30b.x86_64
  - package containerd.io-1.4.3-3.el8.x86_64 conflicts with runc provided by runc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30b.x86_64
  - package containerd.io-1.4.3-3.el8.x86_64 obsoletes runc provided by runc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30b.x86_64
  - cannot install the best candidate for the job
  - package runc-1.0.0-56.rc5.dev.git2abd837.module_el8.3.0+569+1bada2e4.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-64.rc10.module_el8.3.0+479+69e2ae26.x86_64 is filtered out by modular filtering

在部分场景中却不得不使用docker,因为podman是新东西,即便命令和docker及其相似,也因为生态原因,各类API还无法完全兼容。例如《【视频教程】Electron自动编译及自动更新、分发》就对这个情况进行过说明,在使用Electron 应用分发系统的时候,由于使用了开源项目dockerode对docker进行控制,因此需要卸载podman改用docker

ubuntu 20.04 安装 pip2

在ubuntu 20.04 LTS版本中,可以通过sudo apt install python安装python2,但是无法通过sudo apt install python-pip安装pip2,提示E: Unable to locate package python-pip

无法找到python-pip安装包的原因是,Python 2.7的支持周期已于2020年1月1日结束。因为不再维护Python 2.7,pip 21.0已于2021年1月停止对Python 2.7的支持。

如果通过pypa.io的默认get-pip.py脚本进行安装,也将遇到This script does not work on Python 2.7 The minimum supported Python version is 3.6.提示。

  上一页 下一页