Bootstrap

Rocky Linux 9.2 安装最新版本的Shutter截图软件


前言

Shutter是一个适用于Linux操作系统的功能丰富的开源(GPLv3)屏幕截图程序。你可以使用Shutter来截取一个特定的区域、窗口或者是整个屏幕,甚至截取一个网页。此外,你也可以用它自带的图像编辑器来对截取的图片进行编辑处理等操作。目前在Centos 8 、Centos Steam 8 及以上版本、Rocky Linux 8及以上版本上没有预先构建好的软件包,无法通过dnf(yum) install 命令进行安装,幸运的是目前Shutter官网提供了已编译构建好的源码(可执行程序文件及相关依赖库文件)压缩包,本文则通过该源码压缩包来进行安装。


一、安装前系统环境基本配置

1.1、配置Rocky Linux 9 国内源

参考以下链接进行配置:
http://mirrors.ustc.edu.cn/help/rocky.html

1.2、 在Rocky Linux 9 上启用EPEL仓库

参考以下链接进行配置
https://www.rockylinux.cn/technical-blog/zai-rocky-linux-9-shang-qi-yong-epel-he-remi-cang-ku.html

1.3、安装基本的开发工具组

# 安装开发工具组
sudo dnf groupinstall 'development tools'
# 查看已安装的组
sudo dnf group list --installed

二、从官网下载最新版本的源码包进行安装

2.1、下载地址

https://shutter-project.org/downloads/source-code/

官网想下载地址
GitHub仓库下载地址

2.2、安装

解压下载的源码压缩包shutter-0.99.4.zip或shutter-0.99.4.tar.gz
终端进入解压后的源码根目录进行安装,默认安装到/usr/local目录下,可自定义安装路径:

make
# 默认安装在/usr/local
make install
# 自定义安装目录
make prefix=YOURPREFIX install

源码安装截图

2.3、尝试命令行启动shutter

cd /home/MQL-260137/applications/shutter/bin
./shutter

mignl命令行执行

2.4、启动失败

终端打印的启动日志中报缺少perl相关模块错误,如:

Can't locate diagnostics.pm in @INC (you may need to install the diagnostics module) (@INC contains: /usr/local/lib64/perl5/5.32 /usr/local/share/perl5/5.32 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./shutter line 36. BEGIN failed--compilation aborted at ./shutter line 36.

以上错误表示缺少perl的diagnostics模块,需先安装该模块后再尝试启动shutter

三、安装依赖库

3.1、查看所需依赖库信息

根据官网说明,shutter需要系统环境安装了必要的依赖库才能正常启动运行,不同版本的shutter所需依赖库有所不同,根据当前安装的版本选择相应的依赖库进行安装

官网依赖库信息

3.2、按步骤安装缺少的依赖库

