2018年7月

创建 CardBook 软件包、本地 Debian 仓库,并修复错误。

我在 GSoC(LCTT 译注:Google Summer Of Code,一项针对学生进行的开源项目训练营,一般在夏季进行。)的任务中有一项是为用户构建 Thunderbird 扩展 add-ons 。一些非常流行的扩展,比如 Lightning (日历行事历)已经拥有了 deb 包。

另外一个重要的用于管理基于 CardDav 和 vCard 标准的联系人的扩展 Cardbook ,还没有一个 deb 包。

我的导师, Daniel 鼓励我去为它制作一个包,并上传到 mentors.debian.net。因为这样就可以使用 apt-get 来安装,简化了安装流程。这篇博客描述了我是如何从头开始学习为 CardBook 创建一个 Debian 包的。

首先,我是第一次接触打包,我在从源码构建包的基础上进行了大量研究,并检查它的协议是是否与 DFSG 兼容。

我从多个 Debian Wiki 中的指南中进行学习,比如 打包介绍构建一个包,以及一些博客。

我还研究了包含在 Lightning 扩展包的 amd64 文件。

我创建的包可以在这里找到。

Debian Package!

Debian 包

创建一个空的包

我从使用 dh_make 来创建一个 debian 目录开始。

# Empty project folder
$ mkdir -p Debian/cardbook
# create files
$ dh_make\
> --native \
> --single \
> --packagename cardbook_1.0.0 \
> --email [email protected]

一些重要的文件,比如 controlruleschangelogcopyright 等文件被初始化其中。

所创建的文件的完整列表如下:

$ find /debian
debian/
debian/rules
debian/preinst.ex
debian/cardbook-docs.docs
debian/manpage.1.ex
debian/install
debian/source
debian/source/format
debian/cardbook.debhelper.lo
debian/manpage.xml.ex
debian/README.Debian
debian/postrm.ex
debian/prerm.ex
debian/copyright
debian/changelog
debian/manpage.sgml.ex
debian/cardbook.default.ex
debian/README
debian/cardbook.doc-base.EX
debian/README.source
debian/compat
debian/control
debian/debhelper-build-stamp
debian/menu.ex
debian/postinst.ex
debian/cardbook.substvars
debian/files

我了解了 Debian 系统中 Dpkg 包管理器及如何用它安装、删除和管理包。

我使用 dpkg 命令创建了一个空的包。这个命令创建一个空的包文件以及四个名为 .changes.deb.dsc.tar.gz 的文件。

  • .dsc 文件包含了所发生的修改和签名
  • .deb 文件是用于安装的主要包文件。
  • .tar.gz (tarball)包含了源代码

这个过程也在 /usr/share 目录下创建了 READMEchangelog 文件。它们包含了关于这个包的基本信息比如描述、作者、版本。

我安装这个包,并检查这个包安装的内容。我的新包中包含了版本、架构和描述。

$ dpkg -L cardbook
/usr
/usr/share
/usr/share/doc
/usr/share/doc/cardbook
/usr/share/doc/cardbook/README.Debian
/usr/share/doc/cardbook/changelog.gz
/usr/share/doc/cardbook/copyright

包含 CardBook 源代码

在成功的创建了一个空包以后,我在包中添加了实际的 CardBook 扩展文件。 CardBook 的源代码托管在 Gitlab 上。我将所有的源码文件包含在另外一个目录,并告诉打包命令哪些文件需要包含在这个包中。

我使用 vi 编辑器创建一个 debian/install 文件并列举了需要被安装的文件。在这个过程中,我花费了一些时间去学习基于 Linux 终端的文本编辑器,比如 vi 。这让我熟悉如何在 vi 中编辑、创建文件和快捷方式。

当这些完成后,我在变更日志中更新了包的版本并记录了我所做的改变。

$ dpkg -l | grep cardbook
ii cardbook 1.1.0 amd64 Thunderbird add-on for address book

Changelog

更新完包的变更日志

在重新构建完成后,重要的依赖和描述信息可以被加入到包中。 Debian 的 control 文件可以用来添加额外的必须项目和依赖。

本地 Debian 仓库

