UNIX / Linuxファむルシステムの線成のいく぀かの偎面に぀いお

1.0はじめに




前の蚘事 Linuxxstowマネヌゞャヌを䜿甚した非配垃プログラムのむンストヌルを曞いた埌、私は二重の印象を持っおいたす。 䞀方では、蚘事のすべおが正しく、他方では、レビュヌは、UNIXファむルシステムのさたざたな郚分の指定にいく぀かの矛盟があるこずを瀺したした。 たたたた、私は人々に私のハンマヌを枡し、ハンマヌの䜿甚方法を説明し、このハンマヌでどの釘ずどこにハンマヌを打぀べきかを蚀わなかった。 このギャップを埋めようずしたす。 この蚘事では、できる限り、UNIXファむルシステムがどのように構成されおいるのか、なぜこのように行われおいるのか、このシステムでなぜ、どのように動䜜するのかを説明したす。







将来的には、UNIXの䟋ずしおDebian / Ubuntuディストリビュヌションを䜿甚したす。



私たちが人生から知っおいるように、私たちの人生党䜓は、私たちの前に生じる問題の解決策であり、以前の問題の解決などから生じる問題を含む無限の問題の出珟です...



2.0問題OSでさたざたな目的のファむルを配眮する方法




それでは、最初の問題、システムにファむルを配眮する方法を定匏化したしょう。 䞀方では、オペレヌティングシステムずプログラムがありたす。各プログラムは通垞、いく぀かの、時には倚くのファむルで構成されおいたす。 オペレヌティングシステムの基本ファむルですべおが倚かれ少なかれ明確な堎合、原則ずしおそれらは垞に同じ堎所にあり、むンストヌル/アンむンストヌルが可胜なプログラムのファむルでは、状況はより耇雑です。 䞀方では、ファむルが目的別に゜ヌトされおいるず䟿利です。他方では、プログラムファむルのディレクトリツリヌがプログラムに察応するディレクトリにあるず䟿利です。 これらの゜リュヌションの長所ず短所をさらに詳しく芋おみたしょう。



2.1最初のオプションパッケヌゞでファむルを䞊べ替える




最初に頭に浮かぶのは、OSファむルをパッケヌゞに分解しおみたしょう。 ぀たり 各゜フトりェアパッケヌゞには、このプログラムの補造元が必芁ずするファむルが既に配眮されるサブディレクトリがある独自のディレクトリがありたす。



長所







短所







2.2 2番目のオプションシステム内の機胜でファむルを䞊べ替える




長所







短所







3.0 UNIXスタむルの゜リュヌション




UNIXでは、2番目のオプションが遞択されたす。 ぀たり 同じ機胜を持぀異なるプログラムのファむルは同じディレクトリにありたす。 たずえば、さたざたなナヌザヌプログラムの実行可胜ファむルは/ usr / binディレクトリにありたす。



4.0 UNIXスタむルの゜フトりェアむンストヌルの゜リュヌションから生じる問題




もちろん、アプロヌチの欠点から問題が発生したす。 これらは、プログラムのむンストヌル、プログラムのアンむンストヌル、およびどのファむルがどのプログラムに属しおいるかを刀別するのが困難です。 これはほずんどの堎合、重芁なタスクです。



5.0問題解決パッケヌゞマネヌゞャヌ




将来的には、MPパッケヌゞマネヌゞャヌを呌び出したす。



さたざたなUNIX / Linuxディストリビュヌションの前のセクションで定匏化された問題は、むンストヌルされた゜フトりェアに関する情報を特別なプログラムパッケヌゞマネヌゞャヌにむンストヌル、アンむンストヌル、保存するこずで解決されたす。 Debian / Ubuntuでは、dpkgがこれを行いたす。 実際、これは、これに関連する䞀連のプログラム党䜓のうちの1぀のプログラムにすぎたせん。 dpkg、これはバック゚ンドです。いく぀かのフロント゚ンド、apt-get、aptitude、dselect、synapticがありたす。



MPは䜕をしたすか 少なくずもDebian / Ubuntuでは、圌は次のこずを行いたす。



  1. パッケヌゞをむンストヌルしたす。
  2. パッケヌゞの削陀。
  3. 䟝存関係の远跡パッケヌゞをむンストヌルする堎合、このパッケヌゞに必芁な他のパッケヌゞをパッケヌゞず共にむンストヌルしたす
  4. リモヌトリポゞトリからネットワヌク経由でパッケヌゞをむンストヌルしたす。
  5. むンストヌル枈みパッケヌゞのロヌカルデヌタベヌスを維持したす。
  6. ネットワヌク経由など、むンストヌルに䜿甚できるパッケヌゞのロヌカルデヌタベヌスを維持したす。
  7. 利甚可胜なパッケヌゞおよび/たたはそれらのバヌゞョンを倉曎するずきにデヌタベヌスを曎新したす。
  8. パッケヌゞ曎新の正しいむンストヌル。
  9. システム党䜓をアップグレヌドしたす。




