2021年7月

Converseen 是一个用于批量图像转换的自由开源软件。有了这个工具,你可以一次将多张图片转换成另一种格式、调整大小、改变它们的长宽比、旋转或翻转它们。

对于像我这样的人来说,这是一个很方便的工具,我必须处理多个不同大小的截图,但在上传到网站之前必须调整它们的大小。

批量转换工具在这种情况下有很大的帮助。这可以在 Linux 命令行中用不错的 ImageMagick 来完成,但在这里使用 GUI 工具要容易得多。实际上,Converseen 在基于 Qt 的图形用户界面下使用 ImageMagick。

用 Converseen 批量处理图像

你可以用 Converseen 通过鼠标点击来转换、调整大小、旋转和翻转多个图像。

你有很多支持批量转换的选项。你可以在你的选择中添加更多的图片,或者删除其中的一些。你可以选择只转换你选择的几张图片。

在调整图像大小时,你可以选择保持长宽比。请记住,在宽度和高度中,你最后改变/输入的那个是控制长宽比的那个。所以,如果你想在保持长宽比的情况下调整大小,但要根据宽度来调整,不要修改高度栏。

你也可以选择将转换后的图像以不同的名称保存在同一目录或其他位置,也可以覆盖现有的图像。

你不能添加文件夹,但你可以一次选择并添加多个图像。

你可以将图像转换为多种格式,如 JPEG、JPG、TIFF、SVG 等。

在改变格式的同时,还有一个选项可以给透明背景以某种颜色。你还可以设置压缩级别的质量。

Converseen 还可以导入 PDF 文件,并将整个 PDF 或其中的一部分转换为图像。然而,在 Ubuntu 21.04 中,每次我试图转换一个 PDF 文件时,它就会崩溃。

在 Linux 上安装 Converseen

Converseen 是一个流行的应用。它在大多数 Linux 发行版仓库中都有。

你可以在你的发行版的软件中心搜索到它:

当然,你也可以使用你的发行版的包管理器通过命令行来安装它。

在基于 Debian 和 Ubuntu 的发行版上,使用:

sudo apt install converseen

在 Fedora 上,使用:

sudo dnf install converseen

在 Arch 和 Manjaro 上,使用:

sudo pacman -Sy converseen

Converseen 也可在 Windows 和 FreeBSD 下使用。你可以在项目网站的下载页面获得相关说明。

它的源码可在 GitHub 仓库 获取

如果你正在寻找一个更简单的方法来调整一张图片的大小,你可以使用这个巧妙的技巧,在 Nautilus 文件管理器中用右键菜单调整图片大小和旋转图片

总的来说,Converseen 是一个有用的用于批量图像转换的 GUI 工具。它并不完美,但在大多数情况下是有用的。你曾经使用过 Converseen 或者你使用类似的工具吗?你对它的体验如何?


via: https://itsfoss.com/converseen/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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

第一款龙芯架构的芯片的性能测试一般

本周发布的龙芯 3A5000 是第一款龙芯架构的芯片,四核,时钟速度高达 2.3~2.5GHz。据称龙芯 3A5000 的性能比之前基于 MIPS 的芯片提高了 50%,同时功耗更低。

据 phoronix 报道,龙芯 3A5000 已经在 OpenBenchmarking.org 上传了一些 Phoronix 测试套件的基准测试结果,总的来说,如果与现代英特尔/AMD 甚至 ARM 的竞争对手相比,性能并不那么令人印象深刻。龙芯 3A5000 上的简易 C-Ray 基准测试 大约为 393 秒,在排名上与基于 ARM 的飞腾 FT-2000 或 Core i3 8109U / Core 2 Quad Q9500 / Core i5 750 差不多。甚至用于服务器的龙芯 3A5000LL 的 Perl 基准测试也是 OpenBenchmarking 上所看到的最慢的结果之一。在几个其它基准测试中,龙芯 3A5000 也只能与飞腾 ARMv8 SoC 相比较。

这还只是龙芯架构迈出的第一步,让我们多给它一些时间。

Linux 防火墙 Firewalld 十年后发布了 1.0

Firewalld 是红帽公司十年前开始的,用于通过 Netfilter 管理 Linux 的防火墙功能。在首次发布十年半之后,发布了 Firewalld 1.0。

Firewalld 1.0 带来了一些突破性的变化,包括放弃对 Python 2 的支持,默认支持区内转发,NAT 规则被移到 iNet 系列,默认目标现在类似于拒绝,废弃了旧的 IPTables 后端等等。对于终端用户来说,它可以普遍减少规则集大小。预计将在 Fedora 35 上推出。

Linux 界的传统就是这么谦虚,都在生产环境用了 10 年了才发布 1.0,不过现在这个传统已经逐渐被那些飙版本号的抛弃了。

