ubuntu http错误_Windows安装WSL--Ubuntu

2023-05-16

398cc15b6d4a05223bbb88e2b11f783d.png

8c529d69696b630ddac3213b37c68ba4.png[TOC]
第一步:安装wsl
第二步:安装wsl terminal
第三步:更新root用户的密码
第四步:更换软件源(apt源和pip源)
第五步:安装zsh
第六步:安装Vim plug和YouCompleteMe
第七步:编译YCM
第八步:配置YCM
第九步 python和pip配置
第十步 pypy3安装配置(如果不使用pypy请跳过)
第十一步 使用virtualenvwrapper虚拟环境
第十二步 Vim语法检查和格式化代码
第十三步 安装MariaDB数据库
第十四步:(仅对本人有效)修改.vimrc,添加molakai主题

第一步:安装wsl

WSL(Ubuntu)将Ubuntu和Win10无缝连接起来,让开发人员可以不使用虚拟机,就轻松地在同一个系统中使用win10和Ubuntu,你可以用它代替Cywin32和babun.

  • 最新版win10(18年3月更新)

  1. 在win10的设置中打开更新和安全,打开针对开发人员选项

  2. 然后在程序和功能中打开Linux子系统。

  3. 重启计算机后,打开应用商店搜索下载ubuntu18.04

  • 旧版的win10或者离线安装
    参考下面的内容安装bash。
    http://www.cnblogs.com/VAllen/archive/2017/04/03/BashOnWindowsDownloadAndInstallError.html
    推荐选择16.04的ubuntu。

  • 添加ubuntu到快速访问
    如果你需要经常在win10资源管理器对ubuntu的文件进行操作,那么在C盘搜索rootfs这个文件夹,这就是ubuntu在win10上的储存位置。
    将rootfs文件夹拖放到资源管理器的快速访问。(你也可以添加其下的/home/你的用户文件夹)

  • 获取权限
    直接在win10资源管理器操作ubuntu的文件可能是无效的,这是因为win10的默认用户并不是超级管理员,对ubuntu的权限是只读的。
    你需要取得rootfs文件夹的所有权限。(可以使用“鼠标管家”这个软件,添加菜单,管理员取得所有权限)

第二步:安装wsl terminal

wsl-terminal是一个很好用的WSL终端。

  • 下载WSL:
    https://github.com/goreliu/wsl-terminal/releases
    下载失败请试试以前的版本

  • 在鼠标右键添加Open WSL Here
    在wsl程序目录下,有个tools目录,运行其中的1-add-open-wsl-terminal-here-menu。(删除则运行1-remove开头的脚本)

注意:最新版windows需要把wsl-terminal安装在非C盘

第三步:更新root用户的密码

桌面点击鼠标右键,选择Open WSL Here打开Bash。

  • 更新root密码:

sudo passwd

这一步需要输入你在下载ubuntu后建立的用户密码

第四步:更换软件源(apt源和pip源)

系统默认的apt源是国外的,下载软件速度慢,python的pip源也很慢,我们都换成阿里云的源。

  • 更换apt源:

cd /etc/apt/sudo cp sources.list sources.list.bak && sudo vim sources.list

删除其中所有内容,替换成:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
sudo apt updatesudo apt upgrade
  • 修改pip源:
    创建pip配置文件:mkdir ~/.pip && vi ~/.pip/pip.conf
    在打开的vim中输入下文并保存:

[global]trusted-host=mirrors.aliyun.comindex-url=http://mirrors.aliyun.com/pypi/simple/

第五步:安装zsh

zsh能让你通过键盘的上键,查找以前输入的命令。
例如,你可以输入sudo然后按向上键,就会出现以前输入的以sudo开头的命令。

  • 安装zsh:sudo apt -y install zsh

  • 安装oh-my-zsh:sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

  • 让wsl-terminal默认启动zsh:
    在wsl-terminal安装目录的/etc中,修改wsl-terminal.conf中相应的部分为

;shell=/bin/bashshell=/bin/zsh

如果提示文件只读,采取第一步中的获取权限

第六步:安装Vim plug和YouCompleteMe

Vim plug是vim插件管理工具,YCM是很好用的C、python代码补全工具,也支持Go、Rust等其他语言。

  • 下载Vim Plug:curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

  • 在vimrc中添加安装配置

vi ~/.vimrc

在其中添加

