Archlinux基础组件变更
根据Archlinux官网公告,原本的 base 包组(group)已经被替换为同名的元包(metapackage)。所以安装Archlinux过程需要至少额外补充内核的安装项。
installation guide相关内容已更新,安装请参考。
根据Archlinux官网公告,原本的 base 包组(group)已经被替换为同名的元包(metapackage)。所以安装Archlinux过程需要至少额外补充内核的安装项。
installation guide相关内容已更新,安装请参考。
这个文章有点儿啰嗦…要看解决方案到底是什么的,就直接拉到文章最后一节
笔记本,Intel核显+NVIDIA独显,解决方案?
只安装NVIDIA独显闭源驱动?大黄蜂切换?nouveau?
正确的方式是什么?
本身我一直推荐用户通过大黄蜂+bbswitch来实现双显卡切换。但直到前些日子我打算玩儿{{theHunter:Call of the Wild:猎人:野性的呼唤}},它不能运行了。
我知道这个游戏是Windows专属,所以它是通过Proton来实现运作的。但是根据protondb.com给出的数据,这个游戏的支持度是很好的。
怪哉!
实在没有办法,只好用steam play bumblebee
为关键词搜索,偶然看到了个描述(原网页懒得找了):大黄蜂不支持dxvk
原来问题在这里。
那就不得不放弃大黄蜂了。
只安装闭源驱动?
性能是好,但是太费电啊…
nouveau?
省电,还能自动切换,但独显性能太渣了啊…况且好像还不能执行CUDA?
Ubuntu有着Linux世界里边最好的I+N双显卡解决方案,叫做PRIME。这个方案是通过在显卡管理器中更改配置文件达到使用核显或独显的目的的。Arch有没有类似的?
ArchWiki一查,还真有:nvidia-xrun
很明显,这个方案比Ubuntu的PRIME方案复杂了太多太多。而且使用时还需要切换到一个字符界面。但它确实能提供完整的英伟达显卡性能,在不使用的时候也可以关闭。
顺着这篇wiki,我又来到了Graphics索引页面。然后看到了一个名字为NVIDIA Optimus的Wiki项。要知道,Arch下面的显卡方案往往都被归类为Optimus。所以点进这个Wiki看一看。
emmm... nouveau, Bumblebee, nvidia-xrun。没什么特别的。
难道就只有这种通过tty载入独显驱动一条路了吗?
不!任何时候都请记住:养成查看英文页面的好习惯。
看到变化了吗?看到英文页面的5.4小节了吗?就是它!只需从托盘右键选择一个显卡
,就可以自动注销并切换!比Ubuntu需要打开显卡管理器—选择配置文件—手动注销再登录
还要简便!而且还不需要xrun那样事先配置一堆文件!简直是赶超Ubuntu驱动管理的最佳选择!
简单到什么程度?只需装几个软件包,再点几下鼠标即可完成:
pacman -S nvidia bbswitch
# nvidia: 英伟达闭源驱动。如果使用自定义内核,或者不想驱动崩掉,那就安装nvidia-dkms
# bbswitch: 切换使用的节能工具。如果使用自定义内核,那就安装bbswitch-dkms
yaourt -S optimus-manager-qt
# 托盘程序(可视化切换及设置)。会自动安装核心程序
# 如果配置有archlinuxcn源,那么同样可以使用pacman来安装
# 如果使用KDE桌面,另有optimus-manager-qt-kde可供选择
现在重启,应该就能看到托盘多出了一个小图标了。右键点击它,选择设置—Optimus
,Switching method
选择Bbswitch
,确定保存。
完成了。以后只需要右键这个图标,选择对应的配置方案,便可进行切换了。
所以,总结一句话:
一定记得看英文页面
注:
对应的git项目 点这里
如果发现默认设置还是不能启动proton游戏,尝试如图配置
随着我的学生机越来越接近终结时刻,在上面运行的服务不得不要陆续的转移到现如今的服务器上面了。
我的RSS服务就是一个。
但是,现在这个服务器是OVZ的,内核只有可怜的2.x。而Docker要求的最低内核是3.14,所以这个TTRSS要转成普通安装方式来进行。
但毕竟之前一直用Docker,这冷不丁的通过手工部署还真有点儿费劲。所以还是记录一下。
宝塔中,新建一个站点:
cd /path/to/ttrss #进入ttrss网站的根目录
git clone https://git.tt-rss.org/fox/tt-rss.git #克隆文件
/path/to/ttrss/tt-rss/
下才有index等等的文件)。将里边的所有文件剪切到网站根目录(/path/to/ttrss
)/path/to
),修改拥有者为www
(记住勾选应用到子目录
)配置好解析之后,输入网址以启动安装程序。根据要求输入即可。
如果权限正确,这时候应该就可以直接通过默认用户名和密码进行登陆了(admin/password
)。一定记得在第一时间修改密码。
编辑网站根目录的config.php
:
FORCE_ARTICLE_PURGE
修改成大于0的数,以自动清理超过这个数字天的文章(星标除外)ENABLE_GZIP_OUTPUT
选开。开启可以获得更好的加载速度,但是需要安装php的zlib扩展保存
不进行这一步是不能刷新Feed的。
编辑config.php
,将SIMPLE_UPDATE_MODE
改为true
,保存。
这种更新方式是指,每当用户使用网页登录ttrss时才进行刷新。通过应用登录无法获得新内容。
进入宝塔的计划任务
,新增shell脚本。内容为:
sudo -u www php /path/to/ttrss/update.php --feeds --quiet
设定好执行间隔,保存即可。
至此,TTRSS的手工部署过程便完成了。
更多内容,去往ttrss官方查找
虽然限制Feed只能获取部分,一定程度上可以保证提供Feed服务的同时不降低网站流量,但是只能获取部分内容确实让Feed的体验有些差。所以,很多 RSS 服务或客户端将全文获取作为 Premium 订阅的卖点之一。不过,通过 Tiny Tiny RSS,我们同样可以免费实现这一效果。
之前在网络上看到的,都需要去其他api提供网站上先行注册,这对于我这种不喜欢注册账号的人很不舒服。不过,最近发现了一个插件,直接解析网站结构来实现抓取全文,使用起来还是不错的。下面简单介绍。
插件名称:af_feedmod
使用方法:
偏好设置 - 插件
中,启用af_feedmod
FeedMod
标签页,打开仿照下述格式输入
{
"jpmetro.com": {
"type": "xpath",
"xpath": "/html/body/section/div[1]/div/article"
},
"www.linuxidc.com": {
"type": "xpath",
"xpath": "//*[@id='content']"
}
}
手工部署这一次,更让我感受到了一个问题:傻瓜化与繁琐是互斥的,随之而来的是可控与不可控的选择。
因为之前用Docker,所以这次整个过程中,出现了相当多的问题。包括但不限于权限出错、feed不更新等等。
这是一个非常矛盾的选择。
选择了简单、一键、Docker,这在安装时固然便捷了很多,但却有了更多的不可控因素。一旦出现问题,排查过程便是一个极度困难的事情——你并不知道这个一键的背后都做了什么,安装的文件都放在了何处。即使从网上找到了很多的解决方案,但找不到文件在哪儿,本身最简单的事情却成了查错路上最陡峭的一所大山。
就像用宝塔安装的php。它的执行文件并不在默认的/usr/bin/php
,而是自定义的/www/server/php/版本号/bin
下面。我很庆幸我找到,并且记住了这个位置。如果在我知道这个位置之前便出现了php问题,可能解决错误的唯一方式就是重新安装php了——至少为了知道php在哪儿,我还需要花费额外的时间去论坛询问,或者查阅官方文档。
而选择手工部署,一开始可能需要大量的准备工作。但这样部署的结果,就是我明确的知道哪个文件在哪里,它都能帮助我完成什么任务。这是完全透明的一种操作体验。无论什么地方出现了哪些问题,我至少不会因为找不到文件而搁浅修复的计划。
所以还请好好想一想:当你感觉一个东西应该有一个一键安装包来简化安装的繁琐时,这种简化到底是不是真的对你有帮助?
最近感觉我订阅的很多源都没有更新了。但是到它们的网站上看却是正常的。后来登录到ttrss的设置界面尝试调试一下信息源,发现会统一报一个错误:60 SSL certificate problem
。
经过一番搜索尝试,发现解决方法很简单:
进入ttrss的目录/includ/functions.php
,在大概280行一堆curl_setopt
位置加入一行新的
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
保存即可。
著名的github,私有库要收费,国内的码云倒是可以创建,但私有库所有协作人数总计不得超过 5 人,多多少少都有一些限制。搭建自己的git版本控制工具,保证私有库真的私有的同时,还能避免可能发生的网络环境问题。加之docker的辅助,3分钟,就能构建完毕。怎么做?
docker pull gitlab/gitlab-ce
获取gitlab镜像。gitlab就是今天的主角。
需要将容器的文件夹映射出来,保证镜像更新时候内容不会丢失。
cd /home #随便打开一个目录,用于新建文件夹
mkdir gitlab gitlab/config gitlab/log gitlab/data 新建文件夹,一会儿映射使用
docker run -d -p 443:443 -p 2222:22 -p 8080:80 -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/log:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
跟以前用到docker的应用相比,这次的参数略多。但是万变不离其宗,主要还是使用端口映射和文件夹映射的参数。其中:
因为安装过宝塔,所以需要将使用到的端口放行。像我这里就要放行8080、2222、443
其实在宝塔的应用里边可以一键安装gitlab。但毕竟宝塔不是所有人都装的,它的安装逻辑也更不清楚,所以相对来讲,还是docker的可控性更高一些,想删除的话,docker也可以删除的更彻底。
好了,现在输入服务器ip:8080
即可访问搭建好的gitlab了。第一次登录会让设置一个密码,这个密码对应的是初始管理员密码。我们就可以通过账号root来登录管理了。
我已经说过不少服务器的应用了。日常来讲,你可以拥有自己的博客网站、自己的云盘、自己的离线下载服务、自己的RSS订阅工具、自己的软件下载站,甚至开一个自己的Minecraft服务器。这其实已经差不多了吧?
但有一点是肯定的,只要你想,那么一台服务器肯定就不止这点用处。就比如今天要来说说的——搭建一个自己的发件服务器。
显摆。因为你的邮箱地址,@之后的内容是别人没有的。
当然,不只是这样。
举个例子:如果你去过我的博客,你就会看到公告,说评论邮件提醒服务已上线。这就是发件服务器应用的地方。因为使用第三方的smtp服务,一来,每天的发件数量有限制;二来,发件的频率有限制。可不要说什么我这博客到不了发件上限,那是因为有很多的垃圾评论被我给屏蔽掉了,你看不到而已。
我之前说过,这个系列一定程度上是我自己使用我VPS的记录。而对于邮件,我用不到收信功能,所以没有赋予这个功能。
当然可以。改多一些配置文件就可以了。
给你这么一个答案:可以难。
你可以在自己的服务里配置收件箱、邮件解析功能,从而实现一个完整的邮箱服务,这听起来就相当麻烦;但也可以搞成一个中继,所有发到这个地址的邮件,自己不做解析,而是直接转发到别的邮箱——比如说自己的hotmail邮箱——里边,用户通过hotmail来管理这些邮件,这样难度就下来了很多。所以说,增加收信功能,可以是难的。
与之前介绍的不同,搞一个自己的信使服务还真需要你有几个基础条件:
像我已经在用的这个,因为官方的25端口是封闭的,所以从根源上便拒绝了非法用户通过这个服务向外派件的可能性;加之我这个方法最终会使用独立的用户名和密码,而不是默认的使用登录用户做用户名,登录密码做邮箱认证密码,所以不至于泄露自己服务器的用户名。只是要注意,这样得到的邮箱是不带有SSL加密的。所以传输过程中的信息就不保证安全了。
好,介绍了这么多,来看看到底要如何配置。
CentOS里边默认会安装postfix。而有些系统默认的邮件服务是sendmail而这个服务公认的差。所以为了调整服务,先来调整好组件。同时,也保证需要的用户组被创建。
yum remove sendmail #卸载sendmail
yum remove postfix #卸载postfix
yum install postfix #重新安装postfix
#yum安装会自动建立postfix用户组和用户名
yum install crontabs #因为卸载postfix的时候系统定时服务可能会被卸载所以也运行一次安装命令确保组件存在
postfix默认的邮箱账户名是登录系统的用户名,密码则是登录系统用户的密码。所以为了得到独立的用户名密码,需要安装相应的服务。
yum install cyrus-sasl* #提供smtp的虚拟账户和密码服务
MTA就是邮件发送端。刚刚卸载又安装的postfix就是为了完成这个任务的。因此现在,需要调整系统默认的MTA到postfix。
/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
alternatives --display mta #查看调整结果
#如果输出的最后一行显示如下:
#Current `best' version is /usr/sbin/sendmail.postfix.
#说明设置完毕
既然是服务,那自然希望它会在服务器重新启动后的第一时间上线。所以设置自启动。
systemctl enable postfix
编辑/etc/postfix/main.cf
,更改下述内容。
myhostname = #二级域名。如smtp.bwsl.wang
mydomain = #主域名,即删去二级域名剩下的东西。如bwsl.wang
myorigin=$mydomain
inet_interfaces=#localhost或本地回环地址
#填入公网ip会对外开放(25端口未封闭的话)
#默认应该是all,收发皆可
#如此更改即关闭收件功能
mydestination = $myhostname, localhost.$mydomain, localhost
#这里默认值应该就是这样,是则保持,不是则改
mynetworks=#公网地址,127.0.0.1
#填这两个就可以了
再新增下述内容,开启单独的登录名和密码服务
#SMTP Config
smtpd_client_restrictions = permit_sasl_authenticated
#指定可以向postfix发起SMTP连接的客户端的主机名或ip地址
#此处permit_sasl_authenticated意思是允许通过sasl认证(也就是smtp链接时通过了账号、密码效验的用户)的所有用户
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
#发件人在执行RCPT TO命令时提供的地址进行限制规则
smtpd_sasl_auth_enable = yes
#启用smtp并要求进行账号、密码效验
smtpd_sasl_security_options = noanonymous
#取消smtp的匿名登录
message_size_limit = 5242880
#指定通过postfix发送邮件的体积大小。单位字节
先来编辑/etc/sasl2/smtpd.conf
。对于32位机,这个文件路径是/usr/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: plain login CRAM-MD5 DIGEST-MD5
现在,就可以创建账号了。使用命令:
saslpasswd2 -c -u `postconf -h mydomain` username
回车后,会提示输入密码。输入一次,重复一次,用户名为username的邮箱便建立好了。邮箱地址将会是[email protected]
你可以通过这个命令建立多个用户和密码。日后也可以通过命令sasldblistusers2
来查看已有的用户名。密码不能看,只会显示userPassword
。
需要调整sasl的用户数据权限,让postfix可以读取:
chmod 755 /etc/sasldb2
现在,设置几乎全部完成,可以启动信使服务了。使用命令
systemctl start postfix
为避免网络端口封闭问题而导致的莫名其妙的问题,我们最好是通过服务器本机连本机来进行服务的测试。所以还是在服务器的窗口内,运行telnet命令(没有则先安装telnet):
telnet localhost 25
我们还需要额外准备两个内容:
这两个的获得很容易,百度base64
就有很多转换工具,随便一个就好。
然后便可以回到服务器的命令行,进行验证过程
HELO bwsl.wang #尝试握手,返回消息后继续
AUTH LOGIN #请求smtp账户密码校验,返回消息后继续
#输入刚刚获得的用户名base64,返回消息后继续
#输入刚刚获得的密码base64
输入密码后回车,应该就可以看到Authentication successful
认证成功的消息。这便证明,一个发件服务已经搭好了。
别着急应用到博客里。现在应用,那发出去的邮件一定连垃圾箱都不进,直接就被拒收了。我们还需要进行最后一步:配置域名解析。
进入你的域名解析调整页面,新增三项:
myhostname
对应的二级域名,A类解析到服务器IP@
域名,MX解析到myhostname对应的二级域名@
域名,TXT解析成v=spf1 a mx ip4:服务器ip -all
至此,一个发件服务便建立完成了。你可以通过linux的mail
命令来尝试发送一个带有独一无二邮件后缀的邮件了。好好利用吧。
可以通过 https://www.mail-tester.com 对你的服务进行测试,并根据提示进行对应的修改以提高得分
之前说过了使用transmission搭建bt离线下载服务。但是这个的局限性在于只支持种子和磁力链的下载。那对于迅雷、百度网盘、FTP,或者仅仅是普通的http下载,有没有什么办法呢?
当然有。aria2,一款命令行操作,基本可以做到全速下载的强大的下载工具,并且支持迅雷离线以及百度云等常用网盘的多线程下载(甚至可以超过专用客户端的下载速度)。但就像我刚刚说的,Aria2是一个命令行软件,很多人嫌麻烦或者不会弄,就这样错过了一个下载神器,因此我们可以使用一个Aria2的控制前端,直接通过浏览器来操作下载。不但操作更加简单容易,还能架设在服务器上面,造就一个全功能的离线下载服务。来看看怎么弄。
因为之前已经安装过宝塔面板,所以直接通过它来完成。
至此,前端已经部署完毕了
因为已经安装过宝塔面板,所以默认http的组件已经安装好了,否则请配置httpd以保证web页面可以正常显示
yum -y install aria2
至此,后端就部署完毕了
aria2c --enable-rpc --rpc-listen-all --rpc-secret 你的密码
6800
端口至此,一个几乎全能的离线下载服务已经搭建好了。只是需要注意一点,通过ssh启动后端时,需要让其在后台运行。你可以使用screen
这个包来实现,或者直接在命令的结尾加一个&
即可。