启动shutter时,当出现Can't locate xxx.pm in @INC (you may need to install the xxx module)Can't locate xxx/yyy.pm in @INC (you may need to install the xxx::yyy module)错误信息时,说明缺少xxx或xxx::yyy依赖模块,解决方式如下:

  1. 首先尝试通过dnf(yum)命令方式进行安装:

    # 尝试从yum源和epel源或一些第三方镜像源中查找缺失的软件包
    dnf search perl-xxx
    dnf search perl-xxx-yyy
    # 如能查找到缺失的软件包,则可通过dnf install命令进行安装
    dnf install perl-xxx -y 
    dnf install perl-xxx-yyy -y
    

    以下为本次安装shutter所缺少的所有能查找到的依赖包,执行以下命令进行安装:

    dnf install perl-diagnostics -y
    dnf install perl-Carp-Always -y
    dnf install perl-Glib-Object-Introspection -y
    dnf install gobject-introspection-devel -y
    dnf install perl-Number-Bytes-Human -y
    dnf install perl-ExtUtils-MakeMaker -y
    dnf install perl-ExtUtils-Depends -y
    dnf install perl-ExtUtils-PkgConfig -y
    dnf install perl-Glib-devel -y
    dnf install install perl-Cairo -y
    dnf install perl-Gtk3 -y
    dnf install perl-Gtk3-ImageView -y
    dnf install perl-File-Which -y
    dnf install perl-File-Copy-Recursive -y
    dnf install perl-XML-Simple -y
    dnf install perl-CPAN -y
    dnf install dbus -y
    dnf install dbus-devel dbus-glib-devel -y
    dnf install perl-XML-Twig -y
    dnf install perl-Sort-Naturally -y
    dnf install ImageMagick -y
    dnf install perl-Moo -y
    dnf install perl-Locale-gettext -y
    dnf install gtk3-devel -y
    dnf install gtk-doc -y
    dnf install perl-Proc-ProcessTable -y
    
  2. 手动下载源码编译安装:
    当通过dnf install方式无法找到所缺少的软件包进行安装时,可在metacpan这个网站:https://metacpan.org/网站上搜索查找缺少的依赖库,并下载其源码文件进行编译安装。例如,当出现Can't locate Pango.pm in @INC (you may need to install the Pango module)时,此时通过dnf search 命令无法找到Pango包,解决办法如下:

    • 查找并下载perl绑定的Pango包Pango-1.227.tar.gz

    Pango源码下载

      # 进入解压后的源码目录
      cd Pango-1.227
      # 编译安装
      perl Makefile.PL
      make
      make test
      sudo make install
    

    Pango命令行编译安装
    以下为本次安装shutter所缺少的所有perl绑定的依赖包源码压缩文件,需按以上所述方法下载后手动编译安装:

    Pango-1.227.tar.gz
    Net-DBus-1.2.0.tar.gz
    Proc-Simple-1.32.tar.gz
    GooCanvas2-0.06.tar.gz
    GooCanvas2-CairoTypes-0.001.tar.gz
    
    • 注意:
    1. 建议先通过dnf install命令安装所有能查找到的依赖包,随后再下载不能查找到的依赖包源码文件进行手动编译安装;
    2. 手动安装Net-Dbus前必须先安装dbus、dbus-devel、dbus-glib-devel依赖库,否则编译安装时可能出现DBus >= 1.3.0 is required错误;
    3. 安装GooCanvas2-0.06.tar.gz和GooCanvas2-CairoTypes-0.001.tar.gz之前必须先安装goocanvas2,可从https://download.gnome.org/sources/goocanvas/2.0/处下载goocanvas-2.0.4.tar.xz进行源码编译安装,具体方式如下:
      下载源码文件:
      goocanvas2源码下载
      编译安装:
       # 进入解压后的源码目录
       cd goocanvas-2.0.4
       # 默认安装到/usr/local中,在此自定义选择安装目录
       ./configure --prefix=/usr/local/mylibs/goocanvas-2.0.4
       make
       sudo make install
      
      设置环境变量:
      非默认路径安装时,必须手动设定头文件和库文件的查找路径,在此通过设置PKG_CONFIG_PATH环境变量方式进行设置,首先在/etc/profile.d目录下创建goocanvas.sh文件,在该文件中写入以下配置项:
      export GOOCANVAS_ROOT=/usr/local/mylibs/goocanvas-2.0.4
      export GOOCANVAS_INCLUDE=$GOOCANVAS_ROOT/include
      export GOOCANVAS_LIB=$GOOCANVAS_ROOT/lib
      export GOOCANVAS_LIB64=$GOOCANVAS_ROOT/lib64
      export LD_LIBRARY_PATH=$GOOCANVAS_LIB:$LD_LIBRARY_PATH
      #Add pkg-config path
      export PKG_CONFIG_PATH=$GOOCANVAS_LIB/pkgconfig:$PKG_CONFIG_PATH
      export PKG_CONFIG_PATH=$GOOCANVAS_LIB64/girepository-1.0:$PKG_CONFIG_PATH
      
      查看goocanvas2安装配置
      也可将以上配置直接写入~/.bashrc文件中,随后复制Typelib文件到系统默认查找目录,否则可能报:t/GooCanvas2.t .. Typelib file for namespace 'GooCanvas', version '2.0' not found at /usr/lib64/perl5/vendor_perl/Glib/Object/Introspection.pm line 108. 错误:
      sudo cp /usr/local/mylibs/goocanvas-2.0.4/lib64/girepository-1.0/GooCanvas-2.0.typelib /usr/lib64/girepository-1.0/GooCanvas-2.0.typelib
      

    4.安装goocanvas2前必须先安装perl-Glib-Object-Introspection gobject-introspection-devel依赖库,否则goocanvas2可能安装不完整,可能会缺少必要的Typelib文件;

四 、运行

4.1、正常启动Shutter

  1. 按以上所述方法根据错误提示安装所有缺少的依赖库,直到能正常启动Shutter
  2. 启动Shutter,主界面如出现以下Wayland模式功能受限制提示,则可根据提示将系统显示模式切换回Xorg模式:
    Wayland模式功能限制
    注销当前已登录用户,并在重新登陆前进行切换:
    Wayland与Xorg切换

4.2、添加菜单栏图标

  1. 拷贝shutter安装目录下的shutter.desktop文件到系统的/usr/share/applications目录下:
    sudo cp /home/MQL-260137/applications/shutter/share/applications/shutter.desktop /usr/share/applications/shutter.desktop
    

2.修改拷贝后的shutter.desktop文件,将Exec配置项修改为安装后shutter可执行程序的实际路径:
修改图标配置项

  1. 重载菜单栏或注销重新登陆后即可在应用程序菜单栏出现shutter软件启动图标:
    菜单栏图标
    到此,Shutter安装成功!

4.3、提示

当用命令行启动shutter时,控制台打印以下警告:

WARNING: gnome-web-photo is missing --> screenshots of websites will be disabled!

则表明当前系统环境缺少gnome-web-photo包,可能对网页截图相关功能有影响,但不影响shutter基本使用,gnome-web-photos使得shutter支持抓取完整的网站页面,目前Centos系7以上版本没有gnome-web-photos的发行安装包,无法通过dnf(yum) install方式进行安装,笔者目前暂且未尝试进行安装,有兴趣的读者可参阅相关资料自行解决。


总结

本文章介绍了如何在Rocky Linux操作系统中安装最新版本的Shutter截图软件,安装的关键在于如果解决缺少相关运行依赖库的问题,由于不同用户系统环境所缺少的依赖库可能有所不同,当安装时出现问题时可尝试参考本文方式进行安装。

;