3

Drwright はメインの Ubuntu ディストリビューションには含まれていませんが、PPA を通じて入手できます。このように、インストール手順は次のとおりです。

   sudo add-apt-repository ppa:drwright/stable 
   sudo apt-get update
   sudo apt-get install drwright

インストールは正常に完了しました。

しかし、このプログラムのソースコードを修正したいです。apt-get source drwright を使用してダウンロードします。まず、ソース コードを変更せずにコンパイルしてみます。

   ./configure

しかし、構成は実行されません:

configure: error: Package requirements (
  glib-2.0 >= 2.31.13
  gio-2.0 >= 2.31.13
  gdk-pixbuf-2.0 >= 2.25.3
  gtk+-3.0 >= 3.0.0
  libcanberra-gtk3 >= 0
  libnotify >= 0.7
  x11) were not met:

No package 'glib-2.0' found
No package 'gio-2.0' found
No package 'gdk-pixbuf-2.0' found
No package 'gtk+-3.0' found
No package 'libcanberra-gtk3' found
No package 'libnotify' found
No package 'x11' found

Drwring が PPA からインストールされ、正常に動作するのに、ソース コードからコンパイルできないのはなぜですか?

4

2 に答える 2

7

ヘッダー ファイル

ソースからプログラムをビルドするために必要なのは、使用するライブラリのコンパイル済みバイナリだけではありません。それらのヘッダー ファイルも必要です。

Debian、Ubuntu、およびその他の Debian ベースのオペレーティング システムでは、ヘッダー ファイルは、名前が で終わるパッケージによって提供されます-dev。通常は、バイナリ パッケージ名に が-dev追加されているか、バイナリ パッケージ名にいくつかのバージョン番号が削除および-dev追加されています。

-dev-dbgパッケージ (コンパイル用) をパッケージ(デバッグ用)と混同しないでください。これらのパッケージが作成される方法と理由について、いくつかの情報を次に示します。

pkg-config パッケージとパッケージ マネージャーのパッケージ

ソース コードからビルドし、./configure不足しているパッケージについて通知する場合、通常、パッケージ マネージャーで何がインストールされているかを確認していません。また、不足しているパッケージの名前は通常、パッケージと共にインストールする必要があるパッケージの正確な名前ではありません。マネジャー。( pkg-config./configureは、スクリプトが依存関係を計算するための一般的な方法です。詳細については、この記事マンページ、およびプロジェクト ページを参照してください。)

Package Manager を使用してインストールするパッケージを特定する

どのパッケージをインストールする必要があるかを調べるには、同じ名前で始まるパッケージ、または で始まり、libによって吐き出される「パッケージ」の名前が続くパッケージを調べます./configure。で始まるパッケージlibは、(Debian および Debian ベースのシステムでは) より一般的です。これは、ほとんどのライブラリ パッケージがそのように命名されているためです。

オンラインでパッケージを検索できます(通常、他のディストリビューションでもこれが提供されています。ここでは Debian のものです)。または、bash 補完を使用してそれらを見つけることができます。これは、システムにローカルに保存されている情報を使用するため、どのパッケージがどのバージョンでどこから入手できるかについて、最初にその情報を更新する必要があります。

sudo apt-get update

次に、パッケージをインストールするコマンドを、名前の先頭だけを入力して入力します。たとえば、次の場合glib-2.0:

ek@Del:~$ apt-get install libglib2
libglib2.0-0                libglib2.0-cil-dev
libglib2.0-0-dbg            libglib2.0-data
libglib2.0-0-dbgsym         libglib2.0-dev
libglib2.0-0-refdbg         libglib2.0-dev-dbgsym
libglib2.0-0-refdbg-dbgsym  libglib2.0-doc
libglib2.0-bin              libglib2-ruby
libglib2.0-bin-dbgsym       libglib2-ruby1.8
libglib2.0-cil              libglib2-ruby1.8-dbg
libglib2.0-cil-dbgsym

そこで、入力したコマンドを実行しませんでした。(呼び出されたパッケージがなく、ルートとして実行しない限り成功しないlibglib2ため、成功しなかったでしょう。)apt-get install

代わりにTab、行末を数回押すと、候補のリストが表示されました。

これらの提案から、正しいのはlibglib2.0-devです。

それでもわからない場合

どちらが正しいか分からない場合もあります。その後、使用apt-cache show ...して調べることができます。たとえば、次のものが必要かどうか疑問に思っているとますlibglib2.0-cil-dev

ek@Del:~$ apt-cache show libglib2.0-cil-dev 
Package: libglib2.0-cil-dev
Priority: optional
Section: libs
Installed-Size: 174
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian CLI Libraries Team <pkg-cli-libs-team@lists.alioth.debian.org>
Architecture: i386
Source: gtk-sharp2
Version: 2.12.10-2ubuntu4
Replaces: libglib2.0-cil (<< 2.12.9-2)
Depends: libglib2.0-cil (= 2.12.10-2ubuntu4)
Filename: pool/main/g/gtk-sharp2/libglib2.0-cil-dev_2.12.10-2ubuntu4_i386.deb
Size: 2408
MD5sum: 50fa0825eb4d73593bdc8419c5fc9737
SHA1: f9659e85410505f7463a7117ebb92c70af6ad3aa
SHA256: 8f9d39465f2a1d5b4cc7832660ea53bacc681811ab2c80b57cad1655d4055b01
Description-en: CLI binding for the GLib utility library 2.12
 This package provides the glib-sharp assembly that allows CLI (.NET) programs
 to use the GLib utility library 2.12. This is mostly useful for the GTK+ and
 GNOME bindings.
 .
 GTK# 2.10 is a CLI (.NET) language binding for the GTK+ 2.10 toolkit
 .
 This package contains development files for the glib-sharp library, and should
 be used for compilation
Homepage: http://www.mono-project.com/GtkSharp
Description-md5: e7432bd7eb91c1c711c14150f81a3556
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 18m

apt-cache show必要に応じて、不完全なパッケージ名のコマンドライン補完をの代わりに引数として使用できますapt-get install。パッケージの名前を取得する (パッケージがインストールされているかどうかに関係なく取得する) コマンドは、この目的に適しています。

必要な特定のパッケージ

表示されたメッセージを考えると、-dev必要なパッケージはおそらく次のとおりです。

これらは Software Center にインストールできますが、複数のパッケージを簡単にインストールできるコマンド ラインをお勧めします。

sudo apt-get update && sudo apt-get install libglib2.0-dev libgdk-pixbuf2.0-dev libgtk-3-dev libcanberra-gtk3-dev libnotify-dev libx11-dev
于 2013-01-24T04:58:27.867 に答える
-1

ルートとしてシェルでコマンドを試してください

$ apt-get install glib-2.0 gio-2.0 gdk-pixbuf-2.0 gtk + -3.0 libcanberra-gtk3 libnotify x11 -f -y

于 2013-01-16T22:23:00.420 に答える