Skip to content

Commit

Permalink
linux distributions, vscode jupyter debug, pycharm&vscode remote prog…
Browse files Browse the repository at this point in the history
…ram debutg
  • Loading branch information
yuy4o committed Sep 18, 2024
1 parent 697fc66 commit dd3d347
Show file tree
Hide file tree
Showing 3 changed files with 264 additions and 2 deletions.
57 changes: 57 additions & 0 deletions _posts/2024-04-22-Linux General.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,63 @@ tags: [linux]

## Linux 发行版本

Linux 发行版(Linux distributions)是基于 Linux 内核的操作系统的不同版本,它们在系统管理、用户界面、默认软件和包管理等方面有所不同。以下是不同 Linux 发行版之间的关系及分类:

**1.Linux 内核**
所有 Linux 发行版都基于 Linux 内核,这是 Linux 操作系统的核心。内核负责管理硬件资源、提供系统调用和执行用户程序

Linux 内核使用 GNU GPL 许可证,这要求衍生作品也必须开源。相应地,FreeBSD 使用 BSD 许可证,这种许可证允许将代码用于专有软件,并且不要求衍生作品也必须开源

**2.主要发行版家族**
Linux 发行版可以按照不同的标准进行分类,这些标准通常包括包管理系统、桌面环境、目标用户群体等。以下是一些主要的发行版家族及其代表性发行版:

*a. Debian 家族*
Debian:一个稳定、广泛使用的发行版,重视系统的稳定性和可靠性。它使用 .deb 包和 dpkg 包管理系统

Ubuntu:基于 Debian 的发行版,旨在提供用户友好的体验。Ubuntu 每六个月发布一个新版本,并且有多个变体,例如 Ubuntu Desktop、Ubuntu Server 和 Ubuntu LTS(长期支持)

Linux Mint:基于 Ubuntu(有时基于 Debian),专注于易用性和桌面体验,提供多种桌面环境,如 Cinnamon 和 MATE

*b. Red Hat 家族*
Red Hat Enterprise Linux (RHEL):企业级发行版,提供稳定的支持和维护,主要用于商业环境。使用 .rpm 包和 yum 包管理系统

CentOS:基于 RHEL 的免费版本,提供与 RHEL 相同的源代码,但没有官方支持。CentOS 8 已经被 CentOS Stream 取代,后者是 RHEL 的滚动更新版本

Fedora:由 Red Hat 资助的社区驱动发行版,旨在提供最新的软件和技术。是 RHEL 的上游开发版本,也使用 .rpm 包和 dnf 包管理系统

*c. SUSE 家族*
openSUSE:一个社区驱动的发行版,提供稳定的版本和滚动更新的版本(openSUSE Leap 和 openSUSE Tumbleweed)。使用 .rpm 包和 zypper 包管理系统

SUSE Linux Enterprise Server (SLES):企业级发行版,提供商业支持和长期维护

*d. Arch 家族*

Arch Linux:一个以简约为原则的发行版,提供最新的软件和用户控制的安装体验。使用 pacman 包管理系统

Manjaro:基于 Arch 的发行版,提供更易用的安装和用户体验,同时保留了 Arch 的灵活性

*e. Gentoo 家族*

Gentoo:一个源代码发行版,允许用户根据自己的需求编译和优化软件。使用 Portage 包管理系统

Calculate Linux:基于 Gentoo 的发行版,提供了开箱即用的桌面和服务器环境

**3.发行版间的关系**

衍生版(Derivatives):许多发行版是其他发行版的衍生版。例如,Linux Mint 是 Ubuntu 的衍生版,Kali Linux 是 Debian 的衍生版

社区和企业支持:一些发行版,如 Fedora 和 CentOS,作为 Red Hat 的开发版本和社区版本,具有紧密的关系。Debian 和 Ubuntu 之间的关系也是非常显著,Ubuntu 基于 Debian 并继承了其许多特性

包管理系统:不同 Linux 发行版使用不同的包管理系统。例如,Debian 和 Ubuntu 使用 APT(Advanced Package Tool) 和 dpkg,Red Hat 和 Fedora 使用 RPM(Red Hat Package Manager) 和 dnf(或 yum),Arch 使用 pacman,而 Gentoo 使用 Portage(FreeBSD 使用 Ports Collection 系统和 pkg 包管理器)

**4.选择适合的发行版取决于个人需求和使用场景**

用户友好性:如果你是新手,可以考虑 Ubuntu、Linux Mint 或 Fedora

企业环境:RHEL 和 SLES 提供了企业级支持,适合商业环境

高级用户和开发者:Arch Linux 和 Gentoo 提供了高度的自定义和控制

