ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

distcc - ออนไลน์ใน Cloud

เรียกใช้ distcc ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง distcc ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


distcc - คอมไพเลอร์ C/C++/ObjC แบบกระจายพร้อมส่วนขยาย distcc-pump

เรื่องย่อ


discc [คอมไพเลอร์ ตัวเลือก]

discc [คอมไพเลอร์ ตัวเลือก]

[คอมไพเลอร์ ตัวเลือก]

discc [อพปช ตัวเลือก]

DESCRIPTION


distcc แจกจ่ายการคอมไพล์โค้ด C ในหลายเครื่องบนเครือข่าย distcc
ควรให้ผลลัพธ์เหมือนกับการคอมไพล์ในเครื่องเสมอ ติดตั้งง่ายและ
ใช้และมักจะเร็วกว่าการคอมไพล์ในเครื่อง

เวอร์ชันนี้รวม distcc แบบธรรมดาและการเพิ่มประสิทธิภาพที่เรียกว่าโหมดปั๊มหรือ
distcc-ปั๊ม

สำหรับแต่ละงาน distcc ในโหมดธรรมดาจะส่งซอร์สโค้ดที่ประมวลผลล่วงหน้าและ
คอมไพเลอร์อาร์กิวเมนต์ข้ามเครือข่ายจากไคลเอนต์ไปยังเซิร์ฟเวอร์การคอมไพล์ ในปั๊ม
โหมด distcc ส่งซอร์สโค้ดและรวมไฟล์ส่วนหัวแบบเรียกซ้ำ (ไม่รวมเหล่านั้น
จากไดเร็กทอรีส่วนหัวของระบบเริ่มต้น) เพื่อให้ทั้งการประมวลผลล่วงหน้าและการรวบรวม
สามารถเกิดขึ้นได้บนเซิร์ฟเวอร์การคอมไพล์ สิ่งนี้ทำให้การส่งการรวบรวมเร็วขึ้นโดย
จนถึงลำดับความสำคัญเหนือ distcc ธรรมดา

การคอมไพล์ถูกขับเคลื่อนโดยเครื่องไคลเอนต์ ซึ่งโดยทั่วไปคือเวิร์กสเตชันของนักพัฒนา
หรือแล็ปท็อป ไคลเอ็นต์ distcc ทำงานบนเครื่องนี้ เช่นเดียวกับที่ทำ ตัวประมวลผลล่วงหน้า (if
ไม่ใช้โหมดปั๊มของ distcc) ตัวเชื่อมโยง และขั้นตอนอื่นๆ ของกระบวนการบิลด์ ใด ๆ
จำนวนเครื่องอาสาสมัครทำหน้าที่เป็นเซิร์ฟเวอร์การรวบรวมและช่วยลูกค้าในการสร้าง
โปรแกรม โดยเรียกใช้ ดิสซีซีดี(1) daemon, คอมไพเลอร์ C และแอสเซมเบลอร์ตามต้องการ

distcc สามารถทำงานข้ามซ็อกเก็ต TCP (บนพอร์ต 3632 โดยค่าเริ่มต้น) หรือผ่านช่องสัญญาณ
คำสั่งเช่น SSH(1). สำหรับการเชื่อมต่อ TCP อาสาสมัครต้องเรียกใช้ ดิสซีซีดี(1) ภูต
โดยตรงหรือจาก inetd สำหรับการเชื่อมต่อ SSH จะต้องติดตั้ง distccd แต่ควร
ไม่ กำลังฟังสำหรับการเชื่อมต่อ

ควรใช้การเชื่อมต่อ TCP บนเครือข่ายที่ปลอดภัยเท่านั้นเนื่องจากไม่มีผู้ใช้
การรับรองความถูกต้องหรือการป้องกันซอร์สโค้ดหรืออ็อบเจกต์ การเชื่อมต่อ SSH โดยทั่วไปจะอยู่ที่ 25%
ช้าลงเนื่องจากโอเวอร์เฮดของโปรเซสเซอร์ในการเข้ารหัส แม้ว่าจะแตกต่างกันอย่างมาก
ขึ้นอยู่กับซีพียู เครือข่าย และโปรแกรมที่กำลังสร้าง

distcc มีวัตถุประสงค์เพื่อใช้กับ GNU Make's -j ตัวเลือกซึ่งรันคอมไพเลอร์หลายตัว
กระบวนการไปพร้อม ๆ กัน distcc กระจายงานทั่วทั้ง CPU ในพื้นที่และระยะไกล
เนื่องจาก distcc สามารถกระจายงานส่วนใหญ่ผ่านเครือข่ายได้สูงกว่า
ระดับการทำงานพร้อมกันสามารถใช้ได้มากกว่าบิลด์ในเครื่อง ตามหลักการแล้ว -j ความคุ้มค่า
ควรตั้งค่าเป็นสองเท่าของจำนวน CPU ของเซิร์ฟเวอร์ที่มีอยู่ทั้งหมด แต่ขึ้นอยู่กับ
ข้อจำกัดของลูกค้า การตั้งค่านี้ช่วยให้สามารถบล็อกงานที่ถูกบล็อกได้มากที่สุด
กำลังรอดิสก์หรือเครือข่าย IO โปรดทราบว่า distcc สามารถทำงานร่วมกับตัวควบคุมการสร้างอื่นได้
เครื่องมือ เช่น SCons ซึ่งต้องปรับการตั้งค่าการทำงานพร้อมกันที่คล้ายกัน

พื้นที่ -j การตั้งค่า โดยเฉพาะอย่างยิ่งสำหรับค่าขนาดใหญ่ของ -NS, ต้องคำนึงถึงการโหลดซีพียูด้วย
ลูกค้า. อาจจำเป็นต้องใช้มาตรการเพิ่มเติมเพื่อลดการโหลดของไคลเอ็นต์ ตัวอย่างเช่น,
การเชื่อมโยงพร้อมกันควรถูกลดทอนอย่างรุนแรงโดยใช้ตัวล็อคเสริม ผลกระทบของ
กิจกรรมบิลด์อื่นๆ เช่น การคอมไพล์ Java เมื่อสร้างโค้ดผสม ควรเป็น
ที่พิจารณา. ดิ --localslots_cpp พารามิเตอร์ถูกตั้งค่าเป็น 16 โดยค่าเริ่มต้น ซึ่งจะจำกัด
จำนวนกระบวนการที่เกิดขึ้นพร้อมกันที่ทำการประมวลผลล่วงหน้าในโหมด distcc ธรรมดา (ไม่ใช่ปั๊ม)
ดังนั้นใหญ่กว่า -j ค่าที่มากกว่า 16 สามารถใช้โดยไม่ต้องโอเวอร์โหลดไคลเอนต์ซีพียูตัวเดียว
เนื่องจากการประมวลผลล่วงหน้า ค่าขนาดใหญ่ดังกล่าวอาจทำให้ส่วนต่างๆ ของงานสร้างที่ไม่สำเร็จเร็วขึ้น
เกี่ยวข้องกับการรวบรวม C แต่อาจไม่เป็นประโยชน์ต่อประสิทธิภาพของ distcc ในโหมดธรรมดา

ในทางตรงกันข้าม การใช้โหมดปั๊มและพูดว่า 40 เซิร์ฟเวอร์ การตั้งค่าเป็น -j80 หรือใหญ่กว่านั้นอาจจะเป็น
เหมาะสมแม้กระทั่งกับไคลเอนต์ที่มี CPU ตัวเดียว

ขอแนะนำอย่างยิ่งให้คุณติดตั้งคอมไพเลอร์เวอร์ชันเดียวกันบนทุกเครื่อง
มีส่วนร่วมในการสร้าง คอมไพเลอร์ที่เข้ากันไม่ได้อาจทำให้เกิดการคอมไพล์หรือลิงก์ที่ลึกลับ
ความล้มเหลว

เริ่มต้นอย่างรวดเร็ว


1 สำหรับแต่ละเครื่อง ดาวน์โหลด distcc แกะ และติดตั้ง

2 ในแต่ละเซิร์ฟเวอร์ ให้เรียกใช้ ดิสซีซีดี --ภูต กับ --อนุญาต ตัวเลือกที่จะ จำกัด
ทางเข้า

3 ใส่ชื่อของเซิร์ฟเวอร์ในสภาพแวดล้อมของคุณ:
$ export DISTCC_HOSTS='localhost แดง เขียว น้ำเงิน'

4 สร้าง!
$ ทำ -j8 CC=distcc

เริ่มต้นอย่างรวดเร็ว สำหรับ DISTCC-ปั๊ม โหมด


ให้ดำเนินการตามข้างบนนี้ แต่ในขั้นตอนที่ 3 ให้ระบุให้รีโมทโฮสต์รับภาระของ
การประมวลผลล่วงหน้าและไฟล์ที่ส่งผ่านเครือข่ายควรถูกบีบอัด:

$ export DISTCC_HOSTS='--สุ่ม localhost red,cpp,lzo green,cpp,lzo
สีฟ้า,cpp,lzo'

พื้นที่ --สุ่ม ตัวเลือกบังคับใช้การใช้งานคอมไพล์เซิร์ฟเวอร์อย่างสม่ำเสมอ ในขณะที่คุณจะได้รับ
ประโยชน์บางอย่างจากโหมดปั๊มของ distcc ที่มีเซิร์ฟเวอร์เพียงไม่กี่เครื่อง คุณจะได้รับประโยชน์เพิ่มขึ้น
ด้วยซีพียูเซิร์ฟเวอร์มากขึ้น (มากถึงร้อย!) ห่อบิลด์ของคุณไว้ในคำสั่งปั๊ม
ที่นี่สมมติว่ามี 10 เซิร์ฟเวอร์:

$ distcc-ปั๊มทำ -j20 CC=distcc

วิธีการ PLAIN (NON-ปั๊ม) อปท WORKS


distcc เคยรันคอมไพเลอร์และแอสเซมเบลอร์จากระยะไกลเท่านั้น ด้วย distcc ธรรมดา the
ตัวประมวลผลล่วงหน้าต้องรันในเครื่องเสมอเพราะจำเป็นต้องเข้าถึงไฟล์ส่วนหัวต่างๆ on
เครื่องท้องถิ่นที่อาจไม่มีหรืออาจจะไม่เหมือนกันในอาสาสมัคร ดิ
ตัวเชื่อมโยงจำเป็นต้องตรวจสอบไลบรารีและไฟล์อ็อบเจ็กต์ในทำนองเดียวกัน ดังนั้นจึงต้องรันในเครื่อง

คอมไพเลอร์และแอสเซมเบลอร์รับไฟล์อินพุตไฟล์เดียว (ซอร์สที่ประมวลผลล่วงหน้า) และ
สร้างเอาต์พุตเดียว (ไฟล์อ็อบเจ็กต์) distcc ส่งสองไฟล์นี้ข้าม
เครือข่ายและสามารถเรียกใช้คอมไพเลอร์/แอสเซมเบลอร์จากระยะไกลได้

โชคดีสำหรับโปรแกรมส่วนใหญ่ที่รันตัวประมวลผลล่วงหน้านั้นค่อนข้างถูก และ
ตัวเชื่อมโยงเรียกว่าค่อนข้างไม่บ่อยนักดังนั้นงานส่วนใหญ่จึงสามารถแจกจ่ายได้

distcc ตรวจสอบบรรทัดคำสั่งเพื่อกำหนดว่าเฟสใดที่ถูกเรียกใช้และ
ว่าสามารถกระจายงานได้หรือไม่

วิธีการ DISTCC-ปั๊ม โหมด WORKS


ในโหมดปั๊ม distcc จะรันตัวประมวลผลล่วงหน้าจากระยะไกลด้วย ในการทำเช่นนั้น ตัวประมวลผลล่วงหน้าจะต้อง
มีสิทธิ์เข้าถึงไฟล์ทั้งหมดที่จะเข้าถึงได้หากมีการเรียกใช้ในเครื่อง ใน
โหมดปั๊ม ดังนั้น distcc จะรวบรวมส่วนหัวที่รวมแบบเรียกซ้ำทั้งหมด ยกเว้น
ที่เป็นส่วนหัวของระบบเริ่มต้น และส่งพร้อมกับไฟล์ต้นทางไปที่
เซิร์ฟเวอร์การคอมไพล์

ในโหมด distcc-pump เซิร์ฟเวอร์จะคลายชุดของไฟล์ต้นทางทั้งหมดในไฟล์ชั่วคราว
ไดเร็กทอรี ซึ่งมีแผนผังไดเร็กทอรีที่สะท้อนส่วนของระบบไฟล์ที่
เกี่ยวข้องกับการประมวลผลล่วงหน้า รวมถึงลิงก์สัญลักษณ์

จากนั้นคอมไพเลอร์จะทำงานจากพาธในไดเร็กทอรีชั่วคราวที่สอดคล้องกับ
ไดเร็กทอรีการทำงานปัจจุบันบนไคลเอนต์ เพื่อค้นหาและส่งไฟล์หลายร้อยไฟล์
ที่มักเป็นส่วนหนึ่งของการคอมไพล์เดี่ยว โหมดปั๊มใช้ส่วนเพิ่ม
อัลกอริทึมการวิเคราะห์ เซิร์ฟเวอร์รวมเป็นโปรแกรม Python ที่ใช้สิ่งนี้
อัลกอริทึม คำสั่ง distcc-pump เริ่มต้นเซิร์ฟเวอร์รวม ดังนั้นตลอด build
สามารถตอบรวมถึงการสืบค้นด้วยคำสั่ง distcc

เซิร์ฟเวอร์รวมใช้การวิเคราะห์แบบคงที่ของภาษามาโครเพื่อจัดการกับเงื่อนไข
รวบรวมและคำนวณรวมถึง มันใช้คุณสมบัติที่เมื่อไฟล์ส่วนหัวที่กำหนดมี
ได้วิเคราะห์หารวมแล้ว ไม่จำเป็นต้องทำอีกหากรวม
ตัวเลือก (-I's) ไม่เปลี่ยนแปลง (พร้อมกับเงื่อนไขอื่นๆ)

สำหรับบิลด์ขนาดใหญ่ ไฟล์ส่วนหัวจะถูกรวมไว้โดยเฉลี่ยครั้งละหลายร้อยครั้ง กับ
โหมด distcc-pump แต่ละไฟล์ดังกล่าวได้รับการวิเคราะห์ไม่กี่ครั้ง อาจจะเพียงครั้งเดียวแทน
ของการประมวลผลล่วงหน้าหลายร้อยครั้ง นอกจากนี้ ไฟล์ต้นฉบับหรือไฟล์ส่วนหัวแต่ละไฟล์ตอนนี้ยัง
บีบอัดเพียงครั้งเดียว เนื่องจากเซิร์ฟเวอร์รวมจะบันทึกไฟล์ที่บีบอัดไว้ ในฐานะที่เป็น
ส่งผลให้เวลาที่ใช้ในการเตรียมการรวบรวมอาจลดลงได้ถึงลำดับความสำคัญ
เหนือการประมวลผลล่วงหน้าของ distcc ธรรมดา

เนื่องจาก distcc ในโหมดปั๊มสามารถผลักไฟล์ออกได้เร็วกว่าถึงสิบเท่า build
ความเร็วอาจเพิ่มขึ้น 3 เท่าหรือมากกว่าสำหรับบิลด์ขนาดใหญ่เมื่อเทียบกับโหมด distcc ธรรมดา

ข้อ จำกัด สำหรับ PUMP โหมด


การใช้โหมดปั๊มต้องการให้ทั้งไคลเอ็นต์และเซิร์ฟเวอร์ใช้รีลีส 3.0 หรือใหม่กว่าของ distcc และ
distccd (ตามลำดับ)

ส่วนที่เพิ่มขึ้นรวมถึงการวิเคราะห์โหมด distc-pump ขึ้นอยู่กับสมมติฐานพื้นฐาน
ไฟล์ต้นทางและส่วนหัวนั้นจะไม่เปลี่ยนแปลงระหว่างกระบวนการสร้าง โครงสร้างที่ซับซ้อนเล็กน้อย
ระบบเช่นเคอร์เนลลินุกซ์ 2.6 ไม่ค่อยเป็นไปตามข้อกำหนดนี้ ถึง
เอาชนะปัญหาดังกล่าวและกรณีมุมอื่น ๆ เช่นเส้นทางไฟล์ที่แน่นอนในรวมถึงดู
รวม_เซิร์ฟเวอร์(1) หน้าคน.

ข้อสันนิษฐานที่สำคัญอีกประการหนึ่งคือการกำหนดค่ารวมของเครื่องจักรทั้งหมดต้องเป็น
เหมือนกัน ดังนั้นส่วนหัวภายใต้เส้นทางระบบเริ่มต้นจะต้องเหมือนกันบนเซิร์ฟเวอร์ทั้งหมด
และลูกค้าทุกท่าน หากใช้การติดตั้งคอมไพเลอร์ GNU มาตรฐาน ข้อกำหนดนี้
นำไปใช้กับไลบรารีทั้งหมดที่มีการติดตั้งไฟล์ส่วนหัวภายใต้ / usr / รวม or
/usr/local/รวม/. โปรดทราบว่าการติดตั้งแพ็คเกจซอฟต์แวร์มักจะนำไปสู่การเพิ่มเติม
ไฟล์ส่วนหัวถูกวางในไดเร็กทอรีย่อยของอย่างใดอย่างหนึ่ง

หากสมมติฐานนี้ไม่คงอยู่ ก็เป็นไปได้ที่จะทำลายบิลด์ด้วย distcc-pump
โหมดหรือแย่กว่านั้นเพื่อให้ได้ผลลัพธ์ที่ไม่ถูกต้องโดยไม่มีการเตือน ปัจจุบันสภาพนี้ไม่ใช่
ตรวจสอบแล้ว และอยู่ในรายการสิ่งที่ต้องทำของเราเพื่อแก้ไขปัญหานี้

วิธีง่ายๆ ในการรับประกันว่าการกำหนดค่ารวมจะเหมือนกันคือการใช้ข้าม
คอมไพเลอร์ที่กำหนดเส้นทางการค้นหาระบบเริ่มต้นที่จำกัดเฉพาะไดเร็กทอรีของ
การติดตั้งคอมไพเลอร์

ดู รวม_เซิร์ฟเวอร์(1) คู่มือข้อมูลเพิ่มเติมเกี่ยวกับอาการและสาเหตุของการละเมิด
ของสมมติฐานโหมด distcc-pump

ทางเลือกที่ สรุป


ตัวเลือกส่วนใหญ่ที่ส่งผ่านไปยัง distcc จะถูกตีความว่าเป็นตัวเลือกของคอมไพเลอร์ ตัวเลือกต่อไปนี้
เป็นที่เข้าใจโดย distcc เอง หากระบุตัวเลือกใด ๆ เหล่านี้ distcc จะไม่
เรียกใช้คอมไพเลอร์

--ช่วยด้วย แสดงคำแนะนำโดยสรุป

--รุ่น
แสดงเวอร์ชันไคลเอ็นต์ distcc

--พิธีกรรายการ
แสดงรายการโฮสต์ที่ distcc จะใช้ ดูส่วนข้อมูลจำเพาะของโฮสต์

--สแกน-รวม
แสดงรายการไฟล์ที่ distcc จะส่งไปยังเครื่องระยะไกลเช่น
คำนวณโดยเซิร์ฟเวอร์รวม นี่คือการประมาณแบบอนุรักษ์นิยม (เกิน) ของ
ไฟล์ที่จะอ่านโดยคอมไพเลอร์ C ตัวเลือกนี้ใช้ได้เฉพาะในโหมดปั๊มเท่านั้น
ดูส่วน "โหมด Distcc-pump ทำงานอย่างไร" สำหรับรายละเอียดเกี่ยวกับวิธีการคำนวณ

รายการผลลัพธ์โดย discc --สแกน-รวม จะมีหนึ่งรายการต่อบรรทัด แต่ละ
บรรทัดมีหมวดหมู่ตามด้วยเส้นทาง หมวดหมู่เป็นหนึ่งใน FILE, SYMLINK,
ไดเรกทอรีหรือ SYSTEMDIR:

ไฟล์ ระบุไฟล์ต้นทางหรือไฟล์ส่วนหัวที่จะส่งไปยังเซิร์ฟเวอร์ distcc
เจ้าภาพ

ซิมลิงก์ ระบุลิงก์สัญลักษณ์ที่จะส่งไปยังโฮสต์เซิร์ฟเวอร์ distcc

DIRECTORY ระบุไดเร็กทอรีที่อาจจำเป็นในการคอมไพล์ซอร์ส
ไฟล์. ตัวอย่างเช่น อาจจำเป็นต้องมีไดเร็กทอรี "foo" เนื่องจากมี
แบบฟอร์ม #include "foo/../bar.h". ไดเร็กทอรีดังกล่าวจะถูกสร้างขึ้นในdistcc
โฮสต์เซิร์ฟเวอร์

ระบบ บ่งชี้ว่าระบบรวมถึงไดเร็กทอรี เช่น ไดเร็กทอรีที่อยู่บน
คอมไพเลอร์เริ่มต้นรวมถึงเส้นทางเช่น "/ usr / รวม"; ไดเร็กทอรีดังกล่าวคือ
ถือว่ามีอยู่บนโฮสต์เซิร์ฟเวอร์ distcc และจะไม่ถูกส่งไปยัง
โฮสต์เซิร์ฟเวอร์ distcc

-j แสดงระดับการทำงานพร้อมกันของ distcc ตามที่คำนวณจากรายการโฮสต์ มันคือ
จำนวนงานคงค้างสูงสุดที่ลูกค้ารายนี้ออกให้กับเซิร์ฟเวอร์ทั้งหมด โดย
ค่าเริ่มต้นจะเป็นสี่เท่าของจำนวนโฮสต์ในรายการโฮสต์ เว้นแต่
/LIMIT ใช้ตัวเลือกในรายการโฮสต์ ดูส่วนข้อมูลจำเพาะของโฮสต์

กำลังติดตั้ง อปท


มีสามวิธีในการเรียก distcc เพื่อให้เหมาะกับสถานการณ์ที่แตกต่างกัน:

distcc สามารถติดตั้งได้ภายใต้ชื่อคอมไพเลอร์จริงเพื่อสกัดกั้นการโทรไปยัง
และเรียกใช้จากระยะไกล คอมไพเลอร์ "สวมหน้ากาก" นี้มีความเข้ากันได้มากที่สุด
ด้วยต้นไม้ต้นทางที่มีอยู่ และสะดวกเมื่อคุณต้องการใช้ distcc สำหรับทุกคน
การรวบรวม การใช้ distcc นั้นโปร่งใสต่อ makefiles

distcc สามารถต่อท้ายบรรทัดคำสั่งของคอมไพเลอร์ได้ เช่น "distcc cc -c hello.c"
หรือ CC="distcc gcc" สะดวกเมื่อคุณต้องการใช้ distcc สำหรับบางคนเท่านั้น
คอมไพล์หรือลองใช้งาน แต่อาจทำให้เกิดปัญหากับ makefiles หรือ
libtool เวอร์ชันที่ถือว่า $CC ไม่มีช่องว่าง

สุดท้าย distcc สามารถใช้เป็นคอมไพเลอร์ได้โดยตรง "cc" จะใช้เป็น the . เสมอ
ชื่อของคอมไพเลอร์จริงในโหมด "โดยนัย" นี้ สะดวกสำหรับ
การใช้งานแบบโต้ตอบเมื่อโหมด "โจ่งแจ้ง" ไม่ทำงาน แต่ไม่แนะนำจริงๆ
สำหรับการใช้งานใหม่

จำไว้ว่าคุณไม่ควรใช้สองวิธีในการเรียก distcc พร้อมกัน ถ้าคุณ
กำลังใช้ไดเรกทอรีปลอม อย่าเปลี่ยน CC และ/หรือ CXX เพียงแค่ใส่ไดเรกทอรีไว้ล่วงหน้า
บนเส้นทางของคุณ หากคุณไม่ได้ใช้ไดเรกทอรีปลอม คุณจะต้องเปลี่ยน CC
และ/หรือ CXX หรือแก้ไข makefile เพื่อเรียก distcc อย่างชัดเจน

สวมหน้ากาก


แนวคิดพื้นฐานคือการสร้าง "ไดเรกทอรีปลอม" ซึ่งมีลิงก์จากชื่อ
คอมไพเลอร์ตัวจริงของไบนารี distcc ไดเร็กทอรีนี้ถูกแทรกไว้ในช่วงต้นของ PATH ดังนั้น
ที่เรียกไปยังคอมไพเลอร์จะถูกดักจับและเรียกใช้ distcc แทน distcc แล้วลบ
ตัวเองจาก PATH เพื่อค้นหาคอมไพเลอร์ตัวจริง

ตัวอย่างเช่น:

# mkdir /usr/lib/distcc/bin
# ซีดี /usr/lib/distcc/bin
# ln -s ../../../bin/distcc gcc
# ln -s ../../../bin/distcc ซีซี
# ln -s ../../../bin/distcc g++
# ln -s ../../../bin/distcc c++

จากนั้น เพื่อใช้ distcc ผู้ใช้เพียงแค่ต้องใส่ไดเร็กทอรี /usr/lib/distcc/bin ไว้ล่วงหน้า
PATH และได้ตั้งค่ารายการโฮสต์ใน DISTCC_HOSTS หรือไฟล์ distcc จะจัดการ
พักผ่อน.

โปรดทราบว่าไดเรกทอรี masquerade นี้ต้องเกิดขึ้นบน PATH ก่อนไดเรกทอรีที่
มีคอมไพเลอร์จริงที่มีชื่อเดียวกันและโปรแกรมเสริมใด ๆ ที่
คอมไพเลอร์เหล่านี้เรียก (เช่นหรือ ld) จะต้องพบบน PATH ในไดเร็กทอรี
หลังจากไดเร็กทอรี masquerade เนื่องจาก distcc เรียกคอมไพเลอร์จริงด้วย PATH
ค่าที่มีไดเร็กทอรีทั้งหมดและรวมถึงไดเร็กทอรี masquerade ที่ถูกตัดออก

เป็นไปได้ที่จะได้รับ "ข้อผิดพลาดการเรียกซ้ำ" ในโหมดสวมหน้ากาก ซึ่งหมายความว่า distcc is
ค้นหาตัวเองอีกครั้งไม่ใช่คอมไพเลอร์ตัวจริง นี่สามารถบ่งบอกได้ว่าคุณมีสอง
ไดเรกทอรีปลอมบน PATH อาจเป็นเพราะมีการติดตั้ง distcc สองรายการใน
สถานที่ต่างๆ นอกจากนี้ยังสามารถบ่งบอกว่าคุณกำลังพยายามผสม "สวมหน้ากาก" กับ
การดำเนินการ "ชัดเจน"

สามารถหลีกเลี่ยงข้อผิดพลาดการเรียกซ้ำได้โดยใช้เชลล์สคริปต์แทนลิงก์ ตัวอย่างเช่น ใน
/usr/lib/distcc/bin สร้างไฟล์ cc ซึ่งมี:

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

ด้วยวิธีนี้ เราจึงไม่ต้องอาศัย distcc ที่ต้องค้นหา gcc จริงโดยการตรวจสอบ
ตัวแปร PATH แทนที่จะระบุตำแหน่งของคอมไพเลอร์ไว้อย่างชัดเจน

ใช้ อปท กับ ซีแคช


ccache เป็นโปรแกรมที่เร่งความเร็วให้ซอฟต์แวร์สร้างโดยการแคชผลลัพธ์ของการรวบรวม
โดยปกติ ccache จะถูกเรียกก่อน distcc ดังนั้นผลลัพธ์จึงถูกดึงมาจากค่าปกติ
แคช อาจจำเป็นต้องมีการทดลองบางอย่างสำหรับ makefiles ที่แปลกประหลาดเพื่อสร้าง
ทุกอย่างทำงานร่วมกัน

วิธีที่เชื่อถือได้มากที่สุดคือการตั้งค่า

CCACHE_PREFIX="distcc"

สิ่งนี้บอกให้ ccache รัน distcc เป็น wrapper รอบ ๆ คอมไพเลอร์จริง ccache ยังคงใช้
คอมไพเลอร์ตัวจริงเพื่อตรวจจับการอัพเกรดคอมไพเลอร์

ccache สามารถเรียกใช้ได้โดยใช้ไดเร็กทอรี masquerade or โดยการตั้งค่า

CC="ccache จีซีซี"

ในเวอร์ชัน 2.2 ccache จะไม่แคชการรวบรวมจากแหล่งที่ประมวลผลล่วงหน้า ดังนั้น will
ไม่เคยได้รับแคชหากเรียกใช้จาก distccd หรือ distcc ต้องรันบน .เท่านั้น
ฝั่งไคลเอ็นต์และก่อน distcc จะใช้งานใดๆ

โหมดปั๊มของ distcc เข้ากันไม่ได้กับ ccache

HOST ข้อมูลจำเพาะ


"รายการโฮสต์" บอก distcc ว่าเครื่องใดที่จะใช้สำหรับการรวบรวม ตามลำดับ distcc ดู
ใน $DISTCC_HOSTS ตัวแปรสภาพแวดล้อมของผู้ใช้ $DISTCC_DIR/โฮสต์ ไฟล์และ
ไฟล์โฮสต์ทั้งระบบ หากไม่พบรายการโฮสต์ distcc จะส่งคำเตือนและคอมไพล์
ในท้องถิ่น

รายการโฮสต์เป็นรายการข้อกำหนดโฮสต์ที่คั่นด้วยช่องว่างอย่างง่าย ง่ายที่สุด
และรูปแบบที่พบบ่อยที่สุดคือชื่อโฮสต์เช่น

localhost สีแดง สีเขียว สีน้ำเงิน

distcc ชอบโฮสต์ที่จุดเริ่มต้นของรายการ ดังนั้นเครื่องควรอยู่ใน
ลำดับของความเร็วจากมากไปน้อย โดยเฉพาะอย่างยิ่ง เมื่อสามารถรันการคอมไพล์เพียงครั้งเดียวได้ (เช่น
จากสคริปต์กำหนดค่า) เครื่องแรกที่แสดงรายการจะถูกใช้ (แต่ดู --สุ่ม ด้านล่าง)

การวาง localhost ที่จุดที่เหมาะสมในรายการเป็นสิ่งสำคัญเพื่อให้ได้ผลงานที่ดี
เนื่องจากโอเวอร์เฮดสำหรับงานรันในเครื่องนั้นต่ำ โดยปกติ localhost ควรเป็นอันดับแรก
อย่างไรก็ตาม สิ่งสำคัญคือลูกค้าต้องมีรอบการทำงานฟรีเพียงพอเพื่อเรียกใช้งานในพื้นที่และ
ไคลเอ็นต์ distcc ถ้าลูกค้ามาช้ากว่าอาสาสมัครหรือถ้ามีจำนวนมาก
อาสาสมัครแล้วลูกค้าควรจะใส่ในรายการหรือไม่ก็ได้ เป็นนายพล
กฎ ถ้าความเร็ว CPU รวมของไคลเอนต์น้อยกว่าหนึ่งในห้าของทั้งหมด แล้ว
ลูกค้าควรออกจากรายการ

หากคุณมีคลัสเตอร์บิลด์ที่ใช้ร่วมกันขนาดใหญ่และไฟล์โฮสต์ที่ใช้ร่วมกันเพียงไฟล์เดียว กฎข้างต้น
จะทำให้เครื่องสองสามเครื่องแรกในไฟล์โฮสต์ถูกลองก่อนแม้ว่าพวกเขาจะ
มีแนวโน้มว่าจะยุ่งกว่าเครื่องในภายหลังในรายการ เพื่อหลีกเลี่ยงปัญหานี้ ให้วางคีย์เวิร์ด
--สุ่ม ลงในรายการโฮสต์ ซึ่งจะทำให้รายการโฮสต์ถูกสุ่มซึ่ง
ควรปรับปรุงประสิทธิภาพเล็กน้อยสำหรับคลัสเตอร์บิลด์ขนาดใหญ่

มีชื่อโฮสต์พิเศษสองชื่อ --localslots และ --localslots_cpp ซึ่งมีประโยชน์สำหรับ
ปรับโหลดบนเครื่องท้องถิ่น ดิ --localslots โฮสต์ระบุจำนวนงานที่
ไม่สามารถเรียกใช้จากระยะไกลที่สามารถเรียกใช้พร้อมกันบนเครื่องท้องถิ่นในขณะที่
--localslots_cpp ควบคุมจำนวนตัวประมวลผลล่วงหน้าที่จะทำงานแบบขนานบน local
เครื่องจักร. การปรับค่าเหล่านี้สามารถปรับปรุงประสิทธิภาพได้ การเชื่อมโยงในโครงการขนาดใหญ่สามารถทำได้
หน่วยความจำจำนวนมาก การรันตัวเชื่อมโยงแบบขนานซึ่งไม่สามารถดำเนินการได้จากระยะไกล
อาจบังคับให้เครื่องเปลี่ยนซึ่งลดประสิทธิภาพการทำงานเพียงแค่เรียกใช้งานใน
ลำดับโดยไม่ต้องสลับ รับจำนวนของตัวประมวลผลล่วงหน้าแบบขนานที่ถูกต้อง
อนุญาตให้คุณใช้ปัจจัยคู่ขนานที่ใหญ่กว่ากับยี่ห้อ เนื่องจากตอนนี้เครื่องในเครื่องมีบางส่วน
กลไกการวัดการใช้ทรัพยากรในท้องถิ่น

ในที่สุดก็มีรายการโฮสต์

ประสิทธิภาพขึ้นอยู่กับรายละเอียดของแหล่งที่มาและ makefiles ที่ใช้สำหรับโครงการและ
ความเร็วเครื่องและเครือข่าย ทดลองกับการตั้งค่าต่างๆ สำหรับรายการโฮสต์
และ -j ปัจจัยอาจปรับปรุงประสิทธิภาพ

ไวยากรณ์คือ

DISTCC_HOSTS = โฮสต์สเปก ...
HOSTSPEC = LOCAL_HOST | SSH_HOST | TCP_HOST | OLDSTYLE_TCP_HOST
- GLOBAL_OPTION
| ซีโรคอนฟ
LOCAL_HOST = โฮสต์ท้องถิ่น[/LIMIT]
| --localslots=
| --localslots_cpp=
SSH_HOST = [ผู้ใช้]@HOSTID[/LIMIT][:COMMAND][OPTIONS]
TCP_HOST = โฮสต์[:พอร์ต][/จำกัด] [ตัวเลือก]
OLDSTYLE_TCP_HOST = โฮสต์[/LIMIT][:PORT][OPTIONS]
HOSTID = ชื่อโฮสต์ | IPV4 | IPV6
ตัวเลือก = ,ตัวเลือก[ตัวเลือก]
ตัวเลือก = lzo | cpp
GLOBAL_OPTION = --สุ่ม
ZEROCONF = +ศูนย์คอนฟ

ต่อไปนี้คือตัวอย่างบางส่วนของไวยากรณ์:

localhost
คำตามตัวอักษร "localhost" ถูกตีความเป็นพิเศษเพื่อทำให้การคอมไพล์เป็น
ดำเนินการโดยตรง แทนที่จะส่งผ่านไปยัง daemon บนเครื่องโลคัล ถ้าคุณทำ
ต้องการเชื่อมต่อกับ daemon บนเครื่องท้องถิ่นเพื่อทำการทดสอบ จากนั้นให้
ที่อยู่ IP ของเครื่องหรือชื่อโฮสต์จริง (อันนี้จะช้ากว่า)

IPV6 ที่อยู่ IPv6 ตามตัวอักษรที่อยู่ในวงเล็บเหลี่ยม เช่น [::1]

IPV4 ที่อยู่ IPv4 ตามตัวอักษร เช่น 10.0.0.1

ชื่อโฮสต์
ชื่อโฮสต์ที่จะค้นหาโดยใช้ตัวแก้ไข

:ท่า เชื่อมต่อกับหมายเลขพอร์ตทศนิยมที่ระบุ แทนที่จะเป็นค่าเริ่มต้น 3632

@โฮสต์ิด
เชื่อมต่อกับโฮสต์ผ่าน SSH แทนที่จะเป็น TCP ตัวเลือกสำหรับการเชื่อมต่อ SSH สามารถ
อยู่ใน ~ / .ssh / config

ผู้ใช้@ เชื่อมต่อกับโฮสต์ผ่าน SSH เป็นชื่อผู้ใช้ที่ระบุ

:สั่งการ
เชื่อมต่อผ่าน SSH และใช้เส้นทางที่ระบุเพื่อค้นหาเซิร์ฟเวอร์ distccd นี่คือ
โดยปกติจำเป็นเฉพาะในกรณีที่คุณไม่สามารถติดตั้ง distccd ลงในไดเร็กทอรีได้ด้วยเหตุผลบางอย่าง
บนเส้นทางเริ่มต้นสำหรับการเชื่อมต่อ SSH ใช้สิ่งนี้หากคุณได้รับข้อผิดพลาดเช่น "distccd:
ไม่พบคำสั่ง" ในโหมด SSH

/จำกัด คุณสามารถเพิ่มขีด จำกัด ทศนิยมในข้อกำหนดโฮสต์ใด ๆ เพื่อจำกัดจำนวน
งานที่ลูกค้ารายนี้จะส่งเข้าเครื่อง ขีดจำกัดเริ่มต้นเป็นสี่ต่อ
โฮสต์ (สองโฮสต์สำหรับ localhost) แต่อาจถูกจำกัดเพิ่มเติมโดยเซิร์ฟเวอร์ คุณควร
จำเป็นต้องเพิ่มสิ่งนี้สำหรับเซิร์ฟเวอร์ที่มีโปรเซสเซอร์มากกว่าสองตัวเท่านั้น

,lzo เปิดใช้งานการบีบอัด LZO สำหรับโฮสต์ TCP หรือ SSH นี้

,ซี.พี เปิดใช้งานโหมด distcc-pump สำหรับโฮสต์นี้ หมายเหตุ: ต้องรวมคำสั่ง build ไว้ใน
สคริปต์ distcc-pump เพื่อเริ่มต้นเซิร์ฟเวอร์รวม

--สุ่ม
สุ่มลำดับของรายการโฮสต์ก่อนดำเนินการ

+ค่าศูนย์
ตัวเลือก is เพียง ใช้ได้ if discc คือ รวบรวม กับ อาวาฮี สนับสนุน เปิดการใช้งาน at
กำหนดค่า เวลา เมื่อรายการพิเศษนี้มีอยู่ในรายการโฮสต์ distcc will
ใช้ Avahi Zeroconf DNS Service Discovery (DNS-SD) เพื่อค้นหา distccd . ที่มีอยู่
เซิร์ฟเวอร์บนเครือข่ายท้องถิ่น เพื่อหลีกเลี่ยงความจำเป็นในการแสดงรายการ host . อย่างชัดเจน
ชื่อหรือที่อยู่ IP ของเครื่องเซิร์ฟเวอร์ distcc เซิร์ฟเวอร์ discccd ต้องมี
เริ่มต้นด้วยตัวเลือก "--zeroconf" เพื่อ distccd คำเตือนที่สำคัญคือ
ในการใช้งานปัจจุบัน โหมดปั๊ม (",cpp") และการบีบอัด (",lzo") จะ
ไม่เคยถูกใช้สำหรับโฮสต์ที่อยู่ผ่าน zeroconf

นี่คือตัวอย่างที่แสดงให้เห็นถึงความเป็นไปได้บางประการ:

โลคอลโฮสต์/2 @bigman/16:/opt/bin/distccd เครื่องเก่า:4200/1
# คาร์ทแมน is ลง
ห่างไกล/3,lzo

อนุญาตให้แสดงความคิดเห็นในข้อกำหนดของโฮสต์ ความคิดเห็นเริ่มต้นด้วยเครื่องหมายแฮช/ปอนด์ (#)
และวิ่งไปจนสุดสาย

หากโฮสต์ในรายการไม่สามารถเข้าถึงได้ distcc จะส่งคำเตือนและละเว้นโฮสต์นั้นสำหรับ
ประมาณหนึ่งนาที

อัด


พื้นที่ ลโซ ตัวเลือกโฮสต์ระบุว่าควรใช้การบีบอัด LZO สำหรับการถ่ายโอนข้อมูล
รวมถึงซอร์สโค้ดที่ประมวลผลล่วงหน้า โค้ดอ็อบเจ็กต์ และข้อความแสดงข้อผิดพลาด การบีบอัดมักจะ
ประหยัดบนเครือข่ายที่ช้ากว่า 100Mbps แต่ผลลัพธ์อาจแตกต่างกันไปตามเครือข่าย
โปรเซสเซอร์และแผนผังต้นทาง

การเปิดใช้งานการบีบอัดทำให้ไคลเอ็นต์ distcc และเซิร์ฟเวอร์ใช้เวลา CPU มากขึ้น แต่น้อยลง
ปริมาณการใช้เครือข่าย เวลา CPU ที่เพิ่มนั้นไม่มีนัยสำคัญสำหรับโหมดปั๊ม การบีบอัด
อัตราส่วนโดยทั่วไปคือ 4: 1 สำหรับแหล่งที่มาและ 2: 1 สำหรับรหัสวัตถุ

การใช้การบีบอัดต้องการให้ทั้งไคลเอ็นต์และเซิร์ฟเวอร์ใช้ distcc เวอร์ชัน 2.9 เป็นอย่างน้อย
ไม่จำเป็นต้องมีการกำหนดค่าเซิร์ฟเวอร์: เซิร์ฟเวอร์จะตอบกลับด้วยการตอบกลับที่บีบอัดเสมอ
คำขอบีบอัด

โหมดปั๊มต้องการให้เซิร์ฟเวอร์เปิดตัวเลือกโฮสต์ lzo

SEARCH เส้นทาง


ถ้าชื่อคอมไพเลอร์เป็นพาธสัมบูรณ์ มันจะถูกส่งต่อแบบคำต่อคำไปยังเซิร์ฟเวอร์และ
คอมไพเลอร์ถูกเรียกใช้จากไดเร็กทอรีนั้น ตัวอย่างเช่น:

discc /usr/local/bin/gcc-3.1415 -c สวัสดีซี

ถ้าชื่อคอมไพเลอร์ไม่สมบูรณ์ หรือไม่ผ่านการรับรองโดยสมบูรณ์ PATH ของ distccd จะถูกค้นหา
เมื่อเรียกใช้ distcc จากไดเร็กทอรี masquerade เฉพาะชื่อฐานของคอมไพเลอร์คือ
ใช้แล้ว. PATH ของลูกค้าใช้เพื่อเรียกใช้ตัวประมวลผลล่วงหน้าเท่านั้น และไม่มีผลกับ
เส้นทางของเซิร์ฟเวอร์

หมดเวลา


ทั้งไคลเอ็นต์ distcc และเซิร์ฟเวอร์กำหนดระยะหมดเวลาในการถ่ายโอนข้อมูลผ่านเครือข่าย
มีจุดประสงค์เพื่อตรวจหาโฮสต์ที่หยุดทำงานหรือไม่สามารถเข้าถึงได้ และเพื่อป้องกันการคอมไพล์
หยุดทำงานไม่มีกำหนดหากเซิร์ฟเวอร์ถูกตัดการเชื่อมต่อขณะใช้งาน หากหมดเวลาฝั่งไคลเอ็นต์
หมดอายุ งานจะถูกเรียกใช้ใหม่ในพื้นที่

ปัจจุบันไม่สามารถกำหนดค่าระยะหมดเวลาได้

วินิจฉัย


ข้อความแสดงข้อผิดพลาดหรือคำเตือนจากคอมไพเลอร์โลคัลหรือรีโมตจะถูกส่งผ่านไปยังการวินิจฉัย
เอาต์พุตบนไคลเอนต์

distcc สามารถให้ข้อมูลการดีบักอย่างกว้างขวางเมื่อใช้ตัวเลือก verbose นี้
ถูกควบคุมโดย DISTCC_VERBOSE ตัวแปรสภาพแวดล้อมบนไคลเอนต์และ --รายละเอียด
ตัวเลือกบนเซิร์ฟเวอร์ สำหรับการแก้ไขปัญหา ตรวจสอบข้อผิดพลาดทั้งไคลเอนต์และเซิร์ฟเวอร์
ข้อความ

EXIT รหัส


รหัสออกของ distcc เป็นปกติของคอมไพเลอร์: ศูนย์สำหรับการรวบรวมที่สำเร็จ
และไม่เป็นศูนย์เป็นอย่างอื่น

distcc แยกแยะระหว่างข้อผิดพลาด "ของแท้" เช่นข้อผิดพลาดทางไวยากรณ์ในแหล่งที่มาและ
ข้อผิดพลาด "โดยบังเอิญ" เช่น ปัญหาเครือข่ายในการเชื่อมต่อกับอาสาสมัคร ในกรณี
ของข้อผิดพลาดโดยไม่ตั้งใจ distcc จะลองรวบรวมอีกครั้งในเครื่อง ยกเว้น DISTCC_FALLBACK
ตัวเลือกถูกปิดใช้งาน

หากคอมไพเลอร์ออกด้วยสัญญาณ distcc จะส่งกลับรหัสทางออก 128 บวกกับสัญญาณ
จำนวน.

ข้อผิดพลาดภายใน distcc ทำให้เกิดรหัสออกระหว่าง 100 ถึง 127 โดยเฉพาะ

100 ความล้มเหลวของ disccc ทั่วไป

101 ข้อโต้แย้งที่ไม่ดี

102 การผูกล้มเหลว

103 การเชื่อมต่อล้มเหลว

104 คอมไพเลอร์ขัดข้อง

105 ความจำไม่เต็ม

106 โฮสต์ไม่ดี SPEC

107 ข้อผิดพลาด I/O

108 ถูกตัดทอน

109 ข้อผิดพลาดของโปรโตคอล

110 ไม่พบคอมไพเลอร์ที่ระบุบนรีโมตโฮสต์ ตรวจสอบว่ามีการตั้งค่า $CC ไว้
อย่างเหมาะสมและติดตั้งในไดเร็กทอรีบนเส้นทางการค้นหาสำหรับ
ดิสซีซีดี

111 เรียกซ้ำไปยัง distcc.

112 ล้มเหลวในการยกเลิกสิทธิ์

113 การเข้าถึงเครือข่ายถูกปฏิเสธ

114 ถูกใช้โดยกระบวนการอื่น

115 ไม่มีไฟล์ดังกล่าว

116 ไม่มีการกำหนดโฮสต์และปิดใช้งานทางเลือก

118 หมดเวลา

ใช้ distcc ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    Firebird
    Firebird
    Firebird RDBMS นำเสนอคุณสมบัติ ANSI SQL
    & ทำงานบน Linux, Windows &
    หลายแพลตฟอร์ม Unix คุณสมบัติ
    การทำงานพร้อมกันและประสิทธิภาพที่ยอดเยี่ยม
    & พลัง...
    ดาวน์โหลด Firebird
  • 2
    Kompozer
    Kompozer
    KompoZer เป็นโปรแกรมแก้ไข HTML wysiwyg โดยใช้
    ฐานโค้ด Mozilla Composer เนื่องจาก
    การพัฒนาของ Nvu ถูกหยุดลง
    ในปี 2005 KompoZer แก้ไขข้อบกพร่องมากมายและ
    เพิ่มเ...
    ดาวน์โหลดโปรแกรม KompoZer
  • 3
    ดาวน์โหลดมังงะฟรี
    ดาวน์โหลดมังงะฟรี
    The Free Manga Downloader (FMD) เป็น
    แอปพลิเคชันโอเพ่นซอร์สที่เขียนใน
    Object-Pascal สำหรับการจัดการและ
    ดาวน์โหลดมังงะจากเว็บไซต์ต่างๆ
    นี่คือกระจก...
    ดาวน์โหลด Manga Downloader ฟรี
  • 4
    Aetbootin
    Aetbootin
    UNetbootin ช่วยให้คุณสร้างบูตได้
    ไดรฟ์ USB สดสำหรับ Ubuntu, Fedora และ
    การกระจาย Linux อื่น ๆ ที่ไม่มี
    เขียนซีดี มันทำงานบน Windows, Linux,
    และ ...
    ดาวน์โหลด UNetbootin
  • 5
    โดลิบาร์ ERP - CRM
    โดลิบาร์ ERP - CRM
    Dolibarr ERP - CRM ใช้งานง่าย
    แพ็คเกจซอฟต์แวร์โอเพ่นซอร์ส ERP และ CRM
    (รันด้วยเว็บเซิร์ฟเวอร์ php หรือ as
    ซอฟต์แวร์แบบสแตนด์อโลน) สำหรับธุรกิจ
    ฐานราก...
    ดาวน์โหลด Dolibarr ERP - CRM
  • 6
    ไคลเอนต์ sqirreL SQL
    ไคลเอนต์ sqirreL SQL
    SQuirreL SQL Client คือ SQL . แบบกราฟิก
    ไคลเอนต์ที่เขียนด้วย Java ที่จะอนุญาต
    ให้คุณดูโครงสร้างของ JDBC
    ฐานข้อมูลที่สอดคล้อง เรียกดูข้อมูลใน
    โต๊ะ...
    ดาวน์โหลดไคลเอนต์ sqirreL SQL
  • เพิ่มเติม»

คำสั่ง Linux

Ad