OS X dosya sistemi için standart nedir? örneğin / opt / vs. / usr /


35

Neye girmeli /opt/, neye girmeli ve neye girmeli /usr/? Anladığım kadarıyla bu /usr/kullanıcı ev dizinleri için kullanılan, ancak içinde olduklarından beri /Users/- şimdi amaç nedir?

Tüm yerleşik dizinlerin ne için kullanılması gerektiğine dair bir el kitabı veya kılavuz var mı? Ne gibi /home/, ya da /net/?



Teşekkürler @bmike, bu acil sorunlarıma cevap veriyor, ancak daha eksiksiz / ayrıntılı bir açıklama hazırlayan biri varsa merak ediyorum.
DilithiumMatrix,

Dosya Sistemi Hiyerarşisi Standardı bağlantısını takip ettiniz mi?
zelanix,

1
@zelanix evet ve yine de OS X
DilithiumMatrix 30.04

Yanıtlar:


48

Tüm yerleşik dizinlerin ne için kullanılması gerektiğine dair bir el kitabı veya kılavuz var mı? / Home / veya / net / nedir?

Bir göz atın Sistem Kılavuzu Programlama Dosyası çoğunu güncel bilgiler için ve en man hierdosya sistemi hiyerarşi "tarihi krokisini" sağlar Terminali'nde (Bu başvuru için bu cevabın sonunda dahildir).

