CentOSインストールscrot記

6797 ワード

この事件は何も書けないような気がしますが、覚えておきます.
CentOSの下には爽やかなスクリーンショットソフトはありません.ネット上の学生たちはscrotをお勧めします.
ヒント:Gnomeではgnome-screenshotコマンドでスクリーンショットを進行できます.詳細はmanを使用してください.scrotのインストールは本当に大変です!
1.インストール
scrotのソースコードは:http://freecode.com/projects/scrot
ダウンロードしてインストールすると、giblibというライブラリに遭遇し、giblibはimlib 2に依存する可能性があります.このfreecode.comではネットでダウンロードできます.どのように私はインストールして、私はもう多く言わないで、まさかすべて:
tar xzvf xxxx.tar.gz
cd xxxx
./configure && make
sudo make install

あなたは知っています../configureの過程で何か欠けているものを探しています.
1.1 libX 11のインストール
makeの場合、次のエラーが発生しました.
In file included from main.c:26:scrot.h:29:22: error: X11/Xlib.h: No such file or directory
ネット上で原因を調べて、インストールする必要があります:libX 11-devel
sudo yum install libX11-devel

この間違いは過ぎた.
1.2 lmlibライブラリのインストール
しかし、このエラーが発生しました.
In file included from/usr/local/include/giblib/giblib.h:30,                 from scrot.h:51,                 from main.c:26:/usr/local/include/giblib/gib_imlib.h:32:20:error:Imlib 2.h:No such file or directoryこれはimlibライブラリがインストールされていない理由です.
ダウンロードライブラリimlib 2-1.4.4インストール、makeタイムズエラー:
1.2.1 libXext欠損
api.c:5:34: error: X11/extensions/shape.h: No such file or directoryIn file included from api.c:23:ximage.h:5:33: error: X11/extensions/XShm.h: No such file or directoryIn file included from api.c:23:
sudo yum install libXext-devel

エラー:api.c:30:22:error:ft 2 build.h:No such file or directory
1.2.2 freetypeが欠けている
sudo yum install freetype-devel

エラー:/usr/include/ft 2 build.h:56:38:error:freetype/config/ftheader.h:No such file or directory
ソースコードにfreetypeをインストールする必要があります.からhttp://www.freetype.org/download.html ソースパッケージをダウンロードしてインストールします.
さらにmake、エラー:api.c:5416:fatal error:opening dependency file.deps/api.Tpo:Permission denied
権限がない.じゃあsudo make
1.2.3リンク時報エラー:/usr/bin/ld:cannot find-lpng 12
$ locate libpng12.so
/usr/lib/libpng12.so.0
/usr/lib/libpng12.so.0.49.0

/usr/lib/の下に似たようなライブラリが2つありますが、libpng 12.soがなく、libpng 12.so.0ファイルを/usr/lib/libpng 12.soにリンクします.
sudo ln /usr/lib/libpng12.so.0 /usr/lib/libpng12.so

さらにmake、エラー:loader_png.c:2:17: error: png.h: No such file or directory
1.2.4 libpngライブラリのインストール
行くhttp://libpng.sourceforge.net/index.html ダウンロードしてインストールします.
さらにmake、エラーを報告します:
loader_png.c: In function ‘load’:loader_png.c:61: error: dereferencing pointer to incomplete typeloader_png.c: In function ‘save’:loader_png.c:268: error: dereferencing pointer to incomplete type
1.2.5 png_structp未完全定義問題
loader_を開くpng.cファイル、OKがpng_に参照されていることを発見しましたstructpのタイプ.
        if (setjmp(png_ptr->jmpbuf))  /*   :       png_ptr       */
          {
             png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
             fclose(f);
             return 0;
          }

png_ptrはpng_structpタイプです.このファイルにはpng_が定義されていませんstructpのタイプは、ヘッダファイルにもpng.hしか含まれていません.
locate png.hで/usr/local/include/png.hを見つけて、ファイルを開いて発見します:
typedef struct png_struct_def png_struct;
typedef png_struct * png_structp;

ファイルにpng_が定義されていませんstruct_def構造体.ソースファイルを探して探してみます.
ソースコードの./pngstruct.hファイルに定義があります.しかし、png.hファイルにはinclude「pngstruct.h」がないので、エラーが発生しました.
筆者はpngライブラリの設計がpng_をstruct_defの構造体の内部メンバーが露出しているため、png.hファイルでは定義されず、ポインタとアクセス関数が指定されているだけです.まさかpng_でloader.cでこのゲージを破った.
それならやりやすい.pngstruct.hファイルを/usr/local/include/ディレクトリにコピーします.またpng_loader.cファイルにincludeでいいです.さらにmake、エラー:loader_png.c: In function ‘load’: loader_png.c:62: error: ‘png_struct’ has no member named ‘jmpbuf’ loader_png.c: In function ‘save’: loader_png.c:269: error: ‘png_struct’ has no member named ‘jmpbuf’
1.2.6 png_struct_def構造にはjmpbuf問題はありません
さっきの修正が有効になったことを説明します.ただpng_struct_defにはjmpbufというフィールドは確かにありません.これはバージョンの不一致による可能性が高い.本人libpngのバージョンではjmpbufというフィールドはありませんが、png_からstruct_defでjmpbufを取得する関数インタフェース
jmp_buf png_jmpbuf( png_structp *png_ptr);

