İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

distcc - Bulutta Çevrimiçi

Distcc'yi OnWorks ücretsiz barındırma sağlayıcısında Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü üzerinden çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen distcc komutudur.

Program:

ADI


distcc - distcc-pump uzantıları ile dağıtılmış C/C++/ObjC derleyicisi

SİNOPSİS


bölge [DERLEYİCİ SEÇENEKLER]

bölge [DERLEYİCİ SEÇENEKLER]

[DERLEYİCİ SEÇENEKLER]

bölge [DISTCC SEÇENEKLER]

TANIM


distcc, C kodunun derlemesini bir ağdaki birkaç makineye dağıtır. distcc
her zaman yerel bir derleme ile aynı sonuçları üretmelidir, kurulumu kolaydır ve
kullanın ve genellikle yerel bir derlemeden çok daha hızlıdır.

Bu sürüm, düz distcc'nin yanı sıra pompa modu veya
distcc-pompa.

Her iş için, düz modda distcc, önceden işlenmiş kaynak kodunun tamamını gönderir ve
derleyici argümanlarını istemciden bir derleme sunucusuna ağ üzerinden aktarır. pompada
modunda, distcc kaynak kodunu ve yinelemeli olarak dahil edilen başlık dosyalarını gönderir (bunlar hariç
varsayılan sistem başlık dizinlerinden), böylece hem ön işleme hem de derleme
derleme sunucularında yer alabilir. Bu, derlemelerin teslimini hızlandırır:
düz distcc üzerinde bir büyüklük sırasına kadar.

Derleme, genellikle geliştiricinin iş istasyonu olan bir istemci makinesi tarafından yürütülür.
veya dizüstü bilgisayar. distcc istemcisi, make gibi bu makinede çalışır, önişlemci (eğer
distcc'nin pompa modu kullanılmaz), bağlayıcı ve oluşturma işleminin diğer aşamaları. Herhangi
gönüllü makinelerin sayısı derleme sunucuları olarak hareket eder ve istemcinin aşağıdakileri oluşturmasına yardımcı olur.
programı çalıştırarak, disccd(1) daemon, C derleyicisi ve derleyicisi gerektiği gibi.

distcc, TCP soketlerinden (varsayılan olarak 3632 numaralı bağlantı noktasında) veya bir tünelden çalışabilir
gibi komut ssh(1). TCP bağlantıları için gönüllüler şunları çalıştırmalıdır: disccd(1) arka plan programı
ya doğrudan ya da inetd'den. SSH bağlantıları için distccd kurulmalı, ancak
değil bağlantıları dinliyor olun.

Kullanıcı olmadığı için TCP bağlantıları yalnızca güvenli ağlarda kullanılmalıdır.
kaynak veya nesne kodunun doğrulanması veya korunması. SSH bağlantıları tipik olarak %25'tir
şifreleme için işlemci ek yükü nedeniyle daha yavaş, ancak bu büyük ölçüde değişebilir
CPU'lara, ağa ve oluşturulmakta olan programa bağlı olarak.

distcc, GNU Make's ile kullanılmak üzere tasarlanmıştır. -j birkaç derleyici çalıştıran seçenek
süreçleri eş zamanlı olarak yürütür. distcc, işleri hem yerel hem de uzak CPU'lara yayar.
distcc, işin çoğunu ağ üzerinde dağıtabildiğinden, daha yüksek bir
eşzamanlılık düzeyi, yerel yapılara göre kullanılabilir. Genel bir kural olarak, -j değer
kullanılabilir sunucu CPU'larının toplam sayısının yaklaşık iki katına ayarlanmalıdır, ancak
müşteri sınırlamaları Bu ayar, engellenen görevlerin maksimum düzeyde serpiştirilmesine izin verir
disk veya ağ IO'su bekleniyor. distcc'nin diğer yapı denetimleriyle de çalışabileceğini unutmayın.
SCons gibi benzer eşzamanlılık ayarlarının yapılması gereken araçlar.

The -j ayarı, özellikle büyük değerler için -j üzerindeki CPU yükünü hesaba katmalıdır.
müşteri. İstemci yükünü azaltmak için ek önlemler gerekebilir. Örneğin,
eşzamanlı bağlantı, yardımcı kilitler kullanılarak ciddi şekilde kısıtlanmalıdır. Etkisi
karışık kod oluştururken Java derlemesi gibi diğer derleme etkinlikleri
düşünülen. bu --localslots_cpp parametre varsayılan olarak 16'ya ayarlıdır.
düz distcc (pompasız) modunda ön işleme yapan eşzamanlı işlemlerin sayısı.
Bu nedenle, daha büyük -j 16'dan fazla değerler, tek CPU'lu bir istemciye aşırı yüklenmeden kullanılabilir
ön işleme nedeniyle. Bu kadar büyük değerler, yapının çalışmayan kısımlarını hızlandırabilir.
C derlemelerini içerir, ancak düz modda distcc verimliliği için yararlı olmayabilirler.

Buna karşılık, pompa modunu kullanarak ve diyelim ki 40 sunucu, bir ayar -j80 veya daha büyük olabilir
tek CPU'lu istemciler için bile uygundur.

Tüm makinelere aynı derleyici sürümünü yüklemeniz şiddetle tavsiye edilir.
bir yapıya katılmak. Uyumsuz derleyiciler gizemli derlemeye veya bağlantıya neden olabilir
başarısızlıkların.

HIZLI BAŞLANGIÇ


1 Her makine için distcc'yi indirin, paketi açın ve kurun.

2 Sunucuların her birinde çalıştırın disccd --daemon ile --izin vermek kısıtlama seçenekleri
erişim.

3 Sunucuların adlarını ortamınıza yerleştirin:
$ export DISTCC_HOSTS='localhost kırmızı yeşil mavi'

4 İnşa!
$ yapmak -j8 CC=distcc

HIZLI BAŞLANGIÇ İÇİN DISTCC-POMPA MOD


Yukarıdaki gibi devam edin, ancak Adım 3'te, uzak ana bilgisayarların bu yükü taşıyacağını belirtin.
ön işleme ve ağ üzerinden gönderilen dosyaların sıkıştırılması gerektiği:

$ export DISTCC_HOSTS='--localhost red,cpp,lzo green,cpp,lzo rastgele
mavi, cpp, lzo'

The --rastgele seçeneği, derleme sunucularının tek tip kullanımını zorlar. alacaksın iken
bazıları yalnızca birkaç sunucuyla distcc'nin pompa modundan yararlanır, artan fayda elde edersiniz
daha fazla sunucu CPU'su ile (yüzlerce!). Yapınızı pompa komutunun içine sarın,
burada 10 sunucu varsayarak:

$ distcc-pompası make -j20 CC=distcc

NASIL SADE (POMPA OLMAYAN) MERKEZ İŞLERİ


distcc, derleyiciyi ve derleyiciyi yalnızca uzaktan çalıştırır. Düz distcc ile,
önişlemci, çeşitli başlık dosyalarına erişmesi gerektiğinden her zaman yerel olarak çalışmalıdır.
gönüllüde bulunmayabilen veya aynı olmayabilen yerel makine. bu
linker'ın da benzer şekilde kitaplıkları ve nesne dosyalarını incelemesi gerekir ve bu nedenle yerel olarak çalışması gerekir.

Derleyici ve derleyici yalnızca tek bir girdi dosyası (önceden işlenmiş kaynak) alır ve
tek bir çıktı (nesne dosyası) üretir. distcc bu iki dosyayı
ağ ve bu nedenle derleyiciyi/birleştiriciyi uzaktan çalıştırabilir.

Neyse ki, önişlemciyi çalıştıran çoğu program için nispeten ucuzdur ve
linker nispeten seyrek olarak adlandırılır, bu nedenle işin çoğu dağıtılabilir.

distcc, bu aşamalardan hangisinin çağrıldığını belirlemek için komut satırını inceler ve
iş dağıtılabilir mi.

NASIL DISTCC-POMPA MOD İŞLERİ


Pompa modunda distcc, önişlemciyi de uzaktan çalıştırır. Bunu yapmak için önişlemcinin
yerel olarak çalışıyor olsaydı erişeceği tüm dosyalara erişebilir. İçinde
pompa modu, bu nedenle, distcc, özyinelemeli olarak dahil edilen tüm başlıkları toplar.
varsayılan sistem başlıkları olan ve bunları kaynak dosyayla birlikte
derleme sunucusu.

Distcc-pump modunda, sunucu tüm kaynak dosyaların paketini geçici olarak açar.
dosya sisteminin bir bölümünü yansıtan bir dizin ağacı içeren dizin.
sembolik bağlantılar dahil olmak üzere ön işleme ile ilgilidir.

Derleyici daha sonra, geçici dizindeki şuna karşılık gelen yoldan çalıştırılır.
istemcideki geçerli çalışma dizini. Yüzlerce dosyayı bulmak ve iletmek için
Genellikle tek bir derlemenin parçası olan pompa modu, artımlı bir içerme kullanır
analiz algoritması. Dahil etme sunucusu, bunu uygulayan bir Python programıdır.
algoritma. distcc-pump komutu, içerme sunucusunu başlatır, böylece derleme boyunca
içerme sorgularını distcc komutlarıyla yanıtlayabilir.

Dahil etme sunucusu, koşullu durumlarla başa çıkmak için makro dilinin statik analizini kullanır.
derleme ve hesaplanmış içerir. Belirli bir başlık dosyasının sahip olduğu özelliği kullanır.
içermeler için zaten analiz edilmişse, tüm içermeler varsa bunu tekrar yapmanıza gerek yoktur.
seçenekler (-I'ler) değişmez (diğer koşullarla birlikte).

Büyük yapılar için, başlık dosyalarının her biri ortalama olarak yüzlerce kez eklenir. İle
distcc-pump modu bu tür dosyaların her biri yalnızca birkaç kez, belki de yalnızca bir kez analiz edilir, bunun yerine
yüzlerce kez ön işleme tabi tutuluyor. Ayrıca, her kaynak veya başlık dosyası artık
yalnızca bir kez sıkıştırılır, çünkü içerme sunucusu sıkıştırılmış dosyaları hafızaya alır. Olarak
Sonuç olarak, derlemeleri hazırlamak için kullanılan süre bir büyüklük sırasına kadar düşebilir.
düz distcc'nin ön işlemesi üzerinde.

Pompa modunda distcc, dosyaları yaklaşık on kata kadar daha hızlı dışarı aktarabildiğinden,
hız, düz distcc moduna kıyasla büyük yapılar için 3 kat veya daha fazla artabilir.

KISITLAMALAR İÇİN POMPA MOD


Pompa modunun kullanılması, hem istemcinin hem de sunucuların distcc'nin 3.0 veya sonraki sürümünü kullanmasını gerektirir ve
distccd (sırasıyla).

Distc-pompa modunun artımlı içerme analizi, temel varsayıma dayanır
bu kaynak ve başlık dosyaları, derleme işlemi sırasında değişmez. Birkaç karmaşık yapı
Linux çekirdeği 2.6 gibi sistemler bu gereksinimi tam olarak karşılamamaktadır. İle
bu tür sorunların üstesinden gelin ve içermelerdeki mutlak dosya yolları gibi diğer köşe durumlarının üstesinden gelin, bkz.
the içerme_sunucusu(1) adam sayfası.

Diğer bir önemli varsayım, tüm makinelerin dahil edilen konfigürasyonunun olması gerektiğidir.
özdeş. Bu nedenle, varsayılan sistem yolu altındaki başlıklar tüm sunucularda aynı olmalıdır.
ve tüm müşteriler. Standart bir GNU derleyici kurulumu kullanılıyorsa, bu gereksinim
başlık dosyaları altına yüklenen tüm kitaplıklar için geçerlidir. / usr / include or
/usr/yerel/dahil/. Yazılım paketlerinin yüklenmesinin genellikle ek işlemlere yol açtığını unutmayın.
başlık dosyalarının herhangi birinin alt dizinlerine yerleştirilmesi.

Bu varsayım tutmazsa, distcc-pump ile yapıları kırmak mümkündür.
modu veya daha kötüsü, uyarı vermeden yanlış sonuçlar almak için. Şu anda bu durum değil
doğrulandı ve bu sorunu çözmek için yapılacaklar listemizde.

Dahil edilen konfigürasyonların aynı olduğunu garanti etmenin kolay bir yolu, bir çapraz
dizinleriyle sınırlı varsayılan bir sistem arama yolu tanımlayan derleyicidir.
derleyici kurulumu.

Bak içerme_sunucusu(1) ihlallerin belirtileri ve nedenleri hakkında daha fazla bilgi için kılavuz
distcc-pompa modu varsayımları.

SEÇENEK ÖZET


distcc'ye iletilen seçeneklerin çoğu derleyici seçenekleri olarak yorumlanır. Aşağıdaki seçenekler
distcc'nin kendisi tarafından anlaşılır. Bu seçeneklerden herhangi biri belirtilirse, distcc
derleyiciyi çağırın.

--yardım et Özet talimatları görüntüler.

--versiyon
distcc istemci sürümünü görüntüler.

--show-host'lar
distcc'nin kullanacağı ana bilgisayar listesini görüntüler. Ana Bilgisayar Özellikleri bölümüne bakın.

--tarama-içerir
distcc'nin uzak makineye göndereceği dosyaların listesini görüntüler.
içerme sunucusu tarafından hesaplanır. Bu, muhafazakar (aşırı) bir yaklaşımdır.
C derleyicisi tarafından okunacak dosyalar. Bu seçenek yalnızca pompa modunda çalışır.
Bunun nasıl hesaplandığıyla ilgili ayrıntılar için "Distcc-pompa Modu Nasıl Çalışır" bölümüne bakın.

Liste çıktısı bölge --tarama-içerir satır başına bir giriş içerecektir. Her biri
satırında bir yol ve ardından bir kategori bulunur. Kategori, DOSYA, SYMLINK,
DIRECTORY veya SYSTEMDIR:

DOSYA distcc sunucusuna gönderilecek olan bir kaynak dosyayı veya başlık dosyasını belirtir
konak.

SEMBOL distcc sunucusu ana bilgisayarına gönderilecek bir sembolik bağlantıyı belirtir.

DİZİN kaynağı derlemek için gerekli olabilecek bir dizini belirtir
dosya. Örneğin, bir dizini içermesi nedeniyle bir "foo" dizini gerekebilir.
form #include "foo/../bar.h". Bu tür dizinler distcc'de oluşturulacaktır.
sunucu barındırıcısı.

SİSTEMDİR bir sistem içerme dizini, yani üzerinde bulunan bir dizini gösterir.
derleyicinin varsayılan yolu, "gibi dahil etme yolu/ usr / include"; bu tür dizinler
distcc sunucu ana bilgisayarında bulunduğu varsayılır ve bu nedenle
distcc sunucu ana bilgisayarı.

-j Ana bilgisayar listesinden hesaplandığı gibi distcc'nin eşzamanlılık seviyesini görüntüler; o
bu istemci tarafından tüm sunuculara verilen maksimum bekleyen iş sayısı. İle
varsayılan olarak bu, ana bilgisayar listesindeki ana bilgisayar sayısının dört katı olacaktır.
Host listesinde /LIMIT seçeneği kullanıldı. Ana Bilgisayar Özellikleri bölümüne bakın.

TAKMA MERKEZ


Farklı koşullara uyacak şekilde distcc'yi çağırmanın üç farklı yolu vardır:

distcc, çağrıları durdurmak için gerçek derleyici adı altında kurulabilir.
ve onları uzaktan çalıştırın. Bu "maskelenmiş" derleyici en geniş uyumluluğa sahiptir
mevcut kaynak ağaçlarla ve distcc'yi herkes için kullanmak istediğinizde kullanışlıdır.
derleme. distcc'nin kullanılıyor olması makefiles için şeffaftır.

distcc, "distcc cc -c merhaba.c" gibi derleyici komut satırlarının başına eklenebilir.
veya CC="distcc gcc". Bu, distcc'yi yalnızca bazıları için kullanmak istediğinizde kullanışlıdır.
derlemeler veya denemek için, ancak bazı makefiles veya
$CC'nin boşluk içermediğini varsayan libtool sürümleri.

Son olarak, distcc doğrudan derleyici olarak kullanılabilir. "cc" her zaman
Bu "örtük" modda gerçek derleyicinin adı. Bunun için uygun olabilir
"açık" mod çalışmadığında ancak gerçekten önerilmediğinde etkileşimli kullanım
yeni kullanım için.

Distcc'yi aynı anda çağırmak için iki yöntemi kullanmamanız gerektiğini unutmayın. Eğer sen
maskeli balo dizini kullanıyorsanız, CC ve/veya CXX'i değiştirmeyin, dizini erken koyun
PATH'inizde. Maskeli balo dizini kullanmıyorsanız, CC'yi değiştirmeniz gerekir.
ve/veya CXX veya makefile(ler)i distcc'yi açıkça çağıracak şekilde değiştirin.

maskeleme


Temel fikir, adından bağlantılar içeren bir "maskeli balo dizini" oluşturmaktır.
distcc ikili dosyasının gerçek derleyicisi. Bu dizin PATH'e erken eklenir, bu nedenle
derleyiciye yapılan çağrılar engellenir ve bunun yerine distcc çalıştırılır. distcc sonra kaldırır
gerçek derleyiciyi bulmak için PATH'den.

Örneğin:

# mkdir /usr/lib/distcc/bin
# cd /usr/lib/distcc/bin
# ln -s ../../../bin/distcc gcc
# ln -s ../../../bin/distcc cc
# ln -s ../../../bin/distcc g++
# ln -s ../../../bin/distcc c++

Daha sonra, distcc'yi kullanmak için kullanıcının /usr/lib/distcc/bin dizinini en başa koyması yeterlidir.
PATH ve DISTCC_HOSTS veya bir dosyada bir ana bilgisayar listesi ayarladınız. distcc halledecek
dinlenme.

Bu maskeli balo dizininin, PATH'de olduğu dizinden daha önce gerçekleşmesi gerektiğini unutmayın.
aynı adlara sahip gerçek derleyicileri ve herhangi bir yardımcı programı içerir.
bu derleyici çağrısı (as veya ld gibi) bir dizindeki PATH'de de bulunmalıdır.
maskeli balo dizininden sonra distcc bir PATH ile gerçek derleyiciye seslendiğinden
maskeli balo dizini de dahil olmak üzere tüm dizini kırpılmış olan değer.

Maskeli balo modunda bir "özyineleme hatası" almak mümkündür, bu da distcc'nin şu anlama geldiği anlamına gelir:
bir şekilde kendini tekrar buluyor, gerçek derleyici değil. Bu, iki tane olduğunu gösterebilir
PATH üzerindeki maskeli balo dizinleri, muhtemelen içinde iki distcc kurulumunun olması nedeniyle
farklı yerler. Ayrıca "maskelenmiş" ve
"açık" işlem.

Bağlantılar yerine kabuk komut dosyaları kullanılarak özyineleme hatalarından kaçınılabilir. örneğin,
/usr/lib/distcc/bin şunları içeren bir cc dosyası oluşturun:

#!/ Bin / sh
distcc /usr/bin/gcc "$@"

Bu şekilde, gerçek gcc'yi araştırarak bulmak zorunda olan distcc'ye bağımlı değiliz.
PATH değişkeni. Bunun yerine, derleyici konumu açıkça sağlanır.

KULLANMA MERKEZ İLE CCACHE


ccache, derlemelerin sonuçlarını önbelleğe alarak yazılım derlemelerini hızlandıran bir programdır.
ccache normalde distcc'den önce çağrılır, böylece sonuçlar normal bir
önbellek. Kendine özgü makefile'lerin yapması için bazı deneyler gerekebilir.
her şey birlikte çalışır.

ayarlamak en güvenilir yöntemdir.

CCACHE_PREFIX="distcc"

Bu, ccache'ye distcc'yi gerçek derleyici etrafında bir sarmalayıcı olarak çalıştırmasını söyler. ccache hala kullanıyor
derleyici yükseltmelerini tespit etmek için gerçek derleyici.

ccache daha sonra bir maskeli balo dizini kullanılarak çalıştırılabilir or ayarlayarak

CC="önbellek gcc"

2.2 sürümünden itibaren, ccache önceden işlenmiş kaynaktan derlemeyi önbelleğe almaz ve bu nedenle
distccd veya distcc'den çalıştırılırsa asla önbellek isabeti almaz. Yalnızca üzerinde çalıştırılmalıdır
istemci tarafı ve herhangi bir kullanım için distcc'den önce.

distcc'nin pompa modu ccache ile uyumlu değil.

HOST ÖZELLİKLERİ


Bir "host listesi", distcc'ye derleme için hangi makinelerin kullanılacağını söyler. Sırayla, distcc görünüyor
içinde $DISTCC_HOSTS ortam değişkeni, kullanıcının $DISTCC_DIR/ana bilgisayar dosya ve
sistem çapında ana bilgisayar dosyası. Ana bilgisayar listesi bulunamazsa, distcc bir uyarı verir ve derler.
Yerel olarak.

Ana bilgisayar listesi, ana bilgisayar özelliklerinin basit bir boşlukla ayrılmış listesidir. En basit
ve en yaygın biçim, ana bilgisayar adlarıdır, örneğin

localhost kırmızı yeşil mavi

distcc, ana bilgisayarları listenin başına doğru tercih eder, bu nedenle makineler
azalan hız sırası. Özellikle, yalnızca tek bir derleme çalıştırılabildiğinde (örn.
Bir yapılandırma komut dosyasından olduğu gibi), listelenen ilk makine kullanılır (ancak bkz. --rastgele altında).

Yerleştirme localhost listede doğru noktada iyi performans almak için önemlidir.
İşleri yerel olarak yürütmek için ek yük düşük olduğundan, normalde ilk önce localhost olmalıdır.
Ancak, müşterinin yerel işleri yürütmek için yeterli döngüye sahip olması önemlidir ve
distcc istemcisi. Müşteri, gönüllülerden daha yavaşsa veya çok sayıda kişi varsa
gönüllüler, daha sonra müşteri listeye daha sonra eklenmeli veya hiç alınmamalıdır. genel olarak
kural, istemcinin toplam CPU hızı toplamın beşte birinden azsa,
müşteri listenin dışında bırakılmalıdır.

Büyük bir paylaşılan derleme kümeniz ve tek bir paylaşılan ana bilgisayar dosyanız varsa, yukarıdaki kurallar
hosts dosyasındaki ilk birkaç makinenin önce denenmesine neden olur.
listedeki makinelerden daha yoğun olması muhtemeldir. Bunu önlemek için, anahtar kelimeyi yerleştirin
--rastgele ana bilgisayar listesine. Bu, ana bilgisayar listesinin rastgele olmasına neden olur ve bu
büyük yapı kümeleri için performansı biraz artırmalıdır.

İki özel ana bilgisayar adı var --yerel yuvalar ve --localslots_cpp için yararlı olan
yerel makinedeki yükün ayarlanması. bu --yerel yuvalar ana bilgisayar, kaç iş olduğunu belirtir
yerel makinede aynı anda çalıştırılabilen uzaktan çalıştırılamazken
--localslots_cpp yerelde kaç tane önişlemcinin paralel olarak çalışacağını kontrol eder.
makine. Bu değerlerin ayarlanması performansı artırabilir. Büyük projelere bağlantı vermek
büyük miktarda bellek. Uzaktan çalıştırılamayan paralel bağlayıcıları çalıştırmak,
makineyi değiştirmeye zorlayabilir, bu da yalnızca işleri yürütmeye göre performansı düşürür.
Değiştirmeden sıralayın. Paralel önişlemcilerin sayısını doğru şekilde alma
yerel makinede artık bazı
yerel kaynak kullanımını ölçmek için mekanizma.

Sonunda ana bilgisayar girişi var

Performans, proje için kullanılan kaynak ve yapım dosyalarının ayrıntılarına bağlıdır ve
makine ve ağ hızları. Ana bilgisayar listesi için farklı ayarlarla denemeler yapmak
ve -j faktör performansı artırabilir.

Sözdizimi

DISTCC_HOSTS = HOSTSPEC ...
HOSTSPEC = LOCAL_HOST | SSH_HOST | TCP_HOST | OLDSTYLE_TCP_HOST
| GLOBAL_OPTION
| SIFIRKONF
LOCAL_HOST = yerel ana bilgisayar[/LIMIT]
| --localslots=
| --localslots_cpp=
SSH_HOST = [KULLANICI]@HOSTID[/LIMIT][:COMMAND][SEÇENEKLER]
TCP_HOST = HOSTID[:PORT][/LIMIT][SEÇENEKLER]
OLDSTYLE_TCP_HOST = HOSTID[/LIMIT][:PORT][SEÇENEKLER]
HOSTID = ANA SAHİBİN ADI | IPV4 | IPV6
SEÇENEKLER = ,SEÇENEK[SEÇENEKLER]
SEÇENEK = lzo | tbp
GLOBAL_OPTION = --rastgele kullan
SIFIRKONF = +sıfırkonf

İşte sözdiziminin bazı bireysel örnekleri:

localhost
Kelimenin tam anlamıyla "localhost" kelimesi, derlemelerin
yerel makinede bir arka plan programına iletilmek yerine doğrudan yürütülür. Yaparsan
test için yerel makinedeki bir arka plan programına bağlanmak istiyorsanız, ardından
makinenin IP adresi veya gerçek ana bilgisayar adı. (Bu daha yavaş olacaktır.)

IPV6 Köşeli parantez içine alınmış bir hazır IPv6 adresi, örneğin: [::1]

IPV4 Gerçek bir IPv4 adresi, örneğin 10.0.0.1

HOST ADI
Çözümleyici kullanılarak aranacak bir ana bilgisayar adı.

:LİMAN Varsayılan 3632 yerine belirli bir ondalık bağlantı noktası numarasına bağlanın.

@HOSTID
Ana bilgisayara TCP yerine SSH üzerinden bağlanın. SSH bağlantısı için seçenekler
ayarlanabilir ~ / .Ssh / yapılandırma

KULLANICI @ Belirtilen kullanıcı adı olarak SSH üzerinden ana bilgisayara bağlanın.

:EMRETMEK
SSH üzerinden bağlanın ve distccd sunucusunu bulmak için belirtilen bir yolu kullanın. Bu
normalde yalnızca herhangi bir nedenle distccd'yi bir dizine yükleyemiyorsanız gereklidir
SSH bağlantıları için varsayılan YOL üzerinde. "distccd:" gibi hatalar alırsanız bunu kullanın.
komut bulunamadı" SSH modunda.

/SINIR sayısını kısıtlamak için herhangi bir ana bilgisayar belirtimine bir ondalık sınır eklenebilir.
bu istemcinin makineye göndereceği işler. Sınır varsayılan olarak dört kişidir.
ana bilgisayar (iki yerel ana bilgisayar için), ancak sunucu tarafından daha fazla kısıtlanabilir. Malısın
bunu yalnızca ikiden fazla işlemciye sahip sunucular için artırmanız gerekir.

lzo Bu TCP veya SSH ana bilgisayarı için LZO sıkıştırmasını etkinleştirir.

,cpp Bu ana bilgisayar için distcc-pump modunu etkinleştirir. Not: build komutu sarılmış olmalıdır
dahil etme sunucusunu başlatmak için distcc-pump komut dosyası.

--rastgele
Yürütmeden önce ana bilgisayar listesinin sırasını rastgele düzenleyin.

+sıfırkonf
Bu seçenek is bir tek mevcut if bölge oldu derlenmiş ile avahi destek etkin at
yapılandırmak Zaman. Bu özel giriş, ana bilgisayar listesinde mevcut olduğunda, distcc
mevcut herhangi bir distccd'yi bulmak için Avahi Zeroconf DNS Hizmet Keşfi'ni (DNS-SD) kullanın
yerel ağdaki sunucular. Bu, ana bilgisayarı açıkça listeleme ihtiyacını ortadan kaldırır
distcc sunucu makinelerinin adları veya IP adresleri. distccd sunucuları olmalıdır
distccd için "--zeroconf" seçeneği ile başlatıldı. Önemli bir uyarı şu ki
mevcut uygulamada, pompa modu (",cpp") ve sıkıştırma (",lzo")
Zeroconf aracılığıyla bulunan ana bilgisayarlar için asla kullanılmamalıdır.

İşte bazı olasılıkları gösteren bir örnek:

yerel ana bilgisayar/2 @bigman/16:/opt/bin/distccd eski makine:4200/1
# Cartman is aşağı
uzak/3,lzo

Ana bilgisayar özelliklerinde yorumlara izin verilir. Yorumlar bir kare/pound işaretiyle başlar (#)
ve satırın sonuna kadar koşun.

Listedeki bir ana bilgisayara ulaşılamıyorsa, distcc bir uyarı verir ve bu ana bilgisayarı yok sayar.
yaklaşık bir dakika.

SIKIŞTIRMA


The Izo ana bilgisayar seçeneği, veri aktarımı için LZO sıkıştırmasının kullanılması gerektiğini belirtir,
önceden işlenmiş kaynak, nesne kodu ve hata mesajları dahil. Sıkıştırma genellikle
100 Mbps'den daha yavaş ağlarda ekonomiktir, ancak sonuçlar ağa bağlı olarak değişebilir,
işlemciler ve kaynak ağacı.

Sıkıştırmayı etkinleştirmek, distcc istemcisinin ve sunucusunun daha fazla CPU zamanı kullanmasını sağlar, ancak daha az
ağ trafiği. Eklenen CPU süresi, pompa modu için önemsizdir. sıkıştırma
oran genellikle kaynak için 4:1 ve nesne kodu için 2:1'dir.

Sıkıştırmanın kullanılması, hem istemcinin hem de sunucunun distcc'nin en az 2.9 sürümünü kullanmasını gerektirir.
Sunucu yapılandırması gerekmez: sunucu her zaman sıkıştırılmış yanıtlarla yanıt verir
sıkıştırılmış istekler

Pompa modu, sunucuların lzo ana bilgisayar seçeneğinin açık olmasını gerektirir.

ARAMA YOLLAR


Derleyici adı mutlak bir yol ise, sunucuya kelimesi kelimesine iletilir ve
derleyici bu dizinden çalıştırılır. Örneğin:

bölge /usr/yerel/bin/gcc-3.1415 -c Merhaba C

Derleyici adı mutlak değilse veya tam olarak nitelenmemişse, distccd'nin PATH'i aranır.
distcc bir maskeli balo dizininden çalıştırıldığında, derleyicinin yalnızca temel adı
Kullanılmış. İstemcinin PATH'i yalnızca önişlemciyi çalıştırmak için kullanılır ve üzerinde hiçbir etkisi yoktur.
sunucunun yolu.

Molalar


Hem distcc istemcisi hem de sunucusu, ağ üzerinden veri aktarımına zaman aşımları uygular.
Bu, kapalı veya erişilemeyen ana bilgisayarları algılamak ve derlemeleri önlemek için tasarlanmıştır.
kullanım sırasında bir sunucunun bağlantısı kesilirse süresiz olarak asılı kalır. İstemci tarafı zaman aşımı olursa
süresi dolarsa, iş yerel olarak yeniden çalıştırılır.

Zaman aşımları şu anda yapılandırılamaz.

TANI


Yerel veya uzak derleyicilerden gelen hata mesajları veya uyarılar, tanılama aşamasına iletilir.
istemcide çıktı.

distcc, ayrıntılı seçenek kullanıldığında kapsamlı hata ayıklama bilgileri sağlayabilir. Bu
tarafından kontrol edilir DISTCC_VERBOSE istemcideki ortam değişkeni ve --ayrıntılı
sunucudaki seçenek. Sorun giderme için hem istemci hem de sunucu hatasını inceleyin
mesajları.

EXIT KODLARI


distcc'nin çıkış kodu normalde derleyicinin kodudur: başarılı derleme için sıfır
ve aksi halde sıfır olmayan.

distcc, kaynaktaki sözdizimi hatası gibi "gerçek" hataları ayırt eder ve
bir gönüllüye bağlanan bir ağ sorunu gibi "kazara" hatalar. durumda
yanlışlıkla yapılan hataların, DISTCC_FALLBACK olmadığı sürece distcc derlemeyi yerel olarak yeniden deneyecektir.
seçeneği devre dışı bırakıldı.

Derleyici bir sinyalle çıkarsa, distcc, 128'lik bir çıkış kodu artı sinyal verir.
numarası.

distcc dahili hataları 100 ile 127 arasında bir çıkış koduna neden olur. Özellikle

100 Genel distcc hatası.

101 Kötü argümanlar.

102 Bağlanamadı.

103 Bağlantı başarısız.

104 Derleyici çöktü.

105 Bellek yetersiz.

106 Kötü Ana Bilgisayar SPEC

107 G/Ç Hatası

108 Kesilmiş.

109 Protokol Hatası.

110 Verilen derleyici uzak ana bilgisayarda bulunamadı. $CC'nin ayarlandığını kontrol edin
uygun şekilde ve arama yolundaki bir dizine yüklenmiş
disccd.

111 Distcc'ye özyinelemeli çağrı.

112 Ayrıcalıklar silinemedi.

113 Ağ erişimi reddedildi.

114 Başka bir işlem tarafından kullanılıyor.

115 Böyle bir dosya yok.

116 Ana bilgisayar tanımlanmadı ve geri dönüşler devre dışı bırakıldı.

118 Zaman aşımı.

onworks.net hizmetlerini kullanarak distcc'yi çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

  • 1
    Firebird
    Firebird
    Firebird RDBMS, ANSI SQL özellikleri sunar
    & Linux, Windows üzerinde çalışır &
    birkaç Unix platformu. Özellikler
    mükemmel eşzamanlılık ve performans
    & güç...
    Firebird'ü indirin
  • 2
    KompoZer
    KompoZer
    KompoZer, aşağıdakileri kullanan bir wysiwyg HTML editörüdür.
    Mozilla Besteci kod tabanı. Olarak
    Nvu'nun gelişimi durduruldu
    2005'te KompoZer birçok hatayı düzeltti ve
    bir f ekler...
    KompoZer'i indirin
  • 3
    Ücretsiz Manga İndiricisi
    Ücretsiz Manga İndiricisi
    Ücretsiz Manga İndiricisi (FMD), bir
    yazılmış açık kaynak uygulama
    Yönetmek için Object-Pascal ve
    çeşitli web sitelerinden manga indirmek.
    Bu bir ayna...
    Ücretsiz Manga İndiriciyi İndirin
  • 4
    UNetbootin
    UNetbootin
    UNetbootin, önyüklenebilir oluşturmanıza olanak tanır
    Ubuntu, Fedora ve için canlı USB sürücüler
    olmayan diğer Linux dağıtımları
    CD yazma. Windows, Linux üzerinde çalışır,
    ve ...
    UNetbootin'i indirin
  • 5
    Dolibar ERP - CRM
    Dolibar ERP - CRM
    Dolibarr ERP - CRM kullanımı kolay
    ERP ve CRM açık kaynak yazılım paketi
    (bir web php sunucusuyla veya
    işletmeler için bağımsız yazılım),
    temeller...
    Dolibarr ERP'yi İndirin - CRM
  • 6
    SQuirreL SQL İstemcisi
    SQuirreL SQL İstemcisi
    SQuirreL SQL Client, grafiksel bir SQL'dir.
    izin verecek Java ile yazılmış istemci
    bir JDBC'nin yapısını görüntülemek için
    uyumlu veritabanı, içindeki verilere göz atın
    masalar...
    SQuirreL SQL İstemcisini İndirin
  • Daha fazla »

Linux komutları

Ad