Info

編號資訊文件的目的是什麼?

  • December 29, 2015

我注意到有些軟體帶有多個資訊文件。例如,tar在 Fedora 21 上帶有:

  • tar.info.gz
  • tar.info-1.gz
  • tar.info-2.gz

主文件的tar-info-*文件依賴項是某種類型的tar.info.gz嗎?這個部門是每個發行版獨有的嗎?

似乎在官方GNU tar 手冊頁上,Info tarball 包含一個文件,所以我不確定-1and-2來自哪裡。

如前所述,最初這樣做是為了減小尺寸。它記錄在23.1.5 Tag Files and Split Files (GNU Texinfo 6.0) 中:

如果Texinfo文件超過 30,000 字節,則texinfo-format-buffer自動為其Info文件創建標籤表;makeinfo總是創建一個標籤表。使用標籤表,Info可以比其他方式更快地跳轉到新節點。

此外,如果Texinfo文件包含超過約 300,000 字節,texinfo-format-buffer則將makeinfo大型Info文件拆分為較短的間接子文件,每個子文件約 300,000 字節。大文件被分割成更小的文件,這樣Emacs就不需要做一個大的緩衝區來保存整個大的Info文件;取而代之的是,Emacs為當時需要的小型拆分文件分配了足夠的記憶體。這樣,Emacs可以避免在執行Info時浪費記憶體. (在實施拆分之前,Info 文件始終保持簡短,並且包含文件被設計為一種從較小的 Info 文件中創建單個大型印刷手冊的方法。有關更多資訊,請參閱包含文件。包含文件仍然用於非常大型文件,例如The Emacs Lisp Reference Manual,其中每一章都是一個單獨的文件。)

拆分功能非常古老。例如,當change-log 在1993 年texinfo首次提到它時,該功能可能在 1988 年 change-log 開始之前就已添加:

Tue Feb  2 08:38:06 1993  Noah Friedman  (friedman@prep.ai.mit.edu)

       * info/Makefile.in: Replace all "--nosplit" arguments to makeinfo
       with "--no-split"

引用自:https://unix.stackexchange.com/questions/252077