在不创建本地存储库的情况下,CardBook 可以使用如下的命令来安装:

$ sudo dpkg -i cardbook_1.1.0.deb

为了实际测试包的安装,我决定构建一个本地 Debian 存储库。没有它,apt-get 命令将无法定位包,因为它没有在 Debian 的包软件列表中。

为了配置本地 Debian 存储库,我复制我的包 (.deb)为放在 /tmp 目录中的 Packages.gz 文件。

Packages-gz

本地 Debian 仓库

为了使它工作,我了解了 apt 的配置和它查找文件的路径。

我研究了一种在 apt-config 中添加文件位置的方法。最后,我通过在 APT 中添加 *.list 文件来添加包的路径,并使用 apt-cache 更新APT缓存来完成我的任务。

因此,最新的 CardBook 版本可以成功的通过 apt-get install cardbook 来安装了。

Package installation!

使用 apt-get 安装 CardBook

修复打包错误和 Bugs

我的导师 Daniel 在这个过程中帮了我很多忙,并指导我如何进一步进行打包。他告诉我使用 Lintian 来修复打包过程中出现的常见错误和最终使用 dput 来上传 CardBook 包。

Lintian 是一个用于发现策略问题和 Bug 的包检查器。它是 Debian 维护者们在上传包之前广泛使用的自动化检查 Debian 策略的工具。

我上传了该软件包的第二个更新版本到 Debian 目录中的 Salsa 仓库 的一个独立分支中。

我从 Debian backports 上安装 Lintian 并学习在一个包上用它来修复错误。我研究了它用在其错误信息中的缩写,和如何查看 Lintian 命令返回的详细内容。

$ lintian -i -I --show-overrides cardbook_1.2.0.changes

最初,在 .changes 文件上运行命令时,我惊讶地看到显示出来了大量错误、警告和注释!

 title=

在包上运行 Lintian 时看到的大量报错

Lintian error1!

详细的 Lintian 报错

Lintian error2!

详细的 Lintian 报错 (2) 以及更多

我花了几天时间修复与 Debian 包策略违例相关的一些错误。为了消除一个简单的错误,我必须仔细研究每一项策略和 Debian 的规则。为此,我参考了 Debian 策略手册 以及 Debian 开发者参考

我仍然在努力使它变得完美无暇,并希望很快可以将它上传到 mentors.debian.net!

如果 Debian 社区中使用 Thunderbird 的人可以帮助修复这些报错就太感谢了。


via: http://minkush.me/cardbook-debian-package/

作者:Minkush Jain 选题:lujun9972 译者:Bestony 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

DevSecOps 也许不是一个优雅的词汇,但是其结果很吸引人:更强的安全、提前出现在开发周期中。来看看一个 IT 领导与 Meltdown 的拼搏。

如果 DevOps 最终是关于创造更好的软件,那也就意味着是更安全的软件。

而到了术语 “DevSecOps”,就像任何其他 IT 术语一样,DevSecOps —— 一个更成熟的 DevOps 的后代 ——可能容易受到炒作和盗用。但这个术语对那些拥抱了 DevOps 文化的领导者们来说具有重要的意义,并且其实践和工具可以帮助他们实现其承诺。

说道这里:“DevSecOps”是什么意思?

“DevSecOps 是开发、安全、运营的混合,”来自 Datical 的首席技术官和联合创始人 Robert 说。“这提醒我们,对我们的应用程序来说安全和创建并部署应用到生产中一样重要。”

想阅读其他首席技术官的 DevOps 文章吗?查阅我们丰富的资源,[DevOps:IT 领导者指南]

向非技术人员解释 DevSecOps 的一个简单的方法是:它是指将安全有意并提前加入到开发过程中。

“安全团队从历史上一直都被孤立于开发团队——每个团队在 IT 的不同领域都发展了很强的专业能力”,来自红帽安全策的专家 Kirsten 最近告诉我们。“不需要这样,非常关注安全也关注他们通过软件来兑现商业价值的能力的企业正在寻找能够在应用开发生命周期中加入安全的方法。他们通过在整个 CI/CD 管道中集成安全实践、工具和自动化来采用 DevSecOps。”

