1. 程式人生 > >CentOs7 中安裝 guetzli 詳細教程

CentOs7 中安裝 guetzli 詳細教程

CentOs7 中安裝 guetzli 教程,我的承諾,今天兌現。帶你上車

測試了結果,驚的我目瞪口呆。如果非要我用一個詞形容的話:

牛逼

太牛逼

先來教大家如何在 CentOs7 中安裝,專案的說明文件沒有很好的說明如何完成 redhat 系列的 linux 如何安裝。我是踩了不少坑才完成的。

這裡邊最簡單的安裝就是 mac 上了,直接通過 brew install guetzli 就ok。ubuntu 上的安裝也是滿多坑,如果出了問題,也可以借鑑本文。

首先為自己的系統設定epel源

# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

上面這一步並不是必須的。我只是為了講解後面的錯誤。

在安裝 Guetzli 之前,需要先安裝:
- libpng link
- gflags link

libpng的安裝

先說 libpng 的安裝。該庫是一款C語言編寫的比較底層的讀寫PNG檔案的跨平臺的庫。

如果搞不懂c語言,你也不用管他,簡單說就是 guetzli 內部會使用它,所以需要先把它安裝好。否則 guetzli 沒辦法讀取png圖片(並且也不能編譯通過)

這個庫可以直接通過yum來進行安裝。安裝出來的是 1.5.13 。當前最新的版本是 1.6.29
由於我的源裡邊沒有最新版,所以這裡安裝的版本就是:1.5.13

安裝命令:

yum install libpng-devel

這裡一定注意,不要直接安裝 libpng 。安裝 libpng-devel 會依賴安裝 libpng

ps: libpng-devel 是 用於程式操作PNG圖片的開發工具

The libpng-devel package contains header files and documentation necessary
for developing programs using the PNG (Portable Network Graphics) library.
If you want to develop programs which will manipulate PNG image format
files, you should install libpng-devel. You’ll also need to install
the libpng package.

如果沒有安裝依賴成功,請自行手動安裝。命令

yum install libpng

檢查是否安裝成功:

yum info libpng libpng-devel

看到如下內容

已安裝的軟體包
名稱    :libpng
架構    :x86_64
時期       :2
版本    :1.5.13
釋出    :7.el7_2
大小    :602 k
源    :installed
來自源:base
簡介    : A library of functions for manipulating PNG image format files
網址    :http://www.libpng.org/pub/png/
協議    : zlib

名稱    :libpng-devel
架構    :x86_64
時期       :2
版本    :1.5.13
釋出    :7.el7_2
大小    :211 k
源    :installed
來自源:base
簡介    : Development tools for programs to manipulate PNG image format files
網址    :http://www.libpng.org/pub/png/
協議    : zlib

通過 yum info 命令檢視已安裝的軟體選項。如果看到上面的結果說明安裝成功。

gflags的錯誤安裝

為了把他安裝好,搞得我神魂顛倒,忘乎所以。真的是太多坑。最後通過 issue 得到了自己想要的答案。下面將給大家重現一下我的錯誤過程。

記得文章開頭讓大家設定的 epel 源嗎?我用 yum search gflags 找到如下資訊

[[email protected] ~]# yum search gflags
已載入外掛:fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.nethub.com.hk
 * epel: ftp.jaist.ac.jp
 * extras: mirrors.btte.net
 * updates: mirror.lzu.edu.cn
======================================================= N/S matched: gflags =======================================================
gflags-devel.x86_64 : Development files for gflags
gflags.x86_64 : Library for commandline flag processing

因此,直接使用 yum install gflags gflags-devel

然後去編譯 Guetzli ,出現下面的錯誤資訊:

==== Building guetzli (release) ==== 
guetzli.cc <命令列>:0:18: 錯誤:‘google’不是一個名稱空間名 guetzli/guetzli.cc:33:17: 附註:in expansion of macro ‘GFLAGS_NAMESPACE’ using namespace GFLAGS_NAMESPACE;
^ guetzli/guetzli.cc:33:33: 錯誤:expected namespace-name before ‘;’ token using namespace GFLAGS_NAMESPACE; 
^ guetzli/guetzli.cc: 在函式‘int main(int, char**)’中: guetzli/guetzli.cc:194:55: 錯誤:‘SetUsageMessage’在此作用域中尚未宣告 "guetzli [flags] input_filename output_filename"); 
^ guetzli/guetzli.cc:194:55: 附註:建議的替代: In file included from guetzli/guetzli.cc:24:0: /usr/include/gflags/gflags.h:331:29: 附註: ‘gflags::SetUsageMessage’ extern GFLAGS_DLL_DECL void SetUsageMessage(const std::string& usage); 
^ guetzli/guetzli.cc:195:43: 錯誤:‘ParseCommandLineFlags’在此作用域中尚未宣告 ParseCommandLineFlags(&argc, &argv, true); 
^ guetzli/guetzli.cc:195:43: 附註:建議的替代: In file included from guetzli/guetzli.cc:24:0: /usr/include/gflags/gflags.h:346:31: 附註: ‘gflags::ParseCommandLineFlags’ extern GFLAGS_DLL_DECL uint32 ParseCommandLineFlags(int argc, char** argv, bool remove_flags); 
^ guetzli/guetzli.cc:198:31: 錯誤:‘ShowUsageWithFlags’在此作用域中尚未宣告 ShowUsageWithFlags(argv[0]); 
^ guetzli/guetzli.cc:198:31: 附註:建議的替代: In file included from guetzli/guetzli.cc:24:0: /usr/include/gflags/gflags.h:175:29: 附註: ‘gflags::ShowUsageWithFlags’ extern GFLAGS_DLL_DECL void ShowUsageWithFlags(const char *argv0); 
// what --help does 
^ make[1]: *** [obj/Release/guetzli.o] 錯誤 1 
make: *** [guetzli] 錯誤 2