" Specify a directory for pluginscall plug#begin('~/.vim/plugged')" Make sure you use single quotesPlug 'jiangmiao/auto-pairs'Plug 'davidhalter/jedi-vim', {'for': 'python'}Plug 'Valloric/YouCompleteMe', {'for': 'python'}"可以添加已经手动安装的插件"Plug '~/.vim/bundle/YouCompleteMe'" Initialize plugin systemcall plug#end()

保存退出,并进入vi

vi

按下键进入命令行,输入

PlugInstall

注意:

YCM的python补全依赖jedi-vim

因为YCM包有200多M,所以需要下载很久。

第七步:编译YCM

安装完成后提示YCM server错误,这是正常的,因为ycm需要手工编译出YCM core库。

  1. 安装YCM编译需要的依赖sudo apt -y install cmake build-essential python3-dev

  2. 切换到YCM目录:cd ~/.vim/plugged/YouCompleteMe

  3. 更改编译使用python3(使用python2.7时跳过本步骤):vi ./install.py
    把第一行末尾的python改为python3

  4. 编译YCM core:./install.py

参考:
vim安装YouCompleteMe插件,与python补全插件jedi-vim

第八步:配置YCM

YouCompleteMe配置后才能发挥出它强大的功效。

  • 在vimrc中设置YCM使用python3支持:

"python版本设置,使用python2.7时去掉末尾的数字3let g:ycm_python_binary_path='/usr/bin/python3'" 语法关键字补全let g:ycm_seed_identifiers_with_syntax=1"从第2个键入字符就开始罗列匹配项let g:ycm_min_num_of_chars_for_completion=2"最小候选标识符长度let g:ycm_min_num_identifier_candidate_chars = 5"按下Ctrl+空格直接弹出所有类和函数,要先关闭系统中的输入法切换快捷键let g:ycm_key_invoke_completion = ''"配置文件路径let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'"把ycm识别的标识符和语法关键字放在一起let g:ycm_seed_identifiers_with_syntax = 1"注释和字符串中的文字也会被收入补全,默认关闭let g:ycm_collect_identifiers_from_comments_and_strings=1"字符串输入补全,字符串中输入.加字母时会引发错误,默认开启let g:ycm_complete_in_strings=1

不同于很多vim插件,YCM需要有配置。在vim启动后,YCM会找寻当前路径以及上层路径的.ycm_extra_conf.py。在~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/中提供了默认的模板。

复制配置文件:cp ~/.vim/plugged/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py ~/.vim/

第九步 python和pip配置

  • 修改默认python3

sudo ln -s /usr/bin/python3 /usr/bin/pythonwget bootstrap.pypa.io/get-pip.py
  • 安装pip

sudo python get-pip.py

第十步 pypy3安装配置(如果不使用pypy请跳过)

  • 下载pypy3并解压
    到pypy官网下载pypy3.6-v7.0.0-linux64.tar.bz2,然后用下面的命令解压

tar -jxvf pypy3.6-v7.0.0-linux64.tar.bz2

解压命令详解

  • 解压后把文件夹命名为pypy3

  • 移动pypy3到/usr/local/lib

sudo mv pypy3 /usr/local/lib/
  • 建立软链接,使其可执行

sudo ln -s /usr/local/lib/pypy3/bin/pypy3 /usr/bin/pypy
  • 给pypy安装pip

sudo pypy get-pip.pysudo ln -s /usr/local/lib/pypy3/bin/pip /usr/bin/pipp

注意:你也可以使用类似pip-pypy的命令来代替pipp,这只是我个人习惯

第十一步 使用virtualenvwrapper虚拟环境

通常不同的项目会使用不同的库版本,虚拟环境能让你免弄坏系统环境的风险。virtalenvwrapper基于virtualenv,但是更方便。

  • 安装virtualenvwrapper

sudo pip install -U virtualenvwrapper

这会自动安装依赖包virtualenv。

  • 打开zshrc,添加环境变量等后,重启zsh终端

vi ~/.zshrcexport PATH=/usr/local/lib/pypy3/bin:$PATHexport VIRTUALENVWRAPPER_PYTHON=/usr/local/lib/pypy3/bin/pypy3source /usr/local/lib/pypy3/bin/virtualenvwrapper.sh
  • 新建虚拟环境

mkvirtualenv -p /usr/local/lib/pypy3/bin/pypy3 env1

默认创建在~/. virtualenvs目录下
-p指定了建立时使用的版本,如果你使用默认的python3,可以使用mkvirtualenv env1

  • 自动选择虚拟环境,在zshrc末尾添加