“为了能够做的更好,他们正在整合他们的团队——专业的安全人员从开始设计到部署到生产中都融入到了开发团队中了,”她说,“双方都收获了价值——每个团队都拓展了他们的技能和基础知识,使他们自己都成更有价值的技术人员。 DevOps 做的很正确——或者说 DevSecOps——提高了 IT 的安全性。”

IT 团队比任何以往都要求要快速频繁的交付服务。DevOps 在某种程度上可以成为一个很棒的推动者,因为它能够消除开发和运营之间通常遇到的一些摩擦,运营一直被排挤在整个过程之外直到要部署的时候,开发者把代码随便一放之后就不再去管理,他们承担更少的基础架构的责任。那种孤立的方法引起了很多问题,委婉的说,在数字时代,如果将安全孤立起来同样的情况也会发生。

“我们已经采用了 DevOps,因为它已经被证明通过移除开发和运营之间的阻碍来提高 IT 的绩效,”Reevess 说,“就像我们不应该在开发周期要结束时才加入运营,我们不应该在快要结束时才加入安全。”

为什么 DevSecOps 必然出现

或许会把 DevSecOps 看作是另一个时髦词,但对于安全意识很强的IT领导者来说,它是一个实质性的术语:在软件开发管道中安全必须是第一层面的要素,而不是部署前的最后一步的螺栓,或者更糟的是,作为一个团队只有当一个实际的事故发生的时候安全人员才会被重用争抢。

“DevSecOps 不只是一个时髦的术语——因为多种原因它是现在和未来 IT 将呈现的状态”,来自 [Sumo Logic] 的安全和合规副总裁 George 说道,“最重要的好处是将安全融入到开发和运营当中开提供保护的能力”

此外,DevSecOps 的出现可能是 DevOps 自身逐渐成熟并扎根于 IT 之中的一个征兆。

“企业中的 DevOps 文化已成定局,而且那意味着开发者们正以不断增长的速度交付功能和更新,特别是自我管理的组织会对合作和衡量的结果更加满意”,来自 [CYBRIC] 的首席技术官和联合创始人 Mike 说道。

在实施 DevOps 的同时继续保留原有安全措施的团队和公司,随着他们继续部署的更快更频繁可能正在经历越来越多的安全管理风险上的痛苦。

“现在的手工的安全测试方法会继续远远被甩在后面。”

“如今,手动的安全测试方法正被甩得越来越远,利用自动化和协作将安全测试转移到软件开发生命周期中,因此推动 DevSecOps 的文化是 IT 领导者们为增加整体的灵活性提供安全保证的唯一途径”,Kail 说。

转移安全测试也使开发者受益:他们能够在开放的较早的阶段验证并解决潜在的问题——这样很少需要或者甚至不需要安全人员的介入,而不是在一个新的服务或者更新部署之前在他们的代码中发现一个明显的漏洞。

“做的正确,DevSecOps 能够将安全融入到开发生命周期中,允许开发者们在没有安全中断的情况下更加快速容易的保证他们应用的安全”,来自 SAS 的首席信息安全员 Wilson 说道。

Wilson 指出静态(SAST)和源组合分析(SCA)工具,集成到团队的持续交付管道中,作为有用的技术通过给予开发者关于他们的代码中的潜在问题和第三方依赖中的漏洞的反馈来使之逐渐成为可能。

“因此,开发者们能够主动和迭代的缓解应用安全的问题,然后在不需要安全人员介入的情况下重新进行安全扫描。” Wilson 说。他同时指出 DevSecOps 能够帮助开发者简化更新和打补丁。

DevSecOps 并不意味着你不再需要安全组的意见了,就如同 DevOps 并不意味着你不再需要基础架构专家;它只是帮助你减少在生产中发现缺陷的可能性,或者减少导致降低部署速度的阻碍,因为缺陷已经在开发周期中被发现解决了。

“如果他们有问题或者需要帮助,我们就在这儿,但是因为已经给了开发者他们需要的保护他们应用安全的工具,我们很少在一个深入的测试中发现一个导致中断的问题,”Wilson 说道。