錯誤中出現了多處 xx在此作用域中尚未宣告 對應的 c++ 檔案剛好是:gflags.h

因此我猜測,可能是版本不對。通過 yum info gflags 確認一下當前的版本資訊

名稱    :gflags
架構    :x86_64
版本    :2.1.1
釋出    :6.el7
大小    :72 k
源    :epel/x86_64
簡介    : Library for commandline flag processing
網址    :http://code.google.com/p/gflags
協議    : BSD

是2.1版本。因為我mac上的 Guetzli 是可以執行的,因此檢視一下mac上的 gflags 版本,得到如下:

gflags: stable 2.2.0 (bottled)
Library for processing command-line flags

ok,兩者之間差了一個小版本。在 gflags github 檢視釋出的 release 版本。看到了最新的 2.2.0 版本。然後看到其對應的描述:

This release adds support for use of the gflags library as external dependency not only in projects using CMake, but also Bazel, or pkg-config.

我想,不管怎麼樣,先試試唄。

正確安裝 gflags 新版本

由於 epel 還沒有最新的源,只能自己動手編譯了。官方編譯指南

ps: Debian/Ubuntu Linux 可以直接使用 apt-get 來安裝,但是好像有些版本也會出現版本問題,也可以動手自己編譯最新的版本

由於 gflags 需要 ccmake 編譯。所以需要先安裝 cmake (安裝 cmake 後,就可以使用 ccmake)

yum -y install cmake

好,搞定 cmake ,接下來開始 gflags

[root@play ~]# wget https://github.com/gflags/gflags/archive/v2.2.0.tar.gz
[root@play ~]# tar -zxvf v2.2.0.tar.gz
[root@play ~]# cd gflags
[root@play ~]# mkdir build && cd build
[root@play ~]# ccmake ..

這時會有一個介面,用來生成 configuration files,這裡需要特別說明一下,建議大家進入介面後,一直按c,選項不明白的都不要設定,知道出現一個g 的時候,請 press g,截個圖
image

接著來

[root@play ~]# make
[root@play ~]# make install

ok,現在安裝好了gflags,如果編譯過程中還有其他錯誤,應該是少了一些支援的 lib,根據錯誤去查一查。

Guetzli安裝

前面都是為了安裝它而做的準備工作,接下來就來完成它的編譯,so easy

[root@play ~]# git clone https://github.com/google/guetzli.git
[root@play ~]# make

然後會在目錄中生成一個檔案

guetzli/bin/Release/guetzli

將命令移動到自己的命令環境中,就可以使用了。

[[email protected] ~]# guetzli
guetzli: Guetzli JPEG compressor. Usage:
guetzli [flags] input_filename output_filename

xxxxxx

  Flags from guetzli/guetzli.cc:
    -quality (Visual quality to aim for, expressed as a JPEG quality value.)
      type: double default: 95
    -verbose (Print a verbose trace of all attempts to standard output.)
      type: bool default: false

然後大家可是試一試壓縮效果。後續會有文章介紹它的壓縮效果,以及php中使用它。請持續關注。

我要吐槽

覺得本文不錯,歡迎打賞:

image

相關推薦

CentOs7 安裝 guetzli 詳細教程

CentOs7 中安裝 guetzli 教程,我的承諾,今天兌現。帶你上車 測試了結果,驚的我目瞪口呆。如果非要我用一個詞形容的話: 牛逼 太牛逼 先來教大家如何在 CentOs7 中安裝,專案的說明文件沒有很好的說明如何完成 redhat 系列的

Centos7.3安裝Oracle12C詳細過程

命令行 sim 內存 color oca ble 等於 棧設置 mkdir 安裝Oracle12C 1、下載Oracle12C軟件包 安裝Oracle之前需要在官方網站中下載Oracle12C database 軟件包,官方下載鏈接:http://www.oracle.c

如何在騰訊雲centos7安裝mysql,Tomcat超全詳細