たくさん、どう思いたすか そしお、Debian / Ubuntu MPはこれに぀いお本圓に良い仕事をしおいたす。



パッケヌゞ自䜓は通垞、ファむルのアヌカむブ、いく぀かのフィヌルドを含むパッケヌゞの説明、およびパッケヌゞのむンストヌルおよび削陀時に実行されるスクリプトです。 Debian / Ubuntuでは、パッケヌゞファむルの拡匵子は.debです。



6.0パッケヌゞマネヌゞャヌに関連する問題




ご存じのように、問題なく䜕も起こりたせん。 MPの䜿甚も䟋倖ではなく、独自の問題をもたらしたす。 もちろん、MPはそれがもたらすよりもはるかに倚くの問題を解決したすが、それでもそれらを知っお察凊する必芁がありたす。 したがっお、問題は次のずおりです。



  1. 䟝存関係。 これは、䞀方でMPを䜿甚するこずのプラスです。 䞀方、䟝存関係の远跡は、パッケヌゞ管理者にずっお倧きな仕事です。 珟圚、Debianには25,113個のパッケヌゞがありたす。 䞀郚のパッケヌゞは他のパッケヌゞの必須むンストヌルを必芁ずするか、たたはその逆に互換性のないパッケヌゞがありたす。 その結果、倧きく耇雑な䟝存関係のシステムができたす。 これらすべおをチェックする必芁がありたす。
  2. 互換性のないパッケヌゞの組み合わせが芋぀かる堎合がありたす。
  3. 時々、あらゆる皮類のトリッキヌなリングの䟝存関係がありたす。
  4. 倚数のパッケヌゞを盞互に結合する必芁があるため、ディストリビュヌションに含たれるパッケヌゞバヌゞョンが廃止される堎合がありたす。
  5. 倚くの堎合、配垃゜フトりェアでは必芁なバヌゞョンではありたせん。
  6. パッケヌゞが非垞に倚いにもかかわらず、ディストリビュヌションに含たれおいない゜フトりェアが必芁な堎合がありたす。
  7. MPが実行されおいるディレクトリに゜フトりェアをむンストヌルするこずはできたせん。そうしないず、゜フトりェアがMPによっおむンストヌルされた゜フトりェアず競合する可胜性がありたす。 簡単に蚀えば、MPによっおむンストヌルされたファむルを䞊曞きしたり、その逆を行うこずができたす。




7.0パッケヌゞマネヌゞャヌ、階局/ usr / localに関連する問題の解決




最近、ほずんどすべおの必芁な゜フトりェアが配垃パッケヌゞに含たれおいたす。 それでも、遅かれ早かれ、原則ずしお、各ナヌザヌ/管理者は、ディストリビュヌションに含たれおいない゜フトりェアをむンストヌルする必芁に盎面しおいたす。 通垞、次のようなオプションがありたす。



問題1。 他の蚭定でパッケヌゞを再コンパむルする必芁がありたす。
問題2 必芁な゜フトりェアはディストリビュヌションに含たれおいたせん。
問題3 ディストリビュヌションは、必芁なバヌゞョンではありたせん。




になる方法 システムを乱すリスクを最小限に抑えながらこれを行う方法は 利甚可胜ないく぀かのオプションがありたす。



問題1。 解決策1 他の蚭定でパッケヌゞを再コンパむルしたす。 これは、他の蚭定のパッケヌゞが必芁な堎合です。 ディストリビュヌションでコンパむルされたパッケヌゞず比范しお䟝存関係が倉わる堎合がありたすが、実際には危険はありたせん。 すでに、明確な唐蟛子がありたす、あなたは䞭毒の責任がありたす。
問題2,3 解決策2 独自のパッケヌゞをビルドしお、システムにむンストヌルしたす。
問題1,2,3 決定3 階局内の゜ヌスから収集された゜フトりェアをむンストヌルする/ usr / local




゜リュヌション1は明確なように芋えるので、 ゜リュヌション2ず゜リュヌション3を詳しく芋おみたしょう。



解決策2独自のパッケヌゞをビルドし、システムにむンストヌルしたす。





長所



  1. セクション6.0にリストされおいるMPのすべおの機胜を䜿甚できたす。
  2. パッケヌゞが耇数のマシンにむンストヌルされるように蚭蚈されおいる堎合、MPのネットワヌク機胜を䜿甚し、パッケヌゞで独自のリポゞトリを䜜成し、MPの暙準的な方法でこれらのパッケヌゞをむンストヌル/曎新できたす。




短所



  1. MPのすべおたたは䞀郚の機胜を䜿甚するには、远加の䜜業が必芁になるこずがありたす。 䜿甚しない堎合、MPを䜿甚する意味は䜕ですか
  2. パッケヌゞの互換性を確認しない堎合、パッケヌゞが他のパッケヌゞず競合する可胜性が高く、競合が最も予期しないものになる可胜性がありたす。
  3. このアプロヌチの倧芏暡な実装独自のパッケヌゞの䜜成により、RPMの堎合のように、テストが䞍十分で互換性のない倚くのパッケヌゞがむンタヌネットに衚瀺される可胜性がありたす。




Debianポリシヌ2 Debianの掟生物ずしおのUbuntuもガむドされおいたすは、2぀のこずを盎接述べおいたす。







したがっお、このマシンたたは少数のマシンにロヌカルにむンストヌルされるリポゞトリヌにない゜フトりェアの堎合、暙準的な方法は/ usr / localにむンストヌルするこずであるず結論付けるこずができたす。



゜フトりェアをDebian / Ubuntuシステムに配垃およびむンストヌルする堎合、最良の方法は.debパッケヌゞにパッケヌゞ化するこずです。 しかし この堎合、このパッケヌゞの䟝存関係、競合、および曎新を担圓したす。



8.0 / usr /ロヌカル階局の問題




  1. ご存知のように、どの゜リュヌションも新しい問題をもたらしたす。 䟋倖ではなく、前のセクションで抂説した゜リュヌションです。 1぀のパッケヌゞを/ usr / localにむンストヌルしおいる限り、問題はありたせんが、耇数のパッケヌゞがあるずすぐに、管理が䞍十分な䞀連のファむルが衚瀺されたす。 セクション4.0で説明されおいたす。
  2. もう1぀の問題は/ usr / local / varディレクトリの問題です。ご存じのように、プログラムデヌタファむルは/ varディレクトリに曞き蟌たれ、プログラム操䜜䞭に倉曎される可胜性がありたすログ、デヌタベヌスPIDなど。 しばしば

    / varは別のパヌティションで行われたすが、倉曎可胜なファむルは/ usr / local / varにあるこずがわかりたした 。




9.0 / usr /ロヌカル階局に関連する問題の解決、考えられる回避策




問題1の解決策は私の蚘事5で説明されおいるため、解決策に぀いお詳しく説明したせん。 ぀たり、各プログラムは/ usr / local / stowディレクトリ内の独自の階局に配眮され、その埌、特別なマネヌゞャヌxstowがプログラムファむルぞのシンボリックリンクを配眮したす。



問題の解決2.この問題は、手で解決する必芁がありたす。 stowプログラムを䜿甚した堎合は、たずえば、 / var階局内で䞀意の名前たずえば、 / var / local_varでディレクトリを䜜成し 、そこにリンクを䜜成できたす。 しかし、これは本圓にそのようなニヌズがある堎合にのみ行う䟡倀がありたす。



10.0階局/最適化




ポリシヌ2の / opt階局にサヌドパヌティ゜フトりェアをむンストヌルしたす 。 ゜フトりェアは、 / opt / packageたたは/ opt / providerの圢匏のディレクトリにむンストヌルしたす 。



11.0ナヌザヌの問題、/ホヌム階局




繰り返しになりたすが、ポリシヌ2によるず、ナヌザヌファむルは/ home階局の/ home / username圢匏のディレクトリに保存されたす 。 ゜フトりェアのむンストヌルに぀いお話す堎合は、ここからむンストヌルできたす。 さらに、これを行う方法はナヌザヌの裁量に任されおいたす。



い぀するの







私は通垞、ファむルレむアりトごずにディレクトリずパッケヌゞを組み合わせお䜿甚​​したす。 垞に動䜜する゜フトりェアの堎合、原則ずしお、これらは私のスクリプトです;ディレクトリ/ home / username / bin / home / username / etc / home / username / varを䜜成したす。 ただ芋たりプレむしたい゜フトりェアは、ディレクトリ/ home / username / sw / softnameでコンパむルされ、そこから起動したす。



12.0 /ホヌム階局の他の甚途




/ホヌム階局は、コンピュヌタヌで実行される倧芏暡なタスクに関連するファむルをホストするためによく䜿甚されたす。 たずえば、プロゞェクトはprojectnameずいう名前で開発されおいたす。 次に、 プロゞェクト名ずいう名前でシステム内のナヌザヌを起動し、それに関連するすべおのものを/ home / projectnameディレクトリに配眮したす



13.0その他のOS




か぀お、ボボッキンの母芪は圌女の父芪に蚀った。

「私たちの小さなボボチカはすでに

セックスに぀いお話す時間」

お父さんは考えお答えたした。

「おそらくあなたは正しいでしょう、どういうわけか䞍快です。」

ママ「さお、蝶の䟋に぀いお教えおください。」

お父さんはリトルゞョニヌに電話しお蚀った

「小さなゞョニヌ、あなたず私がいたこずを芚えおいる

売春宿」

「私は芚えおいたす。」

「さお、ここで蝶はたったく同じです。」





逞話





Freebsd




FreeBSDでは、原則ずしおすべおが同じですが、わずかな違いがありたす。 基本システムのファむルは、メむン階局のDebian / UbuntuのLinuxファミリヌのようにそこにありたす。 バむナリパッケヌゞは、パッケヌゞずポヌトの2぀の抂念に察応しおいたす。



パッケヌゞはDebian / Ubuntuのパッケヌゞずほが同じです。 パッケヌゞマネヌゞャずしお、パッケヌゞおよびポヌトを操䜜するために䞀連のコマンドが䜿甚されたす。



ポヌトは、システムで゜ヌスをコンパむルおよびむンストヌルできる補助ファむルのセットです。 これにより、メディアCDROMなどから゜ヌスコヌドを自動的にダりンロヌドしたり、むンタヌネットからダりンロヌドしたり、システムにコンパむルしおむンストヌルしたりできたす。



パッケヌゞずポヌトの䞡方が/ usr /ロヌカル階局にむンストヌルされたす。



Debian / Ubuntuの堎合ず同じように、゜フトりェアのパッケヌゞもポヌトもない堎合に状況が発生する可胜性がありたす。 それからもちろん、゜ヌスから゜フトりェアをむンストヌルする必芁がありたす。 これを行うには、この゜フトりェアのポヌトを䜜成するか、単に゜ヌスをコンパむルしお/ usr /ロヌカル階局にむンストヌルしたす。 もちろん、FreeBSDには倚くの゜フトりェアがむンストヌルされおいるため、泚意する必芁がありたす。 これによる競合の可胜性が高たりたす。



さお、蚘事5で説明した方法に戻るず、独自のポヌトを䜜成しない堎合、xstowプログラムを䜿甚しお順序を維持できるず思いたす。 BSD䞻矩者には、私には知られおいない奜みの方法があるかもしれたせんが、間違っおいる堎合は知識のある仲間に修正しおもらいたす。



Windowsファミリヌ




オペレヌティングシステムのWindowsファミリでは、原則ずしお、各゜フトりェアパッケヌゞに独自の階局がある堎合、゜フトりェアをホストするアプロヌチが䜿甚されたす。 宛先ごずのファむルのレむアりトぞのいく぀かのシフトがありたすが、これは劚げられたす



-ファむルシステムによる単䞀ツリヌの欠劂パヌティション、C、Dなどを瀺す文字。

-䌝統。

-実瞟のある゜フトりェアずの互換性の芁件。



おわりに




この蚘事がお圹に立おば幞いです。 原則ずしお、別の蚘事で他のUNIX / Linux FSディレクトリず階局の目的をより詳现に分析するこずができたす。



䜿甚されおいる略語のリスト




.deb Debian / Ubuntu゜フトりェアパッケヌゞファむル拡匵子
dpkg dpkgは、Debianのパッケヌゞ管理システムのバックボヌンである゜フトりェアです。
PID プロセスID
RPM Red Hat Package Manager-Red Hat Package Manager
Db デヌタベヌス
MP パッケヌゞマネヌゞャヌ
OS オペレヌティングシステム
゜フトりェア ゜フトりェア
リポゞトリ MP経由でアクセスできる゜フトりェアストレヌゞ
FS ファむルシステム




文孊




1. 暙準のLinuxファむルシステム階局File System Hierarchy Standard

2. ファむルシステム階局暙準 Debianポリシヌの補遺

3.http //ru.wikipedia.org/wiki/RPM

4.http //ru.wikipedia.org/wiki/Dpkg

5. Linuxxstowマネヌゞャヌを䜿甚した非配垃プログラムのむンストヌル

6.男性雇甚者



All Articles