DevSecOps 遇到 Meltdown

Sumo Locic 的 Gerchow 向我们分享了一个在运转中的 DevSecOps 文化的一个及时案例:当最近 [Meltdown 和 Spectre] 的消息传来的时候,团队的 DevSecOps 方法使得有了一个快速的响应来减轻风险,没有任何的通知去打扰内部或者外部的顾客,Gerchow 所说的这点对原生云、高监管的公司来说特别的重要。

第一步:Gerchow 的小型安全团队都具有一定的开发能力,能够通过 Slack 和它的主要云供应商协同工作来确保它的基础架构能够在 24 小时之内完成修复。

“接着我的团队立即开始进行系统级的修复,实现终端客户的零停机时间,不需要去开工单给工程师,如果那样那意味着你需要等待很长的变更过程。所有的变更都是通过 Slack 的自动 jira 票据进行,通过我们的日志监控和分析解决方案”,Gerchow 解释道。

在本质上,它听起来非常像 DevOps 文化,匹配正确的人员、过程和工具,但它明确的将安全作为文化中的一部分进行了混合。

“在传统的环境中,这将花费数周或数月的停机时间来处理,因为开发、运维和安全三者是相互独立的”,Gerchow 说道,“通过一个 DevSecOps 的过程和习惯,终端用户可以通过简单的沟通和当日修复获得无缝的体验。”


via: https://enterprisersproject.com/article/2018/1/why-devsecops-matters-it-leaders

作者:Kevin Casey 译者:FelixYFZ 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

钟爱开源的用户不会觉得在非 Linux 操作系统上使用他们喜爱的应用有多难。

只要有可能的情况下,我都会去选择使用开源工具。不久之前,我回到大学去攻读教育领导学硕士学位。即便是我将喜欢的 Linux 笔记本电脑换成了一台 MacBook Pro(因为我不能确定校园里能够接受 Linux),我还是决定继续使用我喜欢的工具,哪怕是在 MacOS 上也是如此。

幸运的是,它很容易,并且没有哪个教授质疑过我用的是什么软件。即然如此,我就不能秘而不宣。

我知道,我的一些同学最终会在学区担任领导职务,因此,我与我的那些使用 MacOS 或 Windows 的同学分享了关于下面描述的这些开源软件。毕竟,开源软件是真正地自由和友好的。我也希望他们去了解它,并且愿意以很少的一些成本去提供给他们的学生去使用这些世界级的应用程序。他们中的大多数人都感到很惊讶,因为,众所周知,开源软件除了有像你和我这样的用户之外,压根就没有销售团队。

我的 MacOS 学习曲线

虽然大多数的开源工具都能像以前我在 Linux 上使用的那样工作,只是需要不同的安装方法。但是,经过这个过程,我学习了这些工具在 MacOS 上的一些细微差别。像 yum)、DNF)、和 APT) 在 MacOS 的世界中压根不存在 —— 我真的很怀念它们。

一些 MacOS 应用程序要求依赖项,并且安装它们要比我在 Linux 上习惯的方法困难很多。尽管如此,我仍然没有放弃。在这个过程中,我学会了如何在我的新平台上保留最好的软件。即便是 MacOS 大部分的核心也是 开源的

此外,我的 Linux 的知识背景让我使用 MacOS 的命令行很轻松很舒适。我仍然使用命令行去创建和拷贝文件、添加用户、以及使用其它的像 cattacmorelesstail 这样的 实用工具