workon env1

注:找不到virtualenvwrapper.sh,可以使用下面的命令查找脚本

sudo find / -path "/mnt" -prune -o -name virtualenvwrapper.sh -print

第十二步 Vim语法检查和格式化代码

syntastic是语法检查工具,它需要flake8的支持,yapf用来格式化python代码。

  • 安装flake8语法检查和yapf代码格式化

sudo pipp install flake8 yapf
  • 在vimrc中安装syntastic
    vimrc中添加

Plugin 'vim-syntastic/syntastic'"(下面的配置放在vundle安装语句外)"vimrc设置flake8作为语法检查器let g:syntastic_python_checkers = ['flake8']"高亮错误"let g:syntastic_enable_highlighting=1"自动跳转到发现的第一个错误或警告处"let g:syntastic_auto_jump = 1"yapf自动格式化快捷键"autocmd FileType python nnoremap  :0, $!yapf

保存退出后,用PluginInstall命令安装。

yapf仅对py文件有效, 如果出现语法错误,可能会出现乱码,这时按u键恢复py文件。

第十三步 安装MariaDB数据库

MariaDB是MySQL作者的新分支,CentOS已经默认使用MariaDB代替MySQL。

  • 安装

sudo apt -y install mariadb-server python3-pymysql
  • 重启数据库,以创建sock文件

sudo service mysql restart
  • 切换到root用户,进入数据库

su -# 输入密码mysql
  • 在mysql> 提示符下创建用户

# 创建一个名为:admin 密码为:admin 的用户。insert into mysql.user(Host,User,Password) values("localhost","admin",password("admin"));# 刷新权限flush privileges;# 赋予admin用户所有权限GRANT ALL ON *.* TO 'admin'@'localhost';# 删除用户及所有权限DROP USER account;
  • ~/.zshrc中设置alias

alias db='sudo service mysql start'
  • 注意:mariaDB需要手动创建数据库

  • Ubuntu上mariaDB的默认字符集为utf8mb4,兼容utf-8,不需要进行更改。Centos需要设置charset。

第十四步:(仅对本人有效)修改.vimrc,添加molakai主题

  • 复制配置好的vimrccp /mnt/d/.vimrc ~/.vimrc

使用旧版的.vimrc后,出现进入vim没有配色的情况。
这是因为vundle在vimrc中的配置是filetype off,关掉即可。
当需要使用vundle的时候再打开这个选项。

  • 复制vim的molokai配色

mkdir -p ~/.vim/colors && cp /mnt/d/molokai.vim ~/.vim/colors/molokai.vim

重启服务,大功告成。