png_でjmpbuf(png_ptr)はpng_の代わりにptr->jmpbuffの直接アクセス.
またmake、今回合格しました!
よし!imlib 2-1.4.4はコンパイルに合格しました.戻ってmake scrot.
順調で、合格しました!
2.ランタイムlibgiblib.so動的ライブラリの問題
すべてのインストールに成功した後、scrotを実行中にエラーが発生しました:scrot:error while loading shared libraries:libgiblib.so.1:cannot open shared object file:No such file or directory
libgiblib.so.1が開かないと言っています.解決策は次のとおりです.
(1)このlibgiblib.so.1ファイルを見つけます.
$ find /usr -name libgiblib.so.1           
/usr/local/lib/libgiblib.so.1 
$ cat /etc/ld.so.conf           ,             
include ld.so.conf.d/*.conf 
$ echo "/usr/local/lib" >> /etc/ld.so.conf       
$ ldconfig        scrot      
$ scrot --help   scrot      
Usage : scrot [OPTIONS]... [FILE] 
  Where FILE is the target file for the screenshot. 
  If FILE is not specified, a date-stamped file will be dropped in the 
  current directory. 
  See man scrot for more details 
  -h, --help                display this help and exit 
  -v, --version             output version information and exit 
  -b, --border              When selecting 
……

はい、今使えます.
3.使用方法
次はscrotの使い方を抜粋します.http://blog.csdn.net/luonanqin/article/details/7770554
[一般的な使い方]scrotを使用すると、デスクトップ全体、指定したウィンドウ、および選択した矩形領域をキャプチャできます.
デスクトップのキャプチャ:scrot desktop.png.現在のデスクトップ全体をキャプチャし、desktop.pngファイルとして保存します.この画像ファイルは、現在のディレクトリにあります.ウィンドウのキャプチャ:scrot-bs window.png、オプションbは、ウィンドウのキャプチャ時にscrotが外枠を一緒にキャプチャするようにし、sオプションは、ユーザにキャプチャするウィンドウを選択させる.キャプチャ領域:scrot-s rectangle.png、このコマンドを実行すると、マウスでドラッグした矩形領域がscrotによってキャプチャされ、rectangle.pngファイルとして保存されます.
[高度な使い方]一般的なキャプチャにはscrotの基礎を使えば十分です.しかし、特定の場合、scrotを使用して画像をキャプチャするには、いくつかのテクニックに注意する必要があります.遅延キャプチャ:scrot-cd 10 menu.png、このコマンドのdオプションは画像を遅延キャプチャするために使用され、その後の10は遅延10秒を表す.前のオプションcはカウントダウンを表示します.このテクニックは、メニューやコマンドプロンプトをつかむときに魔力を十分に示す.縮図を生成:scrot-t 50%thumb.png、このコマンドは画像をキャプチャしながら画像のサムネイルを生成します.オプションtは、この機能を開き、その後の50%が原図のスケールパーセントとなる.品質の変更:scrot-q 70 quality.jpg.このコマンドのqオプションは、キャプチャされた画像の品質を変更するために使用されます.値は1~100で、デフォルトは75です.数値が大きいほど、画像品質が高いことを意味する.また、画像の圧縮率も低いほど、占有空間が大きくなる.操作キャプチャ:scrot action.png-e‘mv$f~/images/’で、キャプチャした画像を~/images/ディレクトリに移動します.明らかに、画像を操作する機能はeオプションによって開かれ、$fは元の図のパス/ファイル名を表す.
上記の例では、保存するスナップショットのファイル名を指定しました.実際には、名前を指定しないと、scrotは画像をキャプチャした後、現在の日時、幅の高さの組み合わせを自動的に使用してファイル名を生成します.例:2012-07-21-154232_238x148_scrot.png
しかし、これはまだ不便です.screenshot touch screenshot vim screenshot(vimがインストールされていない場合はsudo apt-get install vimを実行してインストールできる)scrot-s-e'mv$f~/screenshots(注:mv$f~/screenshotsコマンドの両側が単一引用符)を入力してvimを保存し、chmod u+x screenshot
これによりscreenshotファイルを実行することでscrotを実行できます.あるいは、scrotは、ソフトチェーン接続を確立することによって使用することができる.たとえば、/usr/binディレクトリの下でsudo ln-s~/screenshot scsを実行します.後で直接端末にscsを入力するとマウスでスクリーンショットできます.