溫馨提示:在開始安裝之前,必須用 開啟root使用者,server.xml修改配置後才能正常使用80埠 sudo su 切換到root使用者 下載 wget https://repo.mysql.com//mysql57-community-release-el

Centos7 安裝rabbitmq詳細教程

一、RabbitMQ簡單介紹     RabbitMQ就是當前最主流的訊息中介軟體之一。RabbitMQ是一個開源的AMQP實現,伺服器端用Erlang語言編寫,支援多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XM

centos7安裝mysql8詳細教程

第一部分 CentOS7安裝mysql 1.1 安裝前清理工作; 1.1.1 清理原有的mysql資料庫; 使用以下命令查找出安裝的mysql軟體包和依賴包: rpm -pa | grep mysql 顯示結果如下: mysql80-community-rel

centos7安裝supervisor詳細教程

解釋一些讓人容易疑惑名詞: supervisor:要安裝的軟體的名稱。 supervisord:裝好supervisor軟體後,supervisord用於啟動supervisor服務。 supervisorctl:用於管理supervisor配置檔案中prog

開發人員學Linux(3):CentOS7安裝JDK8和Tomcat8

java tomcat jdk service centos 題外話:直到今天開始寫本系列的第三篇時本人才想好為這個系列取一個名字,本系列不是為Linux運維人員準備的,而是主要為開發人員準備的,包括但不限於:希望了解Linux的開發人員;需要在Linux上部署一些組件的開發人員,如Mem

CentOS下安裝XAMPP詳細教程(轉)

文件 sql user roc method 提示 ges 教程 comment 【原文】http://blog.csdn.net/hel12he/article/details/49781813 現在PHP的集成運行環境越來越多,個人比較喜歡XAMPP,更新速度快,好

vsftpd 安裝配置詳細教程

ota 復制 名稱 客戶端連接 conf ice cal ftp服務器 cannot linux下ftp軟件不少,大致特點:<br /> wu-ftp:比較老牌,但針對它的攻擊比較多,設置比較麻煩,但功能比較強大。<br /> vsftpd:功能強大

Centos7安裝Docker

install docker鏡像 start code tar engine gpg /var/ blog 1.配置docker鏡像安裝源 tee /etc/yum.repos.d/docker.repo <<-‘EOF‘ [dockerrepo] n

Windows 64位下安裝Redis詳細教程

enc 展示 eap redis 安裝 htm isp benchmark 新建 ref 工具/原料 Windows 64位操作系統 Redis 安裝包(當前教程版本2.8.12) 方法/步驟 在D盤新建文件夾【redis】,右鍵解壓Re

Window系統環境 安裝memcached詳細教程

系統安裝北大青鳥任老師講講memcached的安裝方法教程什麽是memcached:Memcached 是一個高性能的分布式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的ha

centos7安裝kvm,並連接vnc創建虛擬機

centos7 kvm 橋接ip 一 環境準備1 關閉selinux永久關閉:cd /etc/selinux/config 修改enforcing為disabled後保存退出。臨時關閉,重啟失效:setenforce 0getenforce顯示Permissive 修改完畢2關閉防火墻syste

Centos7安裝Python3

bzip dbm readline 安裝 nss 最新 cap article 依賴 環境:CentOS 7 1. 安裝依賴環境 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel

Robot Framework安裝部署詳細教程

記得 環境 get 錯誤提示 彈窗 語言 googl hive eap (轉自“義甬君”) Robot Framework安裝準備 說實話,在我玩了這麽多自動化工具後,感覺Robot Framework所需的環境和安裝過程是相對比較繁瑣和復雜的。要真正搭建一套可以使用的Ro

CentOS7安裝MySQL5.7

技術分享 log文件 長度 ber rac etc print rate emctl 安裝必要的組件 yum install –y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ li

Centos7安裝KVM虛擬機

-name tex 安裝 other dev 使用 mct 主機 ger KVM 特性 嵌入到linux內核 虛擬機是一個進程 SPICE是redhat開發的開源的專門的桌面虛擬化數據傳輸協議 QEMU是可以圖形化管理KVM虛擬機的一個工具,專門用來管理KVM的,所以

centos7安裝redis,並通過node.js操作redis

lease eply 準備 事件 tput div channel cli state 引言 最近在學習node.js 連接redis的模塊,所以嘗試了一下在虛擬機中安裝cent OS7,並安裝redis,並使用node.js 操作redis。所以順便做個筆記。 如有不對的

CentOS7 安裝 MySQL

www. ref oar ase oot 退出 rep word root 參考   centos7.2安裝MySQL   CentOS 7 下 Yum 安裝 MySQL 5.7 1. 驗證是否已經安裝 MySQL # 檢查是否安裝了 MySQL rpm -qa

mac上安裝Nginx詳細教程

bre ttl ssi 配置文件 -s address 重新 mac ont 1. 安裝(可以用 brew 安裝) sudo brew install nginx 2. 查看 nginx 版本 nginx -v3. 啟動 nginx sudo nginx 1也可以使用