Kahire 1.8.10 nasıl kurulabilir


12

Paket libcairo2-dev, Kahire grafik kütüphanesinin (1.10.2) en son sürümüdür. 1.8.10 sürümünü yükleyebilmemin bir yolu var mı?

11.10 kullanıyorum, ancak mümkünse genel bir çözümle ilgileniyorum.


Eski sürümü neden yüklemek istediğinizi açıklayabilir misiniz? Eski sürüm sistemini tümüyle yüklemek muhtemelen bir olasılık değildir (bazı programlar yeni sürümün özelliklerine bağlı olabilir), ancak eski sürüm için daha dar bir gereksiniminiz varsa bir çözüm mümkün olabilir.
James Henstridge

Kişisel olarak Kahire hakkında çok az şey biliyorum, ama bir kütüphaneye bağlanan ve Kahire'yi grafik oluşturmak için kullanan bir program yazdım. Kahire kurulumunun sadece Fink (sadece v1.8.10'a sahip) gibi bir şeyle kullanılabildiği Mac'imdeki orijinal geliştirmenin çoğunu yaptım ...
Daniel Standage

... Program ayrıca OpenMP kullanıyor ve döngüler için paralel olanlardan biri Kahire kütüphane işlevlerine çağrıları içeriyor. Tek bir işlemcide çalıştırdığımda program Ubuntu üzerinde çalışıyor ve herhangi bir sayıda işlemci için Mac'te çalışıyor. Ama birden fazla işlemciyle Ubuntu'da çalıştırdığımda kürtaj, segfault, glibcs, vb. Alıyorum
Daniel Standage

V1.8.10 sürümüne geçmenin uzun vadeli bir çözüm için istediğiniz bir şey olmadığını anlıyorum ve kurulumu izole edebiliyorsanız daha da iyi olabilir. Zaten yazılım yükleyen ve ben ne olduğunu anlayana kadar ben sadece geçici bir durdurma-boşluk sahip olmak istiyorum gerçekten benim programında sorun.
Daniel Standage

Referans olarak, Kahire'nin sürüm numaraları 1.8 -> 1.9 -> 1.10'a gider, bu nedenle Ubuntu'da bulunan sürüm, MacOS'ta kullandığınız sürümün her şeyi yapabilmelidir. Kahire'ye yalnızca değiştirmediğiniz bir üçüncü taraf kütüphanesi aracılığıyla erişiyorsanız, yanlışlıkla yeni özellikleri kullanma ve eski geliştirme ortamınızla uyumluluğu bozma konusunda endişelenmeniz gerekmez. Yeni sürümle ilgili bir sorunla karşılaşırsanız, bunun ne olduğunu açıklayabilir misiniz?
James Henstridge

Yanıtlar:


9

Kahire'nin eski bir sürümünü test etmek isterseniz, ana dizininizdeki geçici bir önekte oluşturabilirsiniz.

Her şeyden önce, Kahire'nin yapı bağımlılıklarını yüklediğinizden emin olun. Bunu aşağıdaki komutla yapabilirsiniz:

sudo apt-get build-dep cairo

Şimdi Kahire'nin eski sürümünü indirin ve açın:

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

Şimdi Kahire'yi geçici bir önek haline getirmek istiyorsunuz. Bunun ~/prefixiçin birkaç kez kullandım, ancak herhangi bir dizini kullanabilirsiniz.

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

Şimdi kendi yazılımınızı Kahire'nin bu sürümünü kullanmanız gerekiyor. Yazılım pkg-configbağımlılıklarını bulmak için kullanıyorsa , yalnızca aşağıdaki ortam değişkenini ayarlamak gerekir:

export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig

O kullanmıyorsa pkg-config, ayarlamak gerekebilir CFLAGSdahil etmek -I$HOME/prefix/includeve LDFLAGSdahil etmek -L$HOME/prefix/lib.

Son olarak, programınızı Kahire'nin özel sürümünü kullanarak çalıştırmak için dinamik bağlayıcıyı geçici önekinizdeki paylaşılan kitaplıkları arayacak şekilde yapılandırmanız gerekir:

export LD_LIBRARY_PATH=$HOME/prefix/lib

Bu ayarlandıktan sonra, programınızın Kahire kopyanızla bağlantı kurduğunu doğrulayabilirsiniz ldd. Bu iyi görünüyorsa, her şey tamam.

Temizlemek

Bu geçici kurulumu tamamladıktan sonra temizlenmesi oldukça kolaydır. Sadece ortam değişkenlerini sıfırlayın ve geçici kurulum önekini kaldırın:

unset LD_LIBRARY_PATH
unset PKG_CONFIG_PATH
rm -rf $HOME/prefix

Bunu yaptıktan sonra Kahire sistemini tekrar kullanabilmesi için programınızı yeniden yapılandırmanız / yeniden yapılandırmanız gerekebilir.


1
Temiz bir yükleme ve kaldırma işlemi ile mükemmel ve net talimatlar. Teşekkürler!
Daniel Standage

Varsayılan kahire dosyalarını kullanmaz böylece varsayılan kaldırmak $ HOME'dan yollarını içerecek şekilde nasıl
Dau
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.