1.å¦ä½ç»å½å°Dockerçcontainerä¸
2.scoop install dark安装失败?
å¦ä½ç»å½å°Dockerçcontainerä¸
使ç¨Dockeré¨ç½²containeråï¼æ们æ»æ类似çéæ±ï¼ç»å½å°containerä¸è¿è¡ä¸äºæä½ã
常è§çæ¹å¼
1.æsshæ¹å¼ï¼ç¹ç¹æ¯ä¸éè¦ç¹å«çrootæéï¼ä½æ¯containeréè¦å®è£ sshd
2.使ç¨nsenteræ¥ä»containerè·å¾ä¸ä¸ªshellå®ç°ç»å½
3.使ç¨nsinit
æ¬æ主è¦ä»ç»nsenterç使ç¨
nsenter使ç¨é常æ¹ä¾¿ï¼ä½æ¯æçæä½ç³»ç»åè¡çæ¬util-linuxå æ¯è¾èï¼æ以没æå å«è¿ä¸ªnsenterï¼é£ä¹ä½ éè¦èªå·±ç¼è¯åå®è£ ï¼å¯¹äºhacker们æ¥è¯´ï¼æºç ç¼è¯å®è£ ä¸æ¯å°caseåï¼èµ°èµ·ï¼
注æï¼ ä¸é¢çå½ä»¤è¿è¡ä»¥Ubuntu .为ä¾
1ï¼ä¸è½½æºç
git clone git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git util-linux
cd util-linux/
2ï¼å®è£ ä¾èµå ï¼è¿ä¸ªå ·ä½ç¼ºå°çæ åµï¼ä¼å¨è¿è¡./autogen.shçæ示ï¼ä½ ä¹å¯ä»¥ç´æ¥è¿è¡3ï¼ï¼æ ¹æ®æ示æ¥å®è£ 对åºçä¾èµå
sudo apt-get install libtool
sudo apt-get install automake
sudo apt-get install autopoint
sudo apt-get install libncurses5-dev
3ï¼ç¼è¯å®è£
./autogen.sh
./configure & make
4ï¼æµè¯å®è£ æå
./nsenter -V
5) å°nsenterå å ¥ç³»ç»ç¯å¢å¯æ§è¡è·¯å¾ä¸
sudo cp ./nsenter /usr/bin
å¦ä½ä½¿ç¨nsenterï¼é常ç®åï¼
1) é¦å æ¾å°container对åºçè¿ç¨ID
sudo docker inspect --format "{ { .State.Pid }}"
2) æ§è¡nsenterè·å¾ä¸ä¸ªshell ï¼å设1ï¼è·å¾idæ¯
sudo nsenter --target --mount --uts --ipc --net --pid
scoop install dark安装失败?
1 概述
作为一名使用 win 的开发者,搭建开发环境往往是一件比较痛苦的事,需要从网上下载各种软件,在电脑上配置不同软件运行环境,对软件进行各种设置,不仅耗时,看懂thingsboard源码而且容易出现各种问题。搭建的环境还会存在下面一些问题:
安装大量程序造成路径污染。安装和卸载比较麻烦。开发环境不能迁移,重装系统或者换电脑需要重新搭建开发环境。软件版本不好控制。为了解决上面这些问题,我们可以使用 WSL+Docker+Scoop 搭建开发环境,取代通过图形界面安装软件和 VMware 安装 Linux 环境的传统方式。
WSL 是适用于 Linux 的 Windows 子系统, 可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 机器上。
Scoop 是随精视频源码 Windows 的命令行安装程序,可以让我们从命令行以最小的安装量安装程序, 它消除了安装界面和安装程序造成的路径污染,它安装和卸载软件只需一行命令就可以完成,它还可以随意切换软件的版本。
一个完整的开发环境组成:首先使用 WSL 搭建一个 Linux 环境,然后在 Linux 环境里安装 Docker 应用,使用 Docker 来安装一些常用软件,比如数据库、web 环境等,Scoop 则是陈浩CYQ源码在本机上安装一些开发用到的软件,比如 jdk、maven、idea 等。WSL 和 Scoop 都是比较容易备份和还原的,这两个搭建好了,我们利用备份还原可以快速在另一台机器上搭建同样的一套环境,下面是搭建环境的具体流程。
2 WSL
2.1 WSL 安装
使用 WINDOWS 键 + R,输入 winver,检查 win 版本,OPPO源码获取root确保内部版本号是 . 以上,否则更新 win 到最新版本。
2. 以管理员身份打开 PowerShell 并运行下面命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
3. 重新启动计算机。
4. 下载 Linux内核更新包[1],然后安装。
5. 将 wsl2 设置为默认版本, 以管理员身份打开 PowerShell 并运行下面命令:
wsl --set-default-version 2
6. 安装 Ubuntu . LTS, 打开 Microsoft Store[2],搜索 Ubuntu . LTS[3] 安装, 安装完成后打开 Ubuntu . LTS, 等候几分钟会提示设置用户名和密码,如果不设置用户名和密码直接关闭窗口则默认以 root 登录,这里我们直接关闭窗口,不设置用户名和密码。和平精英绘制源码
7. 然后重新打开 Ubuntu . LTS 就会进入 Ubuntu . LTS了,我们也可以在 powershell 使用 wsl 这个命令进入 Ubuntu . LTS。
2.2 WSL 配置
WSL 每次启动后,windows 都会给它分配一个随机的 IP 地址,这样是不利于我们访问 docker 里的服务的,为了解决这个问题,我们可以创建一个脚本文件 wsl2-ip.bat来给 wsl 分配一个固定的 IP,在每次启动 wsl 后用管理员权限运行这个脚本,文件内容如下:
@echo off
setlocal enabledelayedexpansion
:: set wsl2 ip
wsl -u root ip addr | findstr "...2" > nul
if !errorlevel! equ 0 (
echo wsl ip has set
) else (
wsl -d Ubuntu-. -u root ip addr add ...2/ broadcast ... dev eth0 label eth0:1
echo set wsl ip success: ...2
)
:: set windows ip
ipconfig | findstr "...1" > nul
if !errorlevel! equ 0 (
echo windows ip has set
) else (
netsh interface ip add address "vEthernet (WSL)" ...1 ...
echo set windows ip success: ...1
)
pause
其中 ...2 表示 Linux 的 IP 地址, ...1 表示主机的 IP 地址。
有时会遇到 Ubuntu . LTS 无法连接网络,这个非常重要,我们可以运行下面命令解决:
sed -i '4d' /etc/resolv.conf
sed -i '3a\nameserver 8.8.8.8' /etc/resolv.conf
sed -i '4a\nameserver ...' /etc/resolv.conf
2.3 Ubuntu 配置
2.3.1 替换镜像源
1. 备份 sources.list 文件,运行下面命令:
mv /etc/apt/sources.list /etc/apt/sources.list.bak
2. 创建 source.list 文件,运行下面命令:vim /etc/apt/sources.list
3. 然后在文件里添加下面内容,下面源任选其一即可。
# 清华源
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb /ubuntu/ focal main restricted universe multiverse
# deb-src /ubuntu/ focal main restricted universe multiverse
deb /ubuntu/ focal-updates main restricted universe multiverse
# deb-src /ubuntu/ focal-updates main restricted universe multiverse
deb /ubuntu/ focal-backports main restricted universe multiverse
# deb-src /ubuntu/ focal-backports main restricted universe multiverse
deb /ubuntu/ focal-security main restricted universe multiverse
# deb-src /ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb /ubuntu/ focal-proposed main restricted universe multiverse
# deb-src /ubuntu/ focal-proposed main restricted universe multiverse
# 阿里源
deb /ubuntu/ focal main restricted universe multiverse
#deb-src /ubuntu/ focal main restricted universe multiverse
deb /ubuntu/ focal-updates main restricted universe multiverse
#deb-src /ubuntu/ focal-updates main restricted universe multiverse
deb /ubuntu/ focal-backports main restricted universe multiverse
#deb-src /ubuntu/ focal-backports main restricted universe multiverse
deb /ubuntu/ focal-security main restricted universe multiverse
#deb-src /ubuntu/ focal-security main restricted universe multiverse
deb /ubuntu/ focal-proposed main restricted universe multiverse
#deb-src /ubuntu/ focal-proposed main restricted universe multiverse
#网易源
deb /"]
}
3 Scoop
3.1 Scoop 安装
1. 以管理员权限打开 PowerShell 。
2. 自定义用户软件和全局软件安装位置,运行下面命令:
$env:SCOOP='D:\Softwares\Scoop\LocalApps'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
$env:SCOOP_GLOBAL='D:\Softwares\Scoop\GlobalApps'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')
3. 配置安全策略以及安装 Scoop,运行下面命令:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('域名,查询对应的 IP 地址。
3. 配置 C:\Windows\System\drivers\etc\hosts文件,在修改前赋予 hosts 文件读写权限。
4. 修改 host 文件内容如下,第一列是查询出来的ip地址,第二列是其对应的域名,中间有个空格。
5. 保存后重新运行安装命令。
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('/chawyehsu/dorado
scoop bucket add Ash /Ash/Scoop-Ash.git
scoop bucket add pleiades /jfut/scoop-pleiades.git
scoop bucket add Scoop-Apps /ACooper/scoop-apps
scoop bucket add scoop-zapps /kkzzhizhou/scoop-zapps
scoop bucket add lemon /hoilc/scoop-lemon
scoop bucket add raresoft /L-Trump/scoop-raresoft
4. 如果软件仓库添加失败,还是因为网络的原因,大家可以把这些仓库 fork 到自己的码云账户下,然后再添加。
5. 使用 aria2 来加速软件的安装:
scoop install aria2 -g
scoop config aria2-max-connection-per-server
scoop config aria2-split
scoop config aria2-min-split-size 1M
如果想关闭 aria2,可以运行 scoop config aria2-enabled false命令。
3.4 Scoop 常用命令
# 搜索app
scoop search <应用名>
# 检查哪些软件有更新
scoop status
# 版本切换
scoop reset <应用名>@<版本切换>
# 禁止某app更新
scoop hold <应用名>
# 更新所有app
scoop update
*# 安装app
scoop install <应用名>
#全局安装app
scoop install -g <应用名>
#安装extras软件源下的app
scoop install extras/<应用名>
# 卸载app
scoop uninstall <应用名>
# 卸载全局安装的app
scoop uninstall -g <应用名>
4 总结
开发环境软件的安装与配置到这里就完成了,利用上面这些软件,你可以快速搭建 Java、Go、C++、Python等开发环境。
参考资料
[1]Linux内核更新包: /store/apps/9n6svws3rx
[4]IP地址查询网站: /