在 WSL 的 Debian 12 系统中安装 curl
非常简单,你可以直接使用 APT 包管理器从官方仓库安装。以下是详细步骤:
1. 更新软件包索引
首先确保系统的包索引是最新的:
sudo apt update
2. 安装 curl
执行以下命令安装 curl
:
sudo apt install -y curl
参数 -y
用于自动确认安装,无需手动输入 yes
。
3. 验证安装
安装完成后,通过以下命令检查 curl
是否正确安装并查看版本:
$ which curl
/usr/bin/curl
curl --version
如果成功输出版本信息(例如 curl 8.4.0
),则表示安装成功。
额外说明
curl
是一个常用的命令行工具,用于通过各种协议(如 HTTP、HTTPS、FTP 等)传输数据- 在 Debian 12 中,
curl
包已包含 SSL/TLS 支持(基于 OpenSSL 或 GnuTLS) - 如果需要卸载
curl
,可以使用命令:sudo apt remove curl
现在你可以使用 curl
进行网络请求、下载文件等操作了!
在 WSL 中的 Debian 12 系统上安装 QuickJS 可以通过源码编译的方式完成。以下是详细的安装步骤:
1. 安装必要的编译工具
首先需要安装编译 QuickJS 所需的工具链:
sudo apt update
sudo apt install -y build-essential git
2. 获取 QuickJS 源码
从 GitHub 仓库克隆 QuickJS 的最新源码:
git clone https://github.com/bellard/quickjs.git
cd quickjs
3. 编译并安装 QuickJS
执行编译和安装命令:
make
sudo make install
4. 验证安装结果
安装完成后,可以通过以下命令验证 QuickJS 是否正确安装:
qjs --version
如果成功输出版本信息,则表示安装成功。
5. 卸载方法(可选)
如果需要卸载 QuickJS,可以在源码目录下执行:
sudo make uninstall
通过以上步骤,你可以在 WSL 的 Debian 12 系统中成功安装 QuickJS 环境。
要解压 quickjs-2025-04-26.tar.xz
文件,你可以使用以下命令:
tar -xf quickjs-2025-04-26.tar.xz
参数说明:
-x
:解包(extract)文件-f
:指定要操作的文件名(file)-J
:使用 xz 格式解压(如果 tar 版本较新,-xf
可自动识别 xz 格式,无需-J
)
后续步骤:
解压后,进入解压生成的目录:
cd quickjs-2025-04-26
然后继续编译安装:
make
sudo make install
这样就完成了 QuickJS 的编译安装过程。
我的实际干法如下
从 bellard.org 下载 quickjs-2025-04-26.tar.xz 到 D:\Tcc
df -h
cd /mnt/d/Tcc
dir
cp quickjs-2025-04-26.tar.xz ~/
cd ~
dir
tar -xf quickjs-2025-04-26.tar.xz
ls
cd quickjs-2025-04-26
make
sudo make install
mkdir -p "/usr/local/bin"
strip qjs qjsc
install -m755 qjs qjsc "/usr/local/bin"
mkdir -p "/usr/local/lib/quickjs"
install -m644 libquickjs.a "/usr/local/lib/quickjs"
mkdir -p "/usr/local/include/quickjs"
install -m644 quickjs.h quickjs-libc.h "/usr/local/include/quickjs"
$ which qjs qjsc
/usr/local/bin/qjs
/usr/local/bin/qjsc
编写 fetchProtein.js 如下
// fetchProtein.js
import { urlGet } from 'std';async function fetchProteinData(uniprotId) {try {console.log('开始请求蛋白质数据,Uniprot ID:', uniprotId);const response = await urlGet(`https://www.ebi.ac.uk/proteins/api/proteins/${uniprotId}`);console.log('请求完成,response:', response.length);if (!response) {throw new Error('请求返回 null');}/*if (!response.ok) {throw new Error(`HTTP错误,状态码: ${response.status}`);}*/const data = JSON.parse(response);return data;} catch (error) {console.log('获取蛋白质数据时出错:', error);return null;}
}// 示例使用
async function getProteinInfo() {const protein = await fetchProteinData('P01308'); // 胰岛素的Uniprot IDif (protein) {console.log(`蛋白质名称: ${protein.protein.recommendedName.fullName.value}`);console.log(`基因名称: ${protein.gene[0].name.value}`);}
}getProteinInfo();
运行
$ qjs fetchProtein.js
开始请求蛋白质数据,Uniprot ID: P01308
请求完成,response: 132539
蛋白质名称: Insulin
基因名称: INS