linux-tutorial/linux/soft/svn-ops.html
Travis CI User e3e645a29a deploy
2021-05-13 17:44:54 +08:00

71 lines
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Svn 运维 | LINUX-TUTORIAL</title>
<meta name="generator" content="VuePress 1.8.2">
<link rel="icon" href="/linux-tutorial/favicon.ico">
<meta name="description" content="数据库教程">
<link rel="preload" href="/linux-tutorial/assets/css/0.styles.45d9d031.css" as="style"><link rel="preload" href="/linux-tutorial/assets/js/app.79a38eea.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/4.fb6e0f89.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/66.f2335390.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/5.cb43ecfb.js" as="script"><link rel="prefetch" href="/linux-tutorial/assets/js/10.7933187b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/11.b9b41530.js"><link rel="prefetch" href="/linux-tutorial/assets/js/12.70a5dba8.js"><link rel="prefetch" href="/linux-tutorial/assets/js/13.857dcc43.js"><link rel="prefetch" href="/linux-tutorial/assets/js/14.5a603a55.js"><link rel="prefetch" href="/linux-tutorial/assets/js/15.d217acb7.js"><link rel="prefetch" href="/linux-tutorial/assets/js/16.ad565eae.js"><link rel="prefetch" href="/linux-tutorial/assets/js/17.d43e9f56.js"><link rel="prefetch" href="/linux-tutorial/assets/js/18.aa00ff43.js"><link rel="prefetch" href="/linux-tutorial/assets/js/19.43ce44b3.js"><link rel="prefetch" href="/linux-tutorial/assets/js/20.5618e1ff.js"><link rel="prefetch" href="/linux-tutorial/assets/js/21.1c5a41d7.js"><link rel="prefetch" href="/linux-tutorial/assets/js/22.fbe9fdf1.js"><link rel="prefetch" href="/linux-tutorial/assets/js/23.a4fb0e74.js"><link rel="prefetch" href="/linux-tutorial/assets/js/24.e3a23b69.js"><link rel="prefetch" href="/linux-tutorial/assets/js/25.9896afe9.js"><link rel="prefetch" href="/linux-tutorial/assets/js/26.96164082.js"><link rel="prefetch" href="/linux-tutorial/assets/js/27.391033bb.js"><link rel="prefetch" href="/linux-tutorial/assets/js/28.703f74c2.js"><link rel="prefetch" href="/linux-tutorial/assets/js/29.02a952cb.js"><link rel="prefetch" href="/linux-tutorial/assets/js/30.7e13628f.js"><link rel="prefetch" href="/linux-tutorial/assets/js/31.c4652f75.js"><link rel="prefetch" href="/linux-tutorial/assets/js/32.05d2cbec.js"><link rel="prefetch" href="/linux-tutorial/assets/js/33.3b265df8.js"><link rel="prefetch" href="/linux-tutorial/assets/js/34.26330a03.js"><link rel="prefetch" href="/linux-tutorial/assets/js/35.417d706d.js"><link rel="prefetch" href="/linux-tutorial/assets/js/36.0ed775e0.js"><link rel="prefetch" href="/linux-tutorial/assets/js/37.34430c74.js"><link rel="prefetch" href="/linux-tutorial/assets/js/38.87d5e0ff.js"><link rel="prefetch" href="/linux-tutorial/assets/js/39.7b648b3e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/40.3b7a219e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/41.e727eee9.js"><link rel="prefetch" href="/linux-tutorial/assets/js/42.0134c187.js"><link rel="prefetch" href="/linux-tutorial/assets/js/43.175e982f.js"><link rel="prefetch" href="/linux-tutorial/assets/js/44.72d90888.js"><link rel="prefetch" href="/linux-tutorial/assets/js/45.d49955bd.js"><link rel="prefetch" href="/linux-tutorial/assets/js/46.a9c290ec.js"><link rel="prefetch" href="/linux-tutorial/assets/js/47.cc639f04.js"><link rel="prefetch" href="/linux-tutorial/assets/js/48.98c78321.js"><link rel="prefetch" href="/linux-tutorial/assets/js/49.a7c3afed.js"><link rel="prefetch" href="/linux-tutorial/assets/js/50.22d8c542.js"><link rel="prefetch" href="/linux-tutorial/assets/js/51.28055fcd.js"><link rel="prefetch" href="/linux-tutorial/assets/js/52.f8103df5.js"><link rel="prefetch" href="/linux-tutorial/assets/js/53.76541550.js"><link rel="prefetch" href="/linux-tutorial/assets/js/54.e78d2776.js"><link rel="prefetch" href="/linux-tutorial/assets/js/55.3ce3079c.js"><link rel="prefetch" href="/linux-tutorial/assets/js/56.832958c9.js"><link rel="prefetch" href="/linux-tutorial/assets/js/57.961ce896.js"><link rel="prefetch" href="/linux-tutorial/assets/js/58.6d6fbc82.js"><link rel="prefetch" href="/linux-tutorial/assets/js/59.d5e48112.js"><link rel="prefetch" href="/linux-tutorial/assets/js/6.c8f4721c.js"><link rel="prefetch" href="/linux-tutorial/assets/js/60.7927b23b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/61.ee233f24.js"><link rel="prefetch" href="/linux-tutorial/assets/js/62.6ba50cc7.js"><link rel="prefetch" href="/linux-tutorial/assets/js/63.9cbf9f2b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/64.0be148a4.js"><link rel="prefetch" href="/linux-tutorial/assets/js/65.c520257e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/67.e5737218.js"><link rel="prefetch" href="/linux-tutorial/assets/js/68.46427a01.js"><link rel="prefetch" href="/linux-tutorial/assets/js/69.450417bb.js"><link rel="prefetch" href="/linux-tutorial/assets/js/7.046e5a1b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/70.072034d2.js"><link rel="prefetch" href="/linux-tutorial/assets/js/8.77fb8967.js"><link rel="prefetch" href="/linux-tutorial/assets/js/9.ebfa537e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/vendors~flowchart.20a64d45.js"><link rel="prefetch" href="/linux-tutorial/assets/js/vendors~notification.ea176280.js">
<link rel="stylesheet" href="/linux-tutorial/assets/css/0.styles.45d9d031.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/linux-tutorial/" class="home-link router-link-active"><img src="images/dunwu-logo-100.png" alt="LINUX-TUTORIAL" class="logo"> <span class="site-name can-hide">LINUX-TUTORIAL</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/linux-tutorial/linux/cli/" class="nav-link">
Linux 命令
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/ops/" class="nav-link">
Linux 运维
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/soft/" class="nav-link router-link-active">
Linux 软件运维
</a></div><div class="nav-item"><a href="/linux-tutorial/docker/" class="nav-link">
Docker 教程
</a></div><div class="nav-item"><a href="https://github.com/dunwu/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
🎯 博客
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <a href="https://github.com/dunwu/linux-tutorial" target="_blank" rel="noopener noreferrer" class="repo-link">
Github
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/linux-tutorial/linux/cli/" class="nav-link">
Linux 命令
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/ops/" class="nav-link">
Linux 运维
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/soft/" class="nav-link router-link-active">
Linux 软件运维
</a></div><div class="nav-item"><a href="/linux-tutorial/docker/" class="nav-link">
Docker 教程
</a></div><div class="nav-item"><a href="https://github.com/dunwu/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
🎯 博客
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <a href="https://github.com/dunwu/linux-tutorial" target="_blank" rel="noopener noreferrer" class="repo-link">
Github
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Svn 运维</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/linux-tutorial/linux/soft/svn-ops.html#安装" class="sidebar-link">安装</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/svn-ops.html#安装-svn" class="sidebar-link">安装 svn</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/svn-ops.html#创建-svn-仓库" class="sidebar-link">创建 svn 仓库</a></li></ul></li><li><a href="/linux-tutorial/linux/soft/svn-ops.html#配置" class="sidebar-link">配置</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/svn-ops.html#配置-svnserve-conf" class="sidebar-link">配置 svnserve.conf</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/svn-ops.html#配置-passwd" class="sidebar-link">配置 passwd</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/svn-ops.html#配置-authz" class="sidebar-link">配置 authz</a></li></ul></li><li><a href="/linux-tutorial/linux/soft/svn-ops.html#服务器管理" class="sidebar-link">服务器管理</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/svn-ops.html#启动关闭-svn" class="sidebar-link">启动关闭 svn</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/svn-ops.html#开机自启动-svn-方法" class="sidebar-link">开机自启动 svn 方法</a></li></ul></li><li><a href="/linux-tutorial/linux/soft/svn-ops.html#客户端使用" class="sidebar-link">客户端使用</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/linux-tutorial/linux/soft/svn-ops.html#参考资料" class="sidebar-link">参考资料</a><ul class="sidebar-sub-headers"></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="svn-运维"><a href="#svn-运维" class="header-anchor">#</a> Svn 运维</h1> <blockquote><p>Svn 是 Subversion 的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统。</p> <p>本文目的在于记录 svn 的安装、配置、使用。</p></blockquote> <h2 id="安装"><a href="#安装" class="header-anchor">#</a> 安装</h2> <h3 id="安装-svn"><a href="#安装-svn" class="header-anchor">#</a> 安装 svn</h3> <div class="language-bash extra-class"><pre class="language-bash"><code>$ yum <span class="token function">install</span> -y subversion
</code></pre></div><h3 id="创建-svn-仓库"><a href="#创建-svn-仓库" class="header-anchor">#</a> 创建 svn 仓库</h3> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">mkdir</span> -p /share/svn
$ svnadmin create /share/svn
$ <span class="token function">ls</span> /share/svn
conf db <span class="token function">format</span> hooks locks README.txt
</code></pre></div><p>在 conf 目录下有三个重要的配置文件</p> <ul><li><code>authz</code> - 是权限控制文件</li> <li><code>passwd</code> - 是帐号密码文件</li> <li><code>svnserve.conf</code> - 是 SVN 服务配置文件</li></ul> <h2 id="配置"><a href="#配置" class="header-anchor">#</a> 配置</h2> <h3 id="配置-svnserve-conf"><a href="#配置-svnserve-conf" class="header-anchor">#</a> 配置 svnserve.conf</h3> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">vim</span> /share/svn/conf/svnserve.conf
</code></pre></div><p>打开下面的 5 个注释</p> <div class="language-ini extra-class"><pre class="language-ini"><code><span class="token constant">anon-access</span> <span class="token attr-value"><span class="token punctuation">=</span> read #匿名用户可读</span>
<span class="token constant">auth-access</span> <span class="token attr-value"><span class="token punctuation">=</span> write #授权用户可写</span>
<span class="token constant">password-db</span> <span class="token attr-value"><span class="token punctuation">=</span> passwd #使用哪个文件作为账号文件</span>
<span class="token constant">authz-db</span> <span class="token attr-value"><span class="token punctuation">=</span> authz #使用哪个文件作为权限文件</span>
<span class="token constant">realm</span> <span class="token attr-value"><span class="token punctuation">=</span> /share/svn # 认证空间名,版本库所在目录</span>
</code></pre></div><h3 id="配置-passwd"><a href="#配置-passwd" class="header-anchor">#</a> 配置 passwd</h3> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">vim</span> /share/svn/conf/passwd
</code></pre></div><p>添加新用户的用户名/密码如下:</p> <div class="language-ini extra-class"><pre class="language-ini"><code><span class="token selector">[users]</span>
<span class="token constant">user1</span> <span class="token attr-value"><span class="token punctuation">=</span> 123456</span>
<span class="token constant">user2</span> <span class="token attr-value"><span class="token punctuation">=</span> 123456</span>
<span class="token constant">user3</span> <span class="token attr-value"><span class="token punctuation">=</span> 123456</span>
</code></pre></div><h3 id="配置-authz"><a href="#配置-authz" class="header-anchor">#</a> 配置 authz</h3> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">vim</span> /share/svn/conf/authz
</code></pre></div><p>指定用户的访问权限(<code>r</code> 为读权限;<code>w</code> 为写权限):</p> <div class="language-ini extra-class"><pre class="language-ini"><code><span class="token selector">[/]</span>
<span class="token constant">user1</span> <span class="token attr-value"><span class="token punctuation">=</span> rw</span>
<span class="token constant">user2</span> <span class="token attr-value"><span class="token punctuation">=</span> rw</span>
<span class="token constant">user3</span> <span class="token attr-value"><span class="token punctuation">=</span> rw</span>
<span class="token constant">*</span><span class="token attr-value"><span class="token punctuation">=</span></span>
</code></pre></div><h2 id="服务器管理"><a href="#服务器管理" class="header-anchor">#</a> 服务器管理</h2> <h3 id="启动关闭-svn"><a href="#启动关闭-svn" class="header-anchor">#</a> 启动关闭 svn</h3> <div class="language-bash extra-class"><pre class="language-bash"><code>$ svnserve -d -r /share/svn <span class="token comment"># 启动 svn</span>
$ <span class="token function">killall</span> svnserve <span class="token comment"># 关闭 svn</span>
</code></pre></div><h3 id="开机自启动-svn-方法"><a href="#开机自启动-svn-方法" class="header-anchor">#</a> 开机自启动 svn 方法</h3> <p>安装好 svn 服务后,默认是没有随系统启动自动启动的,而一般我们有要求 svn 服务稳定持续的提供服务。所以,有必要配置开机自启动 svn 服务。</p> <h4 id="centos7-以前"><a href="#centos7-以前" class="header-anchor">#</a> Centos7 以前</h4> <p>编辑 <code>/etc/rc.d/rc.local</code> 文件:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">vi</span> /etc/rc.d/rc.local
</code></pre></div><p>输入以下内容:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># 开机自动启动 svn默认端口是 3690</span>
$ /usr/bin/svnserve -d -r /share/svn --listen-port <span class="token number">3690</span>
</code></pre></div><p>注意:</p> <p>我们在用终端操作的时候,可以直接使用以下命令启动 SVN<code>svnserve -d -r /share/svn</code>,但是在 <code>/etc/rc.d/rc.local</code> 文件中必须写上完整的路径!</p> <p>如果不知道 svnserve 命令安装在哪儿,可以使用 whereis svnserve 查找。</p> <h4 id="centos7"><a href="#centos7" class="header-anchor">#</a> Centos7</h4> <p>CentOS 7 中的 <code>/etc/rc.d/rc.local</code> 是没有执行权限的,系统建议创建 <code>systemd service</code> 启动服务。</p> <p>找到 svn 的 service 配置文件 <code>/etc/sysconfig/svnserve</code> 编辑配置文件</p> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">vi</span> /etc/sysconfig/svnserve
</code></pre></div><p><code>OPTIONS=&quot;-r /var/svn&quot;</code> 改为 svn 版本库存放的目录,:wq 保存退出。</p> <p>执行 <code>systemctl enable svnserve.service</code></p> <p>重启服务器后,执行 <code>ps -ef | grep svn</code> 应该可以看到 svn 服务的进程已经启动。</p> <ul><li>启动一个服务 - systemctl start svnserve.service</li> <li>关闭一个服务 - systemctl stop svnserve.service</li> <li>重启一个服务 - systemctl restart svnserve.service</li> <li>显示一个服务的状态 - systemctl status svnserve.service</li> <li>在开机时启用一个服务 - systemctl enable svnserve.service</li> <li>在开机时禁用一个服务 - systemctl disable svnserve.service</li></ul> <h2 id="客户端使用"><a href="#客户端使用" class="header-anchor">#</a> 客户端使用</h2> <p>进入 <a href="https://tortoisesvn.net/downloads.html" target="_blank" rel="noopener noreferrer">svn 官方下载地址<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>,选择合适的版本,下载并安装。</p> <p>新建一个目录,然后打开鼠标右键菜单,选择 <strong>SVN Checkout</strong></p> <p>在新的窗口,输入地址 <code>svn://&lt;你的 IP&gt;</code> 即可,不出意外输入用户名和密码就能连接成功了(这里的用户、密码必须在 passwd 配置文件的清单中)。默认端口 3690如果你修改了端口那么要记得加上端口号。如下图所示</p> <p><img src="https://raw.githubusercontent.com/dunwu/images/dev/snap/20190129175443.png" alt="img"></p> <h2 id="参考资料"><a href="#参考资料" class="header-anchor">#</a> 参考资料</h2> <ul><li>https://www.cnblogs.com/liuxianan/p/linux_install_svn_server.html</li> <li>https://blog.csdn.net/testcs_dn/article/details/45395645</li> <li>https://www.cnblogs.com/moxiaoan/p/5683743.html</li> <li>https://blog.csdn.net/realghost/article/details/52396648</li></ul></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/dunwu/linux-tutorial/edit/master/docs/linux/soft/svn-ops.md" target="_blank" rel="noopener noreferrer">帮助我们改善此页面!</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">上次更新:</span> <span class="time">19 minutes ago</span></div></footer> <!----> </main></div><div class="global-ui"><!----><!----></div></div>
<script src="/linux-tutorial/assets/js/app.79a38eea.js" defer></script><script src="/linux-tutorial/assets/js/4.fb6e0f89.js" defer></script><script src="/linux-tutorial/assets/js/66.f2335390.js" defer></script><script src="/linux-tutorial/assets/js/5.cb43ecfb.js" defer></script>
</body>
</html>