15 个适用于 MacOS 的非常好的开源应用程序

  • 在大学里,要求我使用 DOCX 的电子版格式来提交我的工作,而这其实很容易,最初我使用的是 OpenOffice,而后来我使用的是 LibreOffice 去完成我的论文。
  • 当我因为演示需要去做一些图像时,我使用的是我最喜欢的图像应用程序 GIMPInkscape
  • 我喜欢的播客创建工具是 Audacity。它比起 Mac 上搭载的专有应用程序更加简单。我使用它去录制访谈和为视频演示创建配乐。
  • 在 MacOS 上我最早发现的多媒体播放器是 VideoLan (VLC)。
  • MacOS 内置的专有视频创建工具是一个非常好的产品,但是你也可以很轻松地去安装和使用 OpenShot,它是一个非常好的内容创建工具。
  • 当我需要在我的客户端上分析网络时,我在我的 Mac 上使用了易于安装的 Nmap (Network Mapper) 和 Wireshark 工具。
  • 当我为图书管理员和其它教育工作者提供培训时,我在 MacOS 上使用 VirtualBox 去做 Raspbian、Fedora、Ubuntu 和其它 Linux 发行版的示范操作。
  • 我使用 Etcher.io 在我的 MacBook 上制作了一个引导盘,下载 ISO 文件,将它刻录到一个 U 盘上。
  • 我认为 Firefox 比起 MacBook Pro 自带的专有浏览器更易用更安全,并且它允许我跨操作系统去同步我的书签。
  • 当我使用电子书阅读器时,Calibre 是当之无愧的选择。它很容易去下载和安装,你甚至只需要几次点击就能将它配置为一台 教室中使用的电子书服务器
  • 最近我给中学的学生教 Python 课程,我发现它可以很容易地从 Python.org 上下载和安装 Python 3 及 IDLE3 编辑器。我也喜欢学习数据科学,并与学生分享。不论你是对 Python 还是 R 感兴趣,我都建议你下载和 安装 Anaconda 发行版。它包含了非常好的 iPython 编辑器、RStudio、Jupyter Notebooks、和 JupyterLab,以及其它一些应用程序。
  • HandBrake 是一个将你家里的旧的视频 DVD 转成 MP4 的工具,这样你就可以将它们共享到 YouTube、Vimeo、或者你的 MacOS 上的 Kodi 服务器上。

现在轮到你了:你在 MacOS(或 Windows)上都使用什么样的开源软件?在下面的评论区共享出来吧。


via: https://opensource.com/article/18/7/open-source-tools-macos

作者:Don Watkins 选题:lujun9972 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

想要在你的自动化项目上达成强 ROI?采取如下步骤来规避失败。

在过去的几年间,有关自动化技术的讨论已经很多了。COO 们和运营团队(事实上还有其它的业务部门)对于可以重新定义成本随着工作量的增加而增加的这一事实而感到震惊。

机器人流程自动化 Robotic Process Automation (RPA)似乎预示着运营的 圣杯 Holy Grail :“我们提供了开箱即用的功能来满足你的日常操作所需 —— 检查电子邮件、保存附件、取数据、更新表格、生成报告、文件以及目录操作。构建一个机器人就像配置这些功能一样简单,然后用机器人将这些操作链接到一起,而不用去请求 IT 部门来构建它们。”这是一个多么诱人的话题。

低成本、几乎不出错、非常遵守流程 —— 对 COO 们和运营领导来说,这些好处真实可及。RPA 工具承诺,它从运营中节省下来的费用就足够支付它的成本(有一个短的回报期),这一事实使得业务的观点更具有吸引力。

自动化的谈论都趋向于类似的话题:COO 们和他们的团队想知道,自动化操作能够给他们带来什么好处。他们想知道 RPA 平台特性和功能,以及自动化在现实中的真实案例。从这一点到概念验证的实现过程通常很短暂。

在实现人工智能技术方面的建议,可以查看我们相关的文章,[制定你的人工智能策略:3 个小提示]

但是自动化带来的现实好处有时候可能比你所预期的时间要晚。采用 RPA 的公司在其实施后可能会对它们自身的 ROI 提出一些质疑。一些人没有看到预期之中的成本节省,并对其中的原因感到疑惑。

你是不是自动化了错误的东西?

在这些情况下,自动化的愿景和现实之间的差距是什么呢?我们来分析一下它,在决定去继续进行一个自动化验证项目(甚至是一个成熟的实践)之后,我们来看一下通常会发生什么。

在确定实施自动化所采用的路径之后,COO 一般会问运营领导和他的团队们,应该在哪个流程或者任务上实施自动化。虽然从原则上说应该鼓励他们参与进来,但是有时候这种方式产生的决策往往会产生一个次优选择。原因如下:

首先,团队领导经常会是“视野较窄”:他们对自己的流程和任务非常熟悉,但是对他们不参与的流程和任务并不是那么熟悉(特别是在他们没有太多运营经验的情况下)。这意味着他们在自己的工作领域内可能会找出比较适合自动化的候选者,但是在跨整个运营的其它领域中可能并不一定会找出最适合的。另外其它的像“我希望我的流程成为第一个实施自动化的候选者”这样的“软性”因素也会影响决定。

其次,候选流程的选择有时候会被自动化特性和能力的匹配度所支配,而不是根据自动化所带来的价值所决定的。一个常见的误解是,任何包括像电子邮件或目录监视、下载、计算等活动的任务都是自动化的最佳候选者。如果对这些任务实施自动化不能为组织产生价值,那么它们就不是正确的候选者。

那么,对于领导们来说,怎么才能确保实施自动化能够带来他们想要的 ROI 呢?实现这个目标有四步:

1. 教育团队

在你的团队中,从 COO 职位以下的人中,很有可能都听说过 RPA 和运营自动化。同样很有可能他们都有许多的问题和担心。在你开始启动实施之前解决这些问题和担心是非常重要的。

对运营团队进行积极的教育可以大大地提升他们对自动化的热情和信心。培训主要关注于自动化和机器人是什么,它们在流程中一般扮演什么样的角色,哪个流程和任务最适合自动化,以及自动化的预期好处是什么。

建议:邀请你的自动化合作伙伴去进行这些团队教育工作,你要有所控制:他们可能会非常乐意帮助你。在领导层将这些传播到更大范围的团队之前,你应该对他们的教育内容进行把关。

“实施自动化的第一步是更好地理解你的流程。”

2. 审查内部流程

实施自动化的第一步是更好地理解你的流程。每个 RPA 实施之前都应该进行流程清单、动作分析、以及成本/价值的绘制练习。

这些练习对于理解流程中何处产生价值(或成本,如果没有价值的情况下)是至关重要的。并且这些练习需要在每个流程或者每个任务这样的粒度级别上来做。

这将有助你去识别和优先考虑最合适的自动化候选者。由于能够或者可能需要自动化的任务数量较多,流程一般需要分段实施自动化,因此优先级很重要。

建议:设置一个小的工作团队,每个运营团队都参与其中。从每个运营团队中提名一个协调人 —— 一般是运营团队的领导或者团队管理者。在团队级别上组织一次研讨会,去构建流程清单、识别候选流程、以及推动购买。你的自动化合作伙伴很可能有“加速器” —— 调查问卷、计分卡等等 —— 这些将帮助你加速完成这项活动。

3. 为优先业务提供强有力的指导

实施自动化经常会涉及到在运营团队之间,基于业务价值对流程选择和自动化优先级上要达成共识(有时候是打破平衡)虽然团队的参与仍然是分析和实施的关键部分,但是领导仍然应该是最终的决策者。

建议:安排定期会议从工作团队中获取最新信息。除了像推动达成共识和购买之外,工作团队还应该在团队层面上去查看领导们关于 ROI、平台选择、以及自动化优先级上的指导性决定。

4. 应该推动 CIO 和 COO 的紧密合作

当运营团队和技术团队紧密合作时,自动化的实施将异常顺利。COO 需要去帮助推动与 CIO 团队的合作。

COO 和其他运营领导人的参与和监督对成功实施自动化是至关重要的。

建议:COO 和 CIO 团队应该与第三方的自动化合作伙伴共同设立一个联合工作组(一个“战场”)。对每个参与者的责任进行明确的界定并持续跟踪。理想情况下,COO 和 CIO 应该至少有一个投入到联合工作组中,至少在初始发布中应该是这样。

自动化可以为组织创造重要的价值。然而为了在自动化中获得最优的投资回报,CIO 们必须在“入坑”之前做好规划。


via: https://enterprisersproject.com/article/2017/11/how-improve-roi-automation-4-tips

作者:Rajesh Kamath 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

简介:Xenlism 主题包提供了一个美观的 GTK 主题、彩色图标和简约的壁纸,将你的 Linux 桌面转变为引人注目的操作系统。