GitHub 提高了 Go 模块的供应链安全性

GitHub 宣布对基于 Go 编程语言的模块进行了一系列供应链安全升级。Go 现在是该平台上最流行的编程语言之一。根据 2020 年 Go 开发者调查,76% 的受访者表示,Go 现在已经以某种形式在企业中使用,96% 的受访者表示这些模块被用于包管理。

GitHub 为 Go 模块主要提供了如下供应链安全改进:咨询建议数据库,目前包含 150 多个建议;依赖关系图,可以通过 go.mod 来监控、分析项目的依赖关系,在发现有漏洞的依赖关系时提醒用户;依赖机器人,启用自动拉动请求来修补有漏洞的 Go 模块。

通过软件仓库来解决软件供应链攻击风险是一个好的思路。

Podman 是一个无守护程序的容器引擎,用于在你的 Linux 系统上开发、管理和运行 OCI 容器。在这篇文章中,我们将介绍 Podman 以及如何用 nodejs 构建一个小型应用来使用它。该应用将是非常简单和干净的。

安装 Podman

Podman 的命令就与 docker 相同,如果你已经安装了 Docker,只需在终端输入 alias docker=podman

在 Fedora 中,Podman 是默认安装的。但是如果你因为任何原因没有安装,你可以用下面的命令安装它:

sudo dnf install podman

对于 Fedora silverblue 用户,Podman 已经安装在你的操作系统中了。

安装后,运行 “hello world” 镜像,以确保一切正常:

podman pull hello-world
podman run hello-world

如果一切运行良好,你将在终端看到以下输出:

Hello from Docker!
This message shows that your installation appears to be working correctly.
 To generate this message, Docker took the following steps:
  1.The Docker client contacted the Docker daemon.
  2.The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)
  3.The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
  4.The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
 To try something more ambitious, you can run an Ubuntu container with:
  $ docker run -it ubuntu bash
 Share images, automate workflows, and more with a free Docker ID:
  https://hub.docker.com/
 For more examples and ideas, visit:
  https://docs.docker.com/get-started/

简单的 Nodejs 应用

首先,我们将创建一个文件夹 webapp,在终端输入以下命令:

mkdir webapp && cd webapp

现在创建文件 package.json,该文件包括项目运行所需的所有依赖项。在文件 package.json 中复制以下代码:

{
       "dependencies": {
               "express": "*"
       },
       "scripts": {
               "start": "node index.js"
       }
}

创建文件 index.js,并在其中添加以下代码:

const express = require('express')

const app = express();

app.get('/', (req, res)=> {
       res.send("Hello World!")
});
app.listen(8081, () => {
       console.log("Listing on port 8080");
});

你可以从 这里 下载源代码。

创建 Dockerfile

首先,创建一个名为 Dockerfile 的文件,并确保第一个字符是大写,而不是小写,然后在那里添加以下代码:

FROM node:alpine
WORKDIR usr/app
COPY ./ ./
RUN npm install
CMD ["npm", "start"]

确保你在 webapp 文件夹内,然后显示镜像,然后输入以下命令:

podman build .

确保加了 .。镜像将在你的机器上创建,你可以用以下命令显示它:

podman images

最后一步是输入以下命令在容器中运行该镜像:

podman run -p 8080:8080 <image-name>

现在在你的浏览器中打开 localhost:8080,你会看到你的应用已经工作。

停止和删除容器

使用 CTRL-C 退出容器,你可以使用容器 ID 来删除容器。获取 ID 并使用这些命令停止容器:

podman ps -a
podman stop <container_id>

你可以使用以下命令从你的机器上删除镜像:

podman rmi <image_id>

官方网站 上阅读更多关于 Podman 和它如何工作的信息。


via: https://fedoramagazine.org/getting-started-with-podman-in-fedora/

作者:Yazan Monshed 选题:lujun9972 译者:geekpi 校对:wxy

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

我们在 Linux 的第一次尝试只是一个 apt-get 的距离。

 title=

我在 Linux 的第一次尝试是那种“或许我应该试一试”的情况。

那是 1990 年代,我在一些软盘上找到了用某种打包方式打包的红帽发行版,我为家里的笔记本电脑买了第二个硬盘,然后开始安装它。这是一件有趣的实验,但是我记得当时家人还没有准备好在电脑上使用 Linux。转眼到了 2005 年,我最终放弃了这种做法,买了一台可爱的东芝笔记本电脑,来运行 Windows XP。在工作中,我有一台有点年头的 SUN SPARCStation 5,并且我不太喜欢当时整个 Solaris 的发展方向(基于 Motif 的桌面)。我真的想要用 GIMP 来完成一些这样或那样的项目,但是在 Solaris 上安装 GNOME 1.x(也许是 1.4?)的曲折旅程是很有挑战性的。所以,我实际上是在考虑跳槽到 Windows XP。但是在我的家用机上用了几个月之后,我发现我更不喜欢在 Solaris 上运行 GNOME,所以我安装了 Ubuntu Hoary Hedgehog 5.04,随后在我的笔记本电脑上安装了 Breezy Badger 5.10。这太棒了,那台拥有 3.2GHz 奔腾处理器、2GB 内存和 100GB 的硬盘的机器就在我的 SPARCStation 5 旁边运行。

