cuda
一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系
无敌了老黄,居然后面的Nvidia驱动居然还兼容之前的cuda版本
一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系
无敌了老黄,居然后面的Nvidia驱动居然还兼容之前的cuda版本
本文的首要目的是给予Linux初学者一个简单、易学的教程,以便在看完本文后对Linux系统有一个基础的认识(而非系统级的深入),可以对常见的软件和功能进行配置,甚至可以自己写一写一键脚本。
本教程写于2021年下半年,采用的系统为Debian GNU/Linux 11 (bullseye)。
解释使用Debian而不是CentOS的原因
国内首批接触Linux系统的人主要集中在科研院校,大多数是延续了Unix-like的背景,在千禧年前后才有了真正意义上的Linux使用者:纯Linux平台开发、运行服务和应用,他们或直接或间接地推广了Linux系统。红帽(Red Hat, Inc.)在1994年就开始发布了同名的操作系统:Red Hat Linux(后改组为Red Hat Enterprise Linux,缩写为RHEL)。得益于红帽优秀的团队和商业支持,RHEL这一发行版迅速占领了国内市场。彼时的国内计算机市场远不如今日繁荣,在口口相传和红帽的推广中,RHEL成为了Linux入门的主流选项,即使后来号称用户友好的Ubuntu出现了,绝大多数尝鲜的人依然能看到众多网站里面只提供RHEL版本的教程。
CentOS是根据RHEL的源码重新编译的,等于换商标版本的RHEL,软件层面上,两者无本质区别。但CentOS是反人类的,至少是反入门用户的。使用RHEL的基本为商业用户,可以付费获得红帽的技术支持,或者干脆有一个自己的维护团队;而CentOS作为一个社区自发形成的操作系统,拥有落后的软件源/包,繁琐的配置,和对个人用户而言根本没有必要的SElinux等。举个例子,很多入门者修改SSH端口的时候,发现所有的操作都没有问题,但是死活无法生效,最终发现是没有在SElinux里面放行。如果你想安装个软件,你就得考虑是从落后主流版本好几代的软件源/包里面安装,还是自己下载源码进行编译以获取主流的使用体验。对于入门者而言,CentOS的安全性和稳定性是个虚假的概念,毕竟让一个刚接触Linux的人去自己编译源码安装,无异于让小学生上战场,输了就说是小学生战斗力太弱。
所以本文以Debian GNU/Linux(后续简称为Debian)来演示,也有着推广Debian的意思在里面,毕竟相比于Ubuntu往系统里面塞包括snap在内的一系列私货而言,Debain始终遵循着一个纯净的Linux的要求。而其他一些发行版,要么是专用性太强(如SUSE),要么是入门者不友好(如 Arch Linux),权衡之后,选择了写本文时,最新的Debian系统,即Debian GNU/Linux 11 (bullseye)。
参考
由于Linux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw。
ubuntu 系统默认已安装ufw。ubuntu 9.10默认的便是UFW防火墙,它已经支持界面操作了。在命令行运行ufw命令就可以看到提示的一系列可进行的操作。注意,主机上某些服务需要外部对本机的访问,例如图床服务,必须使用ufw对外开放端口,以minio图床为例
1 | sudo ufw allow 9090 |
1 | sudo apt-get install ufw |
sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny
运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。
apt-get install ufw
ufw enable
ufw default deny
下载地址
下载TS3 Client,WINDOWS对应的版本
一路安装就行了,安装路径自己选一个
安装完成后直接运行软件,出来一个协议需要同意
之后会要你登录一个账号,不用管,直接$X$掉
确保teamspeak没有启动,再进行汉化.
下载Chinese_Translation_zh-CN.ts3_translation
打开你的安装路径位置,将Chinese_Translation_zh-CN.ts3_translation
放到文件目录下
使用TeamSpeak程序目录下的 package_inst.exe
来打开汉化包 Chinese_Translation_zh-CN.ts3_translation
并
安装
界面就变成中文力
连接到ts.l4rk.cn
,没有密码,昵称自己定
连接成功
唯一的困难在于环境不一样,我的ubuntu在虚拟机上,直接访问ip不行
ikuai上部署了ddns还有端口映射,所以可以将ts用到的端口映射到外网
三个9987,10011,30033三个必须
映射,其他随意
端口 | 协议 | 使用说明 | 是否必须 |
9987 | UDP | 默认语音服务端口 | 是 |
10011 | TCP | ServerQuery raw 端口 | 是 |
10022 | TCP | ServerQuery SSH 端口(3.3.0 以上版本服务端) | 否 |
10080 | TCP | WebQuery(HTTP) | 否 |
10443 | TCP | WebQuery(HTTPS) | 否 |
30033 | TCP | 文件传输端口(上传每个房间的头像这个端口就必须开) | 是 |
41144 | TCP | TSDNS服务端口 | 否 |
Scoop是一款适用于Windows平台的命令行软件(包)管理工具,这里是Github介绍页。简单来说,就是可以通过命令行工具(PowerShell、CMD等)实现软件(包)的安装管理等需求,通过简单的一行代码实现软件的下载、安装、卸载、更新等操作。其灵感来源于macOS的Homebrew,Mac用户可以去了解了解。
当然如果用过Linux系统,使用apt-get工具安装过软件,或者用过Python,知道pip工具用于管理Python各种依赖包,那么理解Scoop就比较容易,这些工具的设计理念与使用方法都非常类似。
Scoop一般用来管理绿色软件,即是一种通过解压压缩包即可就地使用的软件,对于比较专业软件(比如Office、Adobe等)支持不好
windows的包管理工具
为了让PowerShell可以执行脚本,首先需要设置PowerShell执行策略,通过输入以下命令Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
即可。(如果之前已开启,可忽略。)
通过以下命令,可以将Scoop安装到默认目录(C:\Users\<username>\scoop
):
1 | Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') |
转载自
什么是Bazel—教程、实例和优势
作者:方石剑
链接:https://juejin.cn/post/7120840097863303199
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Bazel是一个开源的构建工具,由谷歌开发,用于自动化大规模软件的构建过程。Pinterest、Adobe、SpaceX、Nvidia和LinkedIn等公司都使用它。在本教程中,你将了解什么是Bazel,它如何工作,以及它的重要好处。你还会学到如何为你的monorepo项目生成Bazel构建。
Bazel的工作原理与Make、Maven或Gradle等其他构建工具类似。然而,与其他工具不同的是,Bazel是为具有多语言依赖性的项目量身定做的。
例如,你可以有一个Rust或Go的服务器,一个flutter的移动客户端,和一个Angular的网络客户端。在这种情况下,如果你要手动编写自己的构建文件,以迎合每种语言的生态系统,这可能是一项艰巨的任务。幸运的是,Bazel为你完成了所有繁重的工作:
Bazel最吸引人的特点之一是你可以轻松地将它与你的项目的CI/CD挂钩。这可以帮助你提高团队的生产力,因为你可以产生更可靠的构建,定期和严格地测试你的软件。因此,你也可以很容易地出货和发布更强大的构建。
然而,Bazel不仅仅是处理多语言的依赖关系。让我们来探讨一些使它如此强大的好处。
以下是使Bazel成为出色的构建工具的关键优势。