ส้อมทรัพยากร OS X เป็นกระแสข้อมูลสำรองที่แนบกับไฟล์ปกติ พวกเขาอาจมีไอคอนที่กำหนดเองของไฟล์, ฉลากสี, คำหลักหรือข้อมูลเมตาอื่น ๆ ที่กำหนดโดยผู้ใช้หรือโดยการใช้งาน
สนับสนุนโดยระบบไฟล์ HFS + ของ OS X แต่เมื่อใดก็ตามที่ OS X เมานต์ระบบไฟล์อื่นไม่ว่าจะเป็น local (FAT32) หรือ remote (NFS, SMB) พวกเขาจะถูกเก็บไว้ในไฟล์ที่เรียกว่า "dotbar": ตัวแยกทรัพยากรสำหรับไฟล์ปกติname.ext
คือ ._name.ext
เก็บไว้ในไฟล์อื่นปกติ (ต้องไม่สับสนกับ.DS_Store
ไฟล์ที่จัดเก็บการตั้งค่ามุมมองของไดเรกทอรีเช่นไอคอนเทียบกับมุมมองคอลัมน์หรือตำแหน่งของหน้าต่าง)
ปัญหาของ._
ไฟล์ดอทบาร์คือพวกเขาเป็นไฟล์ปกติจริง ๆ ในระบบไฟล์เป้าหมายที่มีนามสกุลเดียวกับไฟล์ต้นฉบับดังนั้นจึงสร้างความเสียหายได้หลายวิธี ตัวอย่างเช่น Ant และ Maven จะเห็น._MyClass.java
ว่าเป็นไฟล์ Java อื่นที่จะรวบรวม
ผมเห็นว่าOS X สามารถกำหนดค่าให้ส้อมทรัพยากรเก็บในลำธาร SMB ชื่อและที่แซมบ้าสามารถกำหนดค่าให้เก็บชื่อลำธารใน POSIX คุณลักษณะเพิ่มเติมหรือหรือในไดเรกทอรีสถานีที่อื่น
วิธีแก้ปัญหาทั้งสองจะแก้ปัญหาไฟล์ดอทบาร์ที่ทำให้ระบบไฟล์เป้าหมายสกปรก แต่ฉันก็ไม่สามารถทำงานได้
Xattr
ก่อนอื่นฉันลองใช้ xattr:
vfs objects = streams_xattr
kernel oplocks = no
ตัวเลือกหลังเกิดจากข้อผิดพลาดนี้ ฉันบอกให้ OS X ใช้งานโดยทำสิ่งนี้ในรูทของการแชร์ก่อนทำการติดตั้ง:
touch .com.apple.smb.streams.on
แต่เมื่อฉันพยายามคัดลอกไฟล์ทับด้วย Finder ฉันได้รับข้อผิดพลาดนี้:
เครื่องมือค้นหาไม่สามารถดำเนินการให้เสร็จสมบูรณ์ได้เนื่องจากข้อมูลบางอย่างใน“ hello.java” ไม่สามารถอ่านหรือเขียนได้
(รหัสข้อผิดพลาด -36)
สถานีรถไฟ
จากนั้นฉันลองด้วยที่เก็บ:
vfs objects = streams_depot
ทิ้งไว้.com.apple.smb.streams.on
ในรากของการแบ่งปัน พยายามคัดลอกไฟล์เดียวกันกับ Finder ฉันพบข้อผิดพลาดอื่น:
ไม่สามารถดำเนินการให้เสร็จสมบูรณ์ได้เนื่องจากเกิดข้อผิดพลาดที่ไม่คาดคิด
(รหัสข้อผิดพลาด -50)
ฉันจะทำให้ OS X ทำงานกับสองตัวเลือกเหล่านี้ได้อย่างไร จุดประสงค์ของฉันคือ._
กำจัดสิ่งที่น่ารังเกียจออกจากไดเรกทอรีที่ใช้ร่วมกัน
ฉันพยายามคัดค้านไฟล์ dotbar เพียง:
veto files = /._*/
delete veto files = yes
แต่ที่ทำให้เกิดการใช้งานบางอย่างที่จะล้มเหลวเช่นMercurial เมื่อเรียกใช้จาก OS X ผ่านการติดตั้งร่วมกันของ
ฉันใช้ OS X 10.9.5 เป็นลูกค้า Samba 3.6.6 จาก Debian Wheezy เป็นเซิร์ฟเวอร์
แก้ไข: นี่คือการกำหนดค่าของฉันตามที่ร้องขอ:
[global]
security = user
invalid users = root
workgroup = COMPANY_NAME
encrypt passwords = true
panic action = /usr/share/samba/panic-action %d
syslog = yes
syslog only = yes
# PERFORMANCE TUNING
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE
read raw = true
write raw = true
use sendfile = true
min receivefile size = 16384
aio read size = 16384
aio write size = 16384
max xmit = 131072
getwd cache = true
# DEFAULT OPTIONS FOR ALL SHARES
writeable = true
force group = company_group
create mask = 664
security mask = 664
force create mode = 664
force security mode = 664
directory mask = 2775
directory security mask = 2775
force directory mode = 2775
force directory security mode = 2775
# solve problem where OS X clients remove mode 0100
map archive = no
[homes]
browseable = no
unix extensions
คำสั่งลงใน[global]
เซสชันเพื่อดูว่าแก้ไขกรณีของคุณหรือไม่ คุณสามารถอัปเดตคำถามของคุณด้วยผลลัพธ์จากtestparm
คำสั่งได้หรือไม่