Cách cài đặt Cairo 1.8.10


12

Gói libcairo2-devnày là phiên bản mới nhất của thư viện đồ họa Cairo (1.10.2). Có cách nào để tôi có thể cài đặt phiên bản 1.8.10 không?

Tôi đang chạy 11.10, nhưng sẽ quan tâm đến một giải pháp chung nếu có thể.


Bạn có thể giải thích lý do tại sao bạn muốn cài đặt phiên bản cũ hơn? Cài đặt hệ thống phiên bản cũ hơn có thể không phải là một khả năng (một số chương trình có thể phụ thuộc vào các tính năng của phiên bản mới hơn), nhưng nếu bạn có yêu cầu hẹp hơn đối với phiên bản cũ hơn thì có thể có giải pháp.
James Henstridge

Cá nhân tôi biết rất ít về Cairo, nhưng tôi đã viết một chương trình liên kết đến một thư viện lần lượt sử dụng Cairo để tạo đồ họa. Tôi đã thực hiện hầu hết các phát triển ban đầu trên máy Mac của mình, trong đó cài đặt Cairo chỉ có sẵn thông qua một cái gì đó như Fink (chỉ có v1.8.10) ...
Daniel Standage

... Chương trình cũng sử dụng OpenMP và một trong các vòng lặp song song bao gồm các lệnh gọi đến các chức năng của thư viện Cairo. Chương trình hoạt động trên Ubuntu khi tôi chạy nó trên một bộ xử lý và nó hoạt động trên Mac cho bất kỳ số lượng bộ xử lý nào. Nhưng khi tôi chạy nó trên Ubuntu với nhiều bộ xử lý, tôi sẽ hủy bỏ, segfaults, glibcs, v.v.
Daniel Standage

Tôi hiểu rằng việc hạ cấp xuống v1.8.10 không phải là điều bạn muốn cho một giải pháp lâu dài và nếu bạn có thể cô lập việc cài đặt thì có thể còn tốt hơn nữa. Tôi đã phân phối phần mềm và tôi chỉ đơn giản muốn có một khoảng cách tạm thời cho đến khi tôi có thể tìm ra điều gì thực sự sai với chương trình của mình.
Daniel Standage

Để tham khảo, số phiên bản cho Cairo đi 1.8 -> 1.9 -> 1.10, vì vậy phiên bản đi kèm với Ubuntu sẽ có thể thực hiện mọi thứ mà phiên bản bạn đã sử dụng trên MacOS đã làm. Nếu bạn chỉ truy cập Cairo thông qua thư viện bên thứ ba mà bạn không sửa đổi, bạn không phải lo lắng về việc vô tình sử dụng các tính năng mới và phá vỡ tính tương thích với môi trường phát triển cũ của bạn. Nếu bạn gặp vấn đề với phiên bản mới, bạn có thể giải thích nó là gì không?
James Henstridge

Câu trả lời:


9

Nếu bạn muốn thử nghiệm một phiên bản cũ của Cairo, bạn có thể xây dựng nó trong một tiền tố tạm thời trong thư mục nhà của bạn.

Trước hết, hãy chắc chắn rằng bạn đã cài đặt các phụ thuộc xây dựng của Cairo. Bạn có thể làm điều này với lệnh sau:

sudo apt-get build-dep cairo

Bây giờ tải xuống và giải nén phiên bản cũ của Cairo:

wget http://cairographics.org/releases/cairo-1.8.10.tar.gz
tar xzf cairo-1.8.10.tar.gz
cd cairo-1.8.10

Bây giờ bạn muốn xây dựng Cairo thành một tiền tố tạm thời. Tôi đã sử dụng ~/prefixcho điều này một vài lần, nhưng bạn có thể sử dụng bất kỳ thư mục nào.

./configure --prefix=$HOME/prefix
make
make install

Bây giờ bạn cần làm cho phần mềm của riêng bạn sử dụng phiên bản Cairo này. Nếu phần mềm sử dụng pkg-configđể xác định vị trí phụ thuộc của nó, thì chỉ cần đặt biến môi trường sau:

export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig

Nếu nó không được sử dụng pkg-config, bạn có thể cần điều chỉnh CFLAGSđể bao gồm -I$HOME/prefix/includeLDFLAGSbao gồm -L$HOME/prefix/lib.

Cuối cùng, để chạy chương trình của bạn bằng phiên bản tùy chỉnh của Cairo, bạn sẽ cần định cấu hình trình liên kết động để nó tìm các thư viện dùng chung trong tiền tố tạm thời của bạn:

export LD_LIBRARY_PATH=$HOME/prefix/lib

Khi đã được đặt, bạn có thể xác minh rằng chương trình của bạn đang liên kết với bản sao Cairo của bạn bằng cách sử dụng ldd. Nếu điều đó có vẻ ổn, bạn đã hoàn tất.

Dọn dẹp

Khi bạn đã hoàn tất cài đặt tạm thời này, việc dọn dẹp khá dễ dàng. Chỉ cần đặt lại các biến môi trường và loại bỏ tiền tố cài đặt tạm thời:

unset LD_LIBRARY_PATH
unset PKG_CONFIG_PATH
rm -rf $HOME/prefix

Bạn có thể cần phải cấu hình lại / xây dựng lại chương trình của mình sau khi thực hiện việc này để làm cho nó sử dụng lại hệ thống Cairo.


1
Hướng dẫn tuyệt vời và rõ ràng, với một quá trình cài đặt và gỡ cài đặt sạch. Cảm ơn!
Daniel Standage

Cách xóa mặc định bao gồm các đường dẫn từ $ HOME để nó không sử dụng các tệp cairo mặc định
Dau
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.