[最全Linux的发行版简介,一文读懂各发行版之间的联系和区别](https://cloud.tencent.com/developer/article/1114589)[浅谈Linux下dpkg、apt-get、yum和rpm命令的区别](https://cloud.tencent.com/developer/article/1759038)[维基-Linux发行版列表](https://zh.wikipedia.org/wiki/Linux%E5%8F%91%E8%A1%8C%E7%89%88%E5%88%97%E8%A1%A8)[维基-Linux发行版](https://zh.wikipedia.org/wiki/Linux%E5%8F%91%E8%A1%8C%E7%89%88)

![240421linuxpkg](https://raw.githubusercontent.com/yuy4o/yuy4o/main/figures/240421linuxpkg.png)
Expand Down
7 changes: 5 additions & 2 deletions _posts/2024-05-12-从零配置Windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -355,13 +355,16 @@ PE辅助安装:[微PE工具箱](https://www.wepe.com.cn/),[MSDN](https://msd

针对代码跳转太慢的问题,建议选择文件数较少的远程根目录打开,减少编辑器检索的负担


[**VSCode 配置Workspace**](https://blog.csdn.net/qq_15601471/article/details/120739777)

**VSCode `.py`文件中编写并执行 jupyter notebook 的单元格**
**VSCode `.py`文件中编写并执行 jupyter notebook 单元格**

安装必要拓展 `Jupyter`,当前解释器环境中 `pip install jupyter`。在需要执行的代码前后加上 `# %%`,代码块/单元格上方出现 `运行单元格|运行以下丨调试单元格|转到`,点击运行按钮,弹出交互窗口运行代码块

**VSCode Debug jupyter notebook 单元格**

安装插件 `Python Debugger` - `打断点` - `单元格左侧小箭头` - `调试单元格`

**PyCharm 快捷键**`Ctrl ~` 快速切换主题、编辑器配色、代码样式、按键映射、视图、布局、缩放

**Mirror:**
Expand Down
202 changes: 202 additions & 0 deletions _posts/2024-07-21-PyCharm专业版远程连接.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,208 @@ PyCharm 终端能同时远程连接多台服务器不需要打开多个页面,

3.更换新的解释器后,如果勾选自动上传文件,会将本地本地文件夹的文件全部上传到设置的解释器远程路径。这控制着文件的实时上传。目前还不知道 `工具-部署-自动上传` 控制的是什么

### PyCharm 远程项目 Debug

配置好 PyCharm 远程连接后,无需下载所有远程项目文件到本地,只需下载某个启动的Python脚本到本地。点击右上角的 `更多操作` - `配置` -`编辑`,左边栏选中待调试的Python脚本,`运行` 选择 `module`(针对相对路径,如 `qanything_kernel.qanything_server.sanic_api`)或 `script`,脚本形参无需引号或逗号,如:
```
--host
0.0.0.0
--port
7665
--model_size
7B
--use_cpu
--use_openai_api
--openai_api_base
http://172.27.33.63:1234/v1
--openai_api_key
empty
--openai_api_model_name
/data/jiangyy/qwen2-0.5b
```

### 补充:VScode 远程项目 Debug

#### 1. Python

[插件配置](https://yuy4o.github.io/posts/%E4%BB%8E%E9%9B%B6%E9%85%8D%E7%BD%AEWindows/#cross-platform-resource-%E9%80%82%E7%94%A8macos)

安装 `Python Debugger`,VSCode 左边栏 `运行和调试` - `创建launch.json文件` - `选择调试器Python Debugger`,配置`launch.json` 的内容如:

```json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Python",
"type": "debugpy",
"request": "launch",
// "program": "/data/jiangyy/inconv/qanything_kernel/qanything_server/sanic_api.py",
"module": "qanything_kernel.qanything_server.sanic_api",
"console": "integratedTerminal",
"args": ["--host", "0.0.0.0",
"--port", "7665",
"--model_size", "7B",
"--use_cpu",
"--use_openai_api",
"--openai_api_base", "http://172.27.33.63:1234/v1",
"--openai_api_key", "empty",
"--openai_api_model_name", "/data/jiangyy/qwen2-0.5b"
],
// "env": {
// "CONDA_PREFIX": "${env:CONDA_PREFIX}"
// }
},
]
}
```
#### 2. [C++](https://yang-xijie.github.io/LECTURE/vscode-cpp/7_%E7%94%A8VSCode%E8%B0%83%E8%AF%95Cpp%E4%BB%A3%E7%A0%81/)

VSCode 文件夹下 `.vscode` 包含:

`c_cpp_properties.json`:cpp 标准及版本信息

```json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "D:\\NonSystem\\mingw64\\bin\\gcc.exe",// 自行修改
"intelliSenseMode": "windows-gcc-x64",
"cppStandard": "c++11",
"cStandard": "c11"
}
],
"version": 4
}
```

`launch.json`:运行和调试中使用的命令

```json
{
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:\\NonSystem\\mingw64\\bin\\gdb.exe",// 自行修改
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe 生成活动文件"
}
]
}
```

`settings.json`:工作区相关设置

```json
{
"files.associations": {
"array": "cpp",
"atomic": "cpp",
"bit": "cpp",
"*.tcc": "cpp",
"cctype": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"compare": "cpp",
"concepts": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"string": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"exception": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"numeric": "cpp",
"random": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"initializer_list": "cpp",
"iosfwd": "cpp",
"iostream": "cpp",
"istream": "cpp",
"limits": "cpp",
"new": "cpp",
"numbers": "cpp",
"ostream": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"typeinfo": "cpp"
}
}
```

`tasks.json`:保存相关任务,可以在`launch.json` 中调用它们,例如C语言运行调试运行之前需要编译,可以将编译部分写成一个单独的任务,作为调试运行任务的前置任务调用

```json
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "D:\\NonSystem\\mingw64\\bin\\g++.exe",// 自行修改
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
```


### 参考

[PyCharm配置连接远程主机篇一](https://www.bilibili.com/video/BV1Eg8pe8Ewp/)[PyCharm配置连接远程主机篇二](https://www.bilibili.com/video/BV11888efENW/)
Expand Down

0 comments on commit dd3d347

Please sign in to comment.