除非我找到一些非常棒的东西,否则我不会每天都把整篇文章献给一个主题。我曾经经常发布主题和图标。但最近,我更喜欢列出最佳 GTK 主题和图标主题。这对我和你来说都更方便,你可以在一个地方看到许多美丽的主题。

Pop OS 主题套件之后,Xenlism 是另一个让我对它的外观感到震惊的主题。

Xenlism GTK theme for Ubuntu and Other Linux

Xenlism GTK 主题基于 Arc 主题,其得益于许多主题的灵感。GTK 主题提供类似于 macOS 的 Windows 按钮,我既不特别喜欢,也没有特别不喜欢。GTK 主题采用扁平、简约的布局,我喜欢这样。

Xenlism 套件中有两个图标主题。Xenlism Wildfire 是以前的,已经进入我们的最佳图标主题列表。

Beautiful Xenlism Wildfire theme for Ubuntu and Other Linux

Xenlism Wildfire 图标

Xenlsim Storm 是一个相对较新的图标主题,但同样美观。

Beautiful Xenlism Storm theme for Ubuntu and Other Linux

Xenlism Storm 图标

Xenlism 主题在 GPL 许可下开源。

如何在 Ubuntu 18.04 上安装 Xenlism 主题包

Xenlism 开发提供了一种通过 PPA 安装主题包的更简单方法。尽管 PPA 可用于 Ubuntu 16.04,但我发现 GTK 主题不适用于 Unity。它适用于 Ubuntu 18.04 中的 GNOME 桌面。

打开终端(Ctrl+Alt+T)并逐个使用以下命令:

sudo add-apt-repository ppa:xenatt/xenlism
sudo apt update

该 PPA 提供四个包:

  • xenlism-finewalls:一组壁纸,可直接在 Ubuntu 的壁纸中使用。截图中使用了其中一个壁纸。
  • xenlism-minimalism-theme:GTK 主题
  • xenlism-storm:一个图标主题(见前面的截图)
  • xenlism-wildfire-icon-theme:具有多种颜色变化的另一个图标主题(文件夹颜色在变体中更改)

你可以自己决定要安装的主题组件。就个人而言,我认为安装所有组件没有任何损害。

sudo apt install xenlism-minimalism-theme xenlism-storm-icon-theme xenlism-wildfire-icon-theme xenlism-finewalls

你可以使用 GNOME Tweaks 来更改主题和图标。如果你不熟悉该过程,我建议你阅读本教程以学习如何在 Ubuntu 18.04 GNOME 中安装主题

在其他 Linux 发行版中获取 Xenlism 主题

你也可以在其他 Linux 发行版上安装 Xenlism 主题。各种 Linux 发行版的安装说明可在其网站上找到:

安装 Xenlism 主题

你怎么看?

我知道不是每个人都会同意我,但我喜欢这个主题。我想你将来会在 It's FOSS 的教程中会看到 Xenlism 主题的截图。

你喜欢 Xenlism 主题吗?如果不喜欢,你最喜欢什么主题?在下面的评论部分分享你的意见。

关于作者

我是一名专业软件开发人员,也是 It's FOSS 的创始人。我是一名狂热的 Linux 爱好者和开源爱好者。我使用 Ubuntu 并相信分享知识。除了Linux,我喜欢经典侦探之谜。我是 Agatha Christie 作品的忠实粉丝。


via: https://itsfoss.com/xenlism-theme/

作者:Abhishek Prakash 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Wine(一种 Linux 上的程序,不是你喝的葡萄酒)是在类 Unix 操作系统上运行 Windows 程序的一个自由开源的兼容层。创建于 1993 年,借助它你可以在 Linux 和 macOS 操作系统上运行很多 Windows 程序,虽然有时可能还需要做一些小修改。现在,Wine 项目已经发布了 3.0 版本,这个版本兼容 Android 设备。

在本文中,我们将向你展示,在你的 Android 设备上如何借助 Wine 来运行 Windows Apps。

相关阅读 : 如何使用 Winepak 在 Linux 上轻松安装 Windows 游戏

在 Wine 上你可以运行什么?

Wine 只是一个兼容层,而不是一个全功能的仿真器,因此,你需要一个 x86 的 Android 设备才能完全发挥出它的优势。但是,大多数消费者手中的 Android 设备都是基于 ARM 的。

因为大多数人使用的是基于 ARM 的 Android 设备,所以有一个限制,只有适配在 Windows RT 上运行的那些 App 才能够使用 Wine 在基于 ARM 的 Android 上运行。但是随着发展,能够在 ARM 设备上运行的 App 数量越来越多。你可以在 XDA 开发者论坛上的这个 帖子 中找到兼容的这些 App 的清单。

在 ARM 上能够运行的一些 App 的例子如下:

也有一些再度流行的开源游戏,比如,DoomQuake 2,以及它们的开源克隆,比如 OpenTTD 和《运输大亨》的一个版本。

随着 Wine 在 Android 上越来越普及,能够在基于 ARM 的 Android 设备上的 Wine 中运行的程序越来越多。Wine 项目致力于在 ARM 上使用 QEMU 去仿真 x86 的 CPU 指令,在该项目完成后,能够在 Android 上运行的 App 将会迅速增加。

安装 Wine

在安装 Wine 之前,你首先需要去确保你的设备的设置 “允许从 Play 商店之外的其它源下载和安装 APK”。对于本文的用途,你需要去许可你的设备从未知源下载 App。

1、 打开你手机上的设置,然后选择安全选项。

 title=

2、 向下拉并点击 “Unknown Sources” 的开关。

 title=

3、 接受风险警告。

 title=

4、 打开 Wine 安装站点,并点选列表中的第一个选择框。下载将自动开始。

 title=

5、 下载完成后,从下载目录中打开它,或者下拉通知菜单并点击这里的已完成的下载。

6、 开始安装程序。它将提示你它需要访问和记录音频,并去修改、删除、和读取你的 SD 卡。你也可为程序中使用的一些 App 授予访问音频的权利。

 title=

7、 安装完成后,点击程序图标去打开它。

 title=

当你打开 Wine 后,它模仿的是 Windows 7 的桌面。

 title=

Wine 有一个缺点是,你得有一个外接键盘去进行输入。如果你在一个小屏幕上运行它,并且触摸非常小的按钮很困难,你也可以使用一个外接鼠标。

你可以通过触摸 “开始” 按钮去打开两个菜单 —— “控制面板”和“运行”。

 title=

使用 Wine 来工作

当你触摸 “控制面板” 后你将看到三个选项 —— 添加/删除程序、游戏控制器、和 Internet 设定。

使用 “运行”,你可以打开一个对话框去运行命令。例如,通过输入 iexplore 来启动 “Internet Explorer”。

 title=

在 Wine 中安装程序

1、 在你的 Android 设备上下载应用程序(或通过云来同步)。一定要记住下载的程序保存的位置。

2、 打开 Wine 命令提示符窗口。

3、 输入程序的位置路径。如果你把下载的文件保存在 SD 卡上,输入:

cd sdcard/Download/[filename.exe]

4、 在 Android 上运行 Wine 中的文件,只需要简单地输入 EXE 文件的名字即可。

如果这个支持 ARM 的文件是兼容的,它将会运行。如果不兼容,你将看到一大堆错误信息。在这种情况下,在 Android 上的 Wine 中安装的 Windows 软件可能会损坏或丢失。

这个在 Android 上使用的新版本的 Wine 仍然有许多问题。它并不能在所有的 Android 设备上正常工作。它可以在我的 Galaxy S6 Edge 上运行的很好,但是在我的 Galaxy Tab 4 上却不能运行。许多游戏也不能正常运行,因为图形驱动还不支持 Direct3D。因为触摸屏还不是全扩展的,所以你需要一个外接的键盘和鼠标才能很轻松地操作它。

即便是在早期阶段的发布版本中存在这样那样的问题,但是这种技术还是值得深思的。当然了,你要想在你的 Android 智能手机上运行 Windows 程序而不出问题,可能还需要等待一些时日。


via: https://www.maketecheasier.com/run-windows-apps-android-with-wine/

作者:Tracey Rosenberger 选题:lujun9972 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出