突然之间,我不再用拼凑起来的 Solaris 安装包来试图去让东西运行起来,而只是用 apt-get 就可以了。并且这个时机也很好。我家庭和我从 2006 年 8 月到 2007 年 7 月居住在法国格勒诺布尔,当时我的妻子在休假。因为有了运行 Linux 的东芝笔记本,我可以带着我的工作一起走。那个时候我在几个大的项目上做了大量的 GIS 数据处理,我发现我可以在 PostGIS / PostgreSQL 上做同样的事情,比我们在加拿大家中使用的昂贵得多的商业 GIS 软件要快得多。大家都很开心,尤其是我。

这一路上发生的有趣的事情是,我们把另外两台电脑带到了法国 —— 我妻子的类似的东芝电脑(运行 XP,对她来说很好用)和我们孩子最近新买的东芝牌笔记本电脑,也运行 XP。也就在圣诞节过后,他们有一些朋友过来,无意中在他们的电脑上安装了一个讨厌的、无法清除的病毒。经过几个小时甚至几天后,我的一个孩子问我:“爸爸,我们就不能安装和你电脑上一样的东西吗?”然后,三个新的 Linux 用户就这样产生了。我的儿子,29 岁了,依然是一个快乐的 Linux 用户,我猜他有第四或第五台 Linux 笔记本电脑了,最后几台都是由 System 76 提供的。我的一个女儿三年前开始读法学院时被迫转换为 Windows,因为她所在的学校有一个强制性的测试框架,只能在 Windows 上运行,而且据称会检测虚拟机之类的东西(请不要让我开始骂人)。而我的另一个女儿被她的公司为她买的 Macbook Air 诱惑了。

哦,好吧,不可能全都赢了吧!


via: https://opensource.com/article/21/5/my-linux-story

作者:Chris Hermansen 选题:lujun9972 译者:shiboi77 校对:wxy

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

iDOS 2 模拟器收到苹果商店的下架通知

iDOS 2 允许用户在 iPhone 或 iPad 设备上运行几十年前的 DOS 游戏和软件。但据开发者所述,苹果正要求其作出改变,否则将下架这款模拟器。苹果说,该应用安装或启动了 App Store 不允许的可执行代码。受苹果对于捆绑游戏文件的限制,开发者曾被迫四年没有更新过 iDOS 2。目前苹果要求 iDOS 2 在 14 天内整改,以剔除该应用能够运行可执行代码的能力。但这么一来,也无异于让 iDOS 2 自废武功。

这就是封闭系统的问题,他们会封杀一切他们认为可能带来威胁的东西。

Keseya 已获得 REvil 勒索软件的通用解密器

利用 Kaseya VSA 远程管理软件漏洞开展的大规模勒索软件攻击,受该事件影响的设备数量达到了百万级。勒索团伙 Revil 在各方的联合打击下从暗网上消失,但这也意味着受害者缺乏被加密数据的解锁秘钥。

不过,Kaseya 现已从“受信任的第三方”那里拿到了通用解密密钥,使得受害者有机会重新获得相关数据的访问权,而无需支付任何赎金。Kaseya 表示不能披露其来源信息,至于是否向勒索软件团伙支付了赎金,Kaseya 既没承认也没否认。

Kaseya 总算是解决了这个问题,但是如何保证下一次呢?

16 年前的惠普打印机驱动程序漏洞影响了数亿台 Windows

研究人员公布了惠普打印机驱动程序(三星和施乐也在使用)中一个高严重性的特权升级缺陷的技术细节,该缺陷影响到数亿台 Windows 机器。如果被利用,网络攻击者可以绕过安全产品;查看、改变、加密或删除数据;或创建具有更广泛用户权限的新账户。这个漏洞已经在系统中潜伏了 16 年,但今年才被发现。它在 CVSS 量表上的评分为 8.8(满分 10 分),属于高严重度。

据分析,该漏洞存在于驱动程序内部的一个函数中,这个函数使用strncpy 从用户输入复制一个字符串,其大小参数由用户控制。

这就是典型的缓冲区溢出,这是早些年非常流行的安全缺陷,如果采用 Rust,就不会有这样的问题。