4ed1fb4fc82fffc66f1ef3d2382ac6a4.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu http错误_Windows安装WSL--Ubuntu 的相关文章

  • 如何以编程方式清除 Kerberos 票证缓存

    有谁知道如何使用托管 非托管代码清除本地计算机上的 Kerberos 票证缓存 提前致谢 我相信你需要打电话给LsaCa llAuthentication包 http msdn microsoft com en us library aa3
  • 在openCV内部调用Gstreamer

    我需要在 openCV 代码中调用 Gstremaer 本质上是打开摄像机 当我查看源代码时 modules highgui src cap gstreamer cpp似乎是我正在寻找的文件 我用 Gstreamer 标志编译了 OpenC
  • 如何在 Java Gnome/GTK 程序中使用 Glade UI(.glade 文件)?

    我在 Internet 上进行了一项研究 寻找教程 文档来解释如何在 Java Gnome 项目中使用 Glade 中设计的 UI 但没有成功 我已经知道如何使用 Java Gnome GTK 从代码创建 UI 不管怎样 我想使用我在 Ja
  • 将目录添加到path环境变量

    我的要求是将目录之一添加到path安装我的应用程序时 Windows 中的环境变量并将其删除path使用批处理文件卸载时的环境变量 在与此相关的 stackoverflow 答案之一中 建议将目录添加到路径环境变量中 setx path C
  • 如何在 Windows 上安装 PHP 的 PDO 驱动程序?

    我在 Windows 服务器上安装了 Apache PHP 5 6 和 MySQL 5 7 在 php ini 中 我启用了以下内容 extension php mysql dll extension php mysqli dll exte
  • MinGW g++ 在自己的包含目录中找不到标头

    所以我最近通过最新版本安装了 MinGWnuwen 的 MinGW 发行版 http nuwen net mingw html其中包括 boost C 库 具体来说 我正在寻找 boost 库提供的scoped ptr 但是 当我尝试包含s
  • 32位进程在64位操作系统上可以访问多少内存?

    在 Windows 上 正常情况下 32 位进程只能访问 2GB RAM 或通过 boot ini 文件中的特殊开关访问 3GB 在 64 位操作系统上运行 32 位进程时 有多少可用内存 是否有任何特殊的开关或设置可以改变这种情况 默认
  • Nodejs + npm,在ntfs分区安装模块

    我在安装 npm 模块时遇到问题 NodeJS 安装在 Windows 主机上 Virtual Box 上运行的 Ubuntu 11 10 上 我的项目文件位于 NTFS 分区上 我必须与 Windows 共享它们 当我尝试安装某些 npm
  • 如何在python中获取硬盘驱动器的序列号

    我尝试使用wmi来获取硬盘的序列号 我所做的是这样的 启动ipython并使用以下方式获取序列号 import wmi c wmi WMI for x in c Win32 PhysicalMedia print x 结果是这样的 inst
  • 如何使用 PHP 更改文件的标题属性

    用户使用我的 PHP 应用程序上传 PDF 文件 我将它们存储在 S3 上 稍后 其他用户会查看这些文件 我会在他们的浏览器中 内联 显示这些文件 问题在于 PDF 的 标题 属性显示在通常显示网站标题的浏览器选项卡中 由于它是由原始上传的
  • 无法在 git 上获取 Http 工作

    我在拇指驱动器上使用 gitbash 作为 git 我的防火墙阻止了我 并且想设置我的 git 以进行 http 访问 我使用 github 并且已经看到了有关如何执行此操作的各种信息 但我还不够了解 无法让它为我自己工作 我在 php i
  • 添加到 .NET 任务栏中的右键单击应用程序菜单

    大多数应用程序只有 恢复 移动 调整大小 最小化 最大化和关闭 但是MS SQL提供了额外的选项 帮助 自定义视图 按照这些思路 是否可以添加到任务栏中应用程序的右键单击菜单 注 我是not指通知区域中时钟旁边的图标 这是一个更简单的ans
  • 如何获取属于某个进程的打开句柄的计数?

    您可以使用该程序流程浏览器 http technet microsoft com en us sysinternals bb896653查看正在运行的应用程序有多少个句柄 有没有办法用Delphi代码来获取这个数字 我有兴趣跟踪应用程序本身
  • JNA Windows 服务启动类型

    我一直在使用 JNA 并且能够使用下面的代码返回 Windows 服务的状态 即启动或停止 但我不确定如何返回服务的启动类型 我确信 JNA 之外还有其他方法 但如果可能的话我想继续使用 JNA import com sun jna imp
  • 后台地理围栏 Windows Phone 8.1 (WinRT)

    Issue 我试图在 WP8 1 WinRT 中发生地理围栏事件 进入 退出 时触发后台任务 我已经编写了一个示例应用程序来尝试让它工作 但似乎无法做到这一点 到目前为止 我已采取以下步骤来尝试让地理围栏在后台运行 检查位置功能 创建 注册
  • 该进程无法访问该文件,因为该文件正在被另一个进程使用

    当我从 bat 文件启动 net 控制台应用程序时 例如start myapp exe 然后 myapp exe 尝试将文件写入其当前目录 尽管我收到 net 运行时错误 声称该文件正在被另一个应用程序使用 没有其他应用程序在运行 http
  • 如何仅回显“开”或“关”文本?

    大家都知道 在 Windows 命令文件中 cmd echo on echo off 启用和禁用回显 但是如何仅回显文本 on 或文本 off IE 如何发送文本 on off to stdout 目标系统 Windows XP 那么在 D
  • 在 Android 2.2 上运行 HelloCordova 时找不到类“android.webkit.WebResourceResponse”

    我尝试按照本教程进行操作 http docs phonegap com en 2 7 0 guide getting started android index md html Getting 20 Started 20with 20 An
  • PE 文件中的跳转存根

    最近我反汇编了一个DLL 用c c 编写 发现代码段内有很多 跳转存根 这些存根除了跳转到 DLL 内的函数之外什么也不做 eg jmp foo jmp foo2 为什么编译器 Visual studio 2012 在二进制文件中包含这些函
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使

随机推荐