<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>linux on Trim21&#39;s Blog</title>
    <link>https://blog.trim21.me/tags/linux/</link>
    <description>Recent content in linux on Trim21&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Mon, 03 Mar 2025 05:55:21 +0800</lastBuildDate>
    <atom:link href="https://blog.trim21.me/tags/linux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>用pyenv安装python</title>
      <link>https://blog.trim21.me/2019/12/pyenv-build-python/</link>
      <pubDate>Mon, 23 Dec 2019 00:00:00 +0800</pubDate>
      <guid>https://blog.trim21.me/2019/12/pyenv-build-python/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/pyenv/pyenv&#34;&gt;pyenv&lt;/a&gt;是用来安装多个版本的 python&lt;/p&gt;&#xA;&lt;p&gt;官方提供了安装脚本&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl https://cdn.jsdelivr.net/gh/pyenv/pyenv-installer/bin/pyenv-installer | bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(用 jsdeliver 是因为 raw.githubusercontent.com 现在访问不通了)&lt;/p&gt;&#xA;&lt;p&gt;启用 cache，用于缓存下载的 python 源代码:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p .pyenv/cache&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;使用 ccache, 可以缓存编译中产生的中间文件，不是必需，但是在多次构建统一版本的 python 时可以有效加速。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/yyuu/pyenv-ccache.git $(pyenv root)/plugins/pyenv-ccache&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt install ccache&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;安装过程中会出现的错误&lt;/p&gt;&#xA;&lt;p&gt;zipimport.ZipImportError: can&amp;rsquo;t decompress data; zlib not available&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt install zlib1g-dev&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt install libbz2-dev&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?&lt;/p&gt;</description>
    </item>
    <item>
      <title>自动重新构建部署博客</title>
      <link>https://blog.trim21.me/2017/05/auto-deploy-with-webhook/</link>
      <pubDate>Sun, 14 May 2017 04:57:28 +0800</pubDate>
      <guid>https://blog.trim21.me/2017/05/auto-deploy-with-webhook/</guid>
      <description>&lt;p&gt;想折腾这个很久了,终于把这个折腾好了.&lt;/p&gt;&#xA;&lt;p&gt;现在写博客的流程是,我在本机维护一个 git repo,里面是我所有的文章.然后我写完一篇文章或者修改了文章之后 push 到 github 上去,相应的 github pages 就会根据用来保存文章的 repo 自动最新的状态.&lt;/p&gt;&#xA;&lt;p&gt;原本是在自己的 vps 上开了一个服务器处理 webhook, 现在换成了&lt;a href=&#34;https://travis-ci.org/&#34;&gt;travis-ci&lt;/a&gt;来自动部署.&lt;/p&gt;&#xA;&lt;p&gt;不得不说&lt;a href=&#34;https://travis-ci.org/&#34;&gt;travis-ci&lt;/a&gt;是个好东西. 如果你是开源项目, 是可以免费使用的, 只有 private 的仓库才需要付费.&lt;/p&gt;&#xA;&lt;p&gt;写个博客, 自然所有的东西都是公开的, 用他来构建也没什么问题.&lt;/p&gt;&#xA;&lt;p&gt;唯一的问题是, 构建之后的部署需要密钥, travis 自然也考虑到了这种问题, 可以在&lt;code&gt;more options&lt;/code&gt;- &lt;code&gt;settings&lt;/code&gt; - &lt;code&gt;Environment Variables&lt;/code&gt;中添加保密的环境变量, 这样一来我们只要去 github 生成一个可以 push 的 token, 用这个 token 又可以避免泄露凭证个第三方, 又可以利用公有服务操作我们的个人仓库.&lt;/p&gt;&#xA;&lt;p&gt;首先生成一个 token, 这个比较简单&lt;/p&gt;&#xA;&lt;p&gt;因为 github pages 要求 push 到&lt;code&gt;${username}.github.io&lt;/code&gt;的仓库中, 比如我的用户名是&lt;code&gt;trim21&lt;/code&gt;, 我就需要把文件 push 到&lt;code&gt;trim21.github.io&lt;/code&gt;去, 所以我们需要告诉&lt;code&gt;hexo&lt;/code&gt;他要操作的部署的仓库地址.&lt;/p&gt;&#xA;&lt;p&gt;而&lt;code&gt;_config.yml&lt;/code&gt;里面又不能使用环境变量, 只能每次部署的时候把对应的仓库链接给 echo 进去, 避免泄漏.&lt;/p&gt;&#xA;&lt;p&gt;我的&lt;code&gt;_config.yml&lt;/code&gt;文件结尾是这样的&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Deployment&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;## Docs: https://hexo.io/docs/deployment.html&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;deploy&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;type&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;git&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;branch&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;master&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后 echo 到&lt;code&gt;_config.yml&lt;/code&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