我自己已经用树莓派几年了,从 3B+ 版本到 4B 版本,这样一个低功耗的 Linux 发行版非常适用于做下载机,来满足 PT、BT 等一些长时间挂机下载/做种的需求。它还可以搭配 SMB 分享、FTP 内网穿透实现个人 NAS 的一些功能。接下来我将介绍自己使用 Transmission 工具搭建的树莓派下载机。

Transmission 安装

Transmission 是一款流行的 BT 下载软件,比其他客户端使用更少的资源,守护程序非常适合服务器,并且可以通过桌面 GUI、Web 界面和终端程序进行远程控制,支持本地对等发现、完全加密、DHT、µTP、PEX 和 Magnet Link 等。

首先,通过 apt 安装软件包,这里注意安装的是 transmisson-daemon

sudo apt-get update
sudo apt-get install transmisson-daemon

然后在 /etc/transmission-daemon/ 目录下修改配置文件 settings.json。修改设置前需要先关闭 transmission 服务:

sudo systemctl stop transmission-daemon.service
cd /etc/transmission-daemon/
sudo nano settings.json

settings.json 文件内容如下,# 后为我补充的需要修改字段的注释:

{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "blocklist-url": "http://www.example.com/blocklist",
    "cache-size-mb": 4,
    "dht-enabled": true,
    "download-dir": "/home/pi/complete", # 下载目录 
    "download-limit": 100,
    "download-limit-enabled": 0,
    "download-queue-enabled": true,
    "download-queue-size": 30,
    "encryption": 1,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/home/pi/incomplete", # 下载未完成文件目录
    "incomplete-dir-enabled": true,
    "lpd-enabled": false,
    "max-peers-global": 200,
    "message-level": 1,
    "peer-congestion-algorithm": "",
    "peer-id-ttl-hours": 6,
    "peer-limit-global": 1000,
    "peer-limit-per-torrent": 50,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "default",
    "pex-enabled": true,
    "port-forwarding-enabled": false,
    "preallocation": 1,
    "prefetch-enabled": true,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 2,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-host-whitelist": "",
    "rpc-host-whitelist-enabled": true,
    "rpc-password": "{525a44ba546f85ef59189a202b8d45357d17589686ReudqW", # 将双引号内修改为你要设定的密码,输入密码明文,重新启动程序后会自动加密,再打开看到的就是这样的密文了。
    "rpc-port": 9091, # 默认 Web 访问端口
    "rpc-url": "/transmission/",
    "rpc-username": "raspberrypi", # 将双引号内修改为你要设定的用户名
    "rpc-whitelist": "*.*.*.*",
    "rpc-whitelist-enabled": true,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": false,
    "seed-queue-size": 10,
    "speed-limit-down": 2048,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 5,
    "speed-limit-up-enabled": true,
    "start-added-torrents": true,
    "trash-original-torrent-files": false,
    "umask": 18,
    "upload-limit": 100,
    "upload-limit-enabled": 0,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true # 允许 Web 登录
}

settings.json 修改完成后,保存配置文件,重启 transmission 服务:

sudo systemctl start transmission-daemon.service

这样在浏览器中登录树莓派 ip:9091 就可以访问 Transmission Web 管理界面了。

Transmission Web 管理界面

如果下载中遇到写入权限问题,需要将目录设置为权限开放:

sudo chmod -R a+rw /home/pi/complete

在树莓派上挂载移动硬盘

树莓派的存储设备为 SD 卡,存储容量不会很大,不适合做 BT 的存储器,最好还是外接移动硬盘。

这里要注意的是由于树莓派供电的问题。树莓派 3B 供电不能直接外接移动硬盘,需要一个可接电源的 USB HUB 对移动硬盘单独供电。树莓派 4B 可以直接外接固态硬盘。

可以先在要挂载的目录下新建一个文件夹,然后将移动硬盘挂载即可。为了能够在树莓派重启的时候自动完成挂载操作,可以将挂载设置为系统服务。

下面是我设置的移动硬盘挂载服务,请参考 home-pi-M_disk.mount

[Unit]
Description=Auto mount USB disk
DefaultDependencies=no
ConditionPathExists=/home/pi/M_disk
Before=sysinit.target

[Mount]
What=/dev/sda1
Where=/home/pi/M_disk
Type=ntfs

[Install]
WantedBy=multi-user.target

上述挂载服务会在树莓派启动后自动将移动硬盘 /dev/sda1(设备名称可以将移动硬盘插入树莓派后通过 sudo fdisk -l 查看),挂载到 /home/pi/M_disk(此目录为新建的挂载目录)目录下。

结语

这样就完成了树莓派下载机的搭建,搭配之前介绍的 SMB 分享、 FTP 内网穿透,还是能够满足个人 NAS 的一些简单需求。 Enjoy!