Sorunuza bir yorum, Dosya Sistemi Hiyerarşisi Standardından bahseder . Muhtemelen perusing sonra, sonuca gelecek Dosya Sistemi Programlama Kılavuzu ve man hierMacOS takip etmez, FHS daha Linux şey var. Tabii ki, FHS ile ortak UNIX menşei nedeniyle macOS'taki dosya sistemi düzeni arasında benzerlikler vardır, ancak farklar çarpıcıdır. macOS bunlardan hiçbirini kullanmıyor:

  • /bootklasörü -> macOS /System/Library/Kernelsyerine kullanır ( macOS'un eski sürümlerinde, çekirdeği içeren klasör /)
  • /homeklasörü -> macOS /Usersyerine kullanır
  • /rootklasörü -> macOS /var/rootyerine kullanır

ve /opthiçbir belgede bir kez belirtilmemiştir ( /optaşağıda daha fazlası .)

MacOS ve FHS uyumlu bir işletim sistemi arasındaki başka bir ayrım /private, örneğin /etcbir bağlantı bağlantısı kullanılmasıdır /private/etc.

Hakkında /net: Bu bir otomatik arama haritasıdır (listelenmiştir /etc/auto_master), daha fazla bilgi için Wikipedia'ya bakınız .

/ Opt / içine neyin girmesi ve neyin / usr / neyin içine girmesi gerekir? Benim anladığım şudur: / usr / eskiden ev kullanıcı dizinleri içindi, fakat / Kullanıcılar / içinde bulunduğundan beri - şimdi amaç nedir?

/usr Geçmişte kullanıcıların ev dizinlerini yerleştirmek için kullanılmış olmasına rağmen , artık durum böyle değil.

Günümüzde, /usrkullanıcı komutları ( /usr/binnormal kullanıcılar ve /usr/sbinyönetim kullanıcıları için root), paylaşılan kütüphaneler ( /usr/lib), man sayfaları ( /usr/share/man), doğrudan kullanıcılar ( /usr/libexec) ve diğer şeyler tarafından çalıştırılmaması gereken çalıştırılabilir dosyalar içerir .

Ayrıca /usr/local, temel işletim sistemi ile birlikte gelmeyen programları, kitaplıkları ve diğer dosyaları yerleştirmek için bir alt dizin sunar .

/optçok benzer bir rol oynamaktadır /usr/localve birbirleriyle değiştirilebilir gibi görünmektedir. Bununla birlikte, diğer Linux / UNIX sistem yöneticileriyle çalışma tecrübemden dolayı , BSD tabanlı UNIX işletim sistemlerinde bir tercih var gibi görünmektedir /usr/local.

Bu yüzden benim üstümde bu: macOS BSD tabanlıdır ve sonuç olarak kullanırdım /usr/local. Bir program dizini oluşturabileceğinizi ve ardından symlink komutlarını /usr/local/bin, vb.

/usr/local/mysql
/usr/local/mysql/bin/mysqladmin
/usr/local/mysql/lib/libmysqlclient.so
/usr/local/bin/mysqladmin -> ../mysql/bin/mysqladmin
/usr/local/lib/libmysqlclient.so -> ../mysql/lib/libmysqlclient.so

Bu, Linux ve UNIX'te de olağan pratikti, ancak FHS açıkça yasaklıyor : üçüncü taraf paketlerini kendi dizin hiyerarşisinde kurmak istiyorsanız, /opt/<package>bunun yerine kullanmalısınız . FHS-uyumluluğunun konfigürasyon dosyalarını /etc/opt/<package>ve değişken dosyaları koymak istediğini unutmayın /var/opt/<package>.

Bu yüzden, macOS'ta, /usr/localyukarıda açıklandığı şekilde kalmanızı tavsiye ederim .

Ben eklenti Cisco VPN ve benzeri yazılımları farkındayım XQuartz yüklemek /optyukarıdaki ayrımlar bulanıklık başlar böylece.

man hier

Yukarıda belirtildiği gibi bu man hier:

 A historical sketch of the filesystem hierarchy.  The modern macOS filesystem is documented in the
 ``File System Programming Guide'' available on Apple Developer.

 /             root directory of the filesystem

 /bin/         user utilities fundamental to both single-user and multi-user environments

 /dev/         block and character device files

               fd/  file descriptor files; see fd(4)

 /etc/         system configuration files and scripts

 /mach_kernel  kernel executable (the operating system loaded into memory at boot time).

 /sbin/        system programs and administration utilities fundamental to both single-user and multi-
               user environments

 /tmp/         temporary files

 /usr/         contains the majority of user utilities and applications

               bin/      common utilities, programming tools, and applications
               include/  standard C include files

                         arpa/       C include files for Internet service protocols
                         hfs/        C include files for HFS
                         machine/    machine specific C include files
                         net/        misc network C include files
                         netinet/    C include files for Internet standard protocols; see inet(4)
                         nfs/        C include files for NFS (Network File System)
                         objc/       C include files for Objective-C
                         protocols/  C include files for Berkeley service protocols
                         sys/        system C include files (kernel data structures)
                         ufs/        C include files for UFS

               lib/      archive libraries
               libexec/  system daemons & system utilities (executed by other programs)
               local/    executables, libraries, etc. not included by the basic operating system
               sbin/     system daemons & system utilities (executed by users)
               share/    architecture-independent data files

                         calendar/  a variety of pre-fab calendar files; see calendar(1)
                         dict/      word lists; see look(1)

                                    web2        words from Webster's 2nd International
                                    words       common words

                         man/       manual pages
                         misc/      misc system-wide ascii text files
                         mk/        templates for make; see make(1)
                         skel/      example . (dot) files for new accounts
                         tabset/    tab description files for a variety of terminals; used in the term-
                                    cap file; see termcap(5)
                         zoneinfo/  timezone configuration information; see tzfile(5)

 /var/         multi-purpose log, temporary, transient, and spool files

               at/        timed command scheduling files; see at(1)
               backups/   misc. backup files
               db/        misc. automatically generated system-specific database files
               log/       misc. system log files

               mail/      user mailbox files
               run/       system information files describing various info about system since it was
                          booted

                          utmpx       database of current users; see utmpx(5)

               rwho/      rwho data files; see rwhod(8), rwho(1), and ruptime(1)
               spool/     misc. printer and mail system spooling directories

                          mqueue/     undelivered mail queue; see sendmail(8)

               tmp/       temporary files that are kept between system reboots
               folders/   per-user temporary files and caches

1
Yani, örneğin, /usr/X11/tavsiye edilmez?
GEdgar

@zhermes Kullanışlı bulduğuma sevindim.
jaume

1
OS X'i olmayan okuyucular için (for man hier): Apple'ın Mac OS X kılavuz sayfası (7)
Graham Perrin

1
InsanelyMac forumlarında Bu mesaj Elma son kullanılan" diyor mach_kernel Yosemite yana X çekirdek şimdi yerleştirilir OS! Sierra bu tür herhangi bir dosyayı bulmak olmayacak şekilde, Mavericks'te kendi çekirdek için dosya adı / System / Library / çekirdeklerde altında dosya adı çekirdeği , "bu yüzden benim önceki tahminim görünüşte yanlıştı, görünüyor.
RandomDSdevel

1
@RandomDSdevel Teşekkür ederim, bu değişikliğin farkında değildim, cevabımı güncelledim.
jaume,

0

Yolları /opt(genellikle MacPorts ile ilişkilendirilir/opt/local ) ve 'standart' yol kullanımlarını okuduğumda, en azından 2001'den bu yana olan Fink'i de düşünüyorum . Aşağıdaki yolun popüler kullanımını Fink:

/sw

Mac OS X'te dosya sistemi hiyerarşisinin standart dışı bir bölümünün dikkatsiz kullanımına bir örnek

2003/02/06

Tüm üyelere ücretsiz olan Virex 7.2, Fink kütüphanelerinin üzerine kötü niyetli bir şekilde yazdı :

Bu çok kötü. Fink kullanıcıları, bunu yüklemeyin…

/Volumes/Virex 7.2.dmg/Virex 7.2.pkg 328 % lsbom Contents/Resources/Virex\ 7.2.bom | grep sw
./sw    40775   0/80
./sw/lib        40775   0/80
./sw/lib/libcrypto.0.9.6.dylib  100644  0/80    945416  3192711062
./sw/lib/libcurl.2.0.2.dylib    100644  0/80    634480  510417796
./sw/lib/libcurl.2.dylib        100644  0/80    634480  510417796
./sw/lib/libdl.0.dylib  100644  0/80    15124   4193639260
./sw/lib/libssl.0.9.6.dylib     100644  0/80    261776  3001832603

Lisanslamaya saygı da dahil olmak üzere olayla ilgili diğer tartışmalar:

2003-04-16

Bir Fink haberi :

Virex sorunu çözüldü

McAfee, artık ana Fink dizininin üzerine yazmayan Virex 7.2.1 sürümünü yayımladı /sw. Fink kullanıcıları Virex 7.2'den kaçınmaya devam etmelidir.

İlk raporlar Virex’in 7.2’den 7.2.1’e yükseltilmesinin bazı problemler doğurduğunu göstermektedir. Virex'i Fink yüklü değilse yükseltin ve ardından Fink'i yüklemek istiyorsanız, /swkurmadan önce dizini elle silmeniz gerekir . Virex'i önceden Fink yüklü bir sürümle yükseltirseniz, Virex yükseltmesinin silmiş olabileceği dosyaları geri yüklemek için hemen fink komutunu çalıştırmanız gerekir .

2003-05

McAfee Virex Sürüm 7.2.1 için Sürüm Notları , Fink kullanıcılarının neden olduğu sorunlardan hiç bahsetmedi.

Yan not olarak …

2004-08-31

Virex 7.5'in artık .Mac üyeleri için mevcut olmadığı gözlemleri .


BSD ilgili

OS X… Anladığım kadarıyla /usr/kullanıcı ev dizinleri için kullanılan

Bu, FreeBSD ve PC-BSD gibi işletim sistemleri için hala geçerlidir.

İken /usr/home/de açık değildir https://www.freebsd.org/cgi/man.cgi?query=hier&sektion=7&manpath=FreeBSD+10.2-RELEASE yol gibi belgelerde örneklenmiştir:

  • Hem FreeBSD hem de UNIX®'te Yeni Olanlar İçin: 3. Etrafa Bakmak

Peki neden bu indirildi?
Pacerier
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.