qire.1 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. .TH QIRE "1" "April 2020" "qire 0.0.3" "User Commands"
  2. .SH NAME
  3. qire \- Qi Remote Extension
  4. .SH SYNOPSIS
  5. .B qire
  6. \fI\,COMMAND\/\fR
  7. [\fI\,OPTIONS...\/\fR]
  8. [\fI\,ARGUMENTS...\/\fR]
  9. .br
  10. .B qire
  11. \f install,downgrade,info\fR
  12. [\f -r,--repo repo\fR]
  13. [\f -l,--local\fR]
  14. [\f -f,--force\fR]
  15. \f pkg1\fR
  16. [\f pkgs... \fR]
  17. .br
  18. .B qire
  19. \f upgrade,search\fR
  20. [\f -r,--repo repo\fR]
  21. [\f -l,--local\fR]
  22. [\f -f,--force\fR]
  23. [\f pkgs... \fR]
  24. .br
  25. .B qire
  26. \f install,upgrade,downgrade\fR
  27. [\f -r,--repo repo\fR]
  28. [\f -f,--force\fR]
  29. \f -c,--category category\fR
  30. .br
  31. .B qire
  32. \f search\fR
  33. [\f -l,--local\fR]
  34. \f -c, --category category\fR
  35. .br
  36. .B qire
  37. \f fetch\fR
  38. [\f -r,--repo repo\fR]
  39. [\f -o,--output-directory dir\fR]
  40. \f pkg1\fR
  41. [\f pkgs... \fR]
  42. .br
  43. .B qire
  44. \f fetch\fR
  45. [\f -r,--repo repo\fR]
  46. \f -c,--category category\fR
  47. .br
  48. .B qire
  49. \f sync,build-index\fR
  50. \f repo1\fR
  51. [\f repos...\fR]
  52. .br
  53. .B qire
  54. \f remove\fR
  55. \f pkg\fR
  56. .br
  57. .B qire
  58. \f remove\fR
  59. \f -c,--category category\fR
  60. .br
  61. .B qire
  62. \f clean,version,help\fR
  63. .SH DESCRIPTION
  64. Qire is the remote package manager for Dragora. It uses the local package
  65. manager, see qi(1), to install, update, and remove packages. Qire is able to work with
  66. many package repositories that are set in the qire config file, see \fBQIRERC\fR
  67. for more information on how to configure qire. Qire is also able to manipulate
  68. many versions of the same program intelligibly and easily, see \fBMANIPULATING
  69. MULTIPLE VERSIONS\fR for more information. If you are a repository maintainer,
  70. qire offers a build command to easily create a new index file for your repo, see
  71. \fBBUILDING INDEX FILES\fR and \fBMAINTAINING A REPOSITORY\fR for more
  72. information.
  73. .br
  74. .SS "Remote/Local Commands:"
  75. .TP
  76. \fBinstall\fR
  77. Install packages from the repo(s) or local filesystem
  78. .TP
  79. \fBupgrade\fR
  80. Upgrade installed packages from the repo(s) or local filesystem
  81. .TP
  82. \fBdowngrade\fR
  83. Downgrade installed packages from the repo(s) or local filesystem
  84. .TP
  85. \fBsearch\fR
  86. Search the repo(s) or local filesystem for a particular package
  87. .TP
  88. \fBinfo\fR
  89. Display information on a package in the repo(s) or local filesystem
  90. .SS "Remote-Only Commands:"
  91. .TP
  92. \fBsync\fR
  93. Sync the local repo(s) tree
  94. .TP
  95. \fBfetch\fR
  96. Fetch package from repo
  97. .TP
  98. \fBbuild\-index\fR
  99. Build index files for repos in config. See \fBBUILDING INDEX FILES\fR for
  100. more information
  101. .SS "Local-Only Commands:"
  102. .TP
  103. \fBremove\fR
  104. Remove installed packages
  105. .TP
  106. \fBclean\fR
  107. Clean out the Qire cache directory
  108. .SS "Options:"
  109. .TP
  110. \fB\-c\fR, \fB\-\-category\fR
  111. Supply a category name rather than a package name to an applicable command
  112. .TP
  113. \fB\-f\fR, \fB\-\-force\fR
  114. Force an applicable command to be reran
  115. .TP
  116. \fB\-l\fR, \fB\-\-local\fR
  117. Run an applicable command locally
  118. .TP
  119. \fB\-o\fR, \fB\-\-output\-directory\fR
  120. Choose a different output directory for fetched packages
  121. .TP
  122. \fB\-r\fR, \fB\-\-repo\fR
  123. Select which repo(s) you'd like to use
  124. .SS "Other Commands:"
  125. .TP
  126. \fBversion\fR
  127. Display the version
  128. .TP
  129. \fBhelp\fR
  130. Display this help information
  131. .SH FILES AND DIRECTORIES
  132. /etc/qire/qirerc \(em Qire config file
  133. .PP
  134. /etc/qire/${id}.index \(em various index files of the repos found in Qire config
  135. .PP
  136. /var/cache/qire/ \(em default location for package binaries and SHA256 files are located.
  137. .PP
  138. .br
  139. .SH QIRERC
  140. The qirerc file is the only configuration file required for qire. The qirerc is
  141. very easy to understand and edit. Currently, these are the configuration options:
  142. .TP
  143. \fBdefault\fR
  144. Usage: \fBdefault\fR [repo1,repo2,...] [all]
  145. .br
  146. Set the default repositories for qire to do business in. The default setting for
  147. this is "all" which means all the repositories placed in qirerc are used. If you
  148. wish to only select a subset of your repository list, you can place the id of
  149. the repositories in a list separated by a space character, i.e. "default
  150. my-repo1 my-repo2". You can always override this setting by using the
  151. \fT-r,--repo\fR option.
  152. .TP
  153. \fBrepo\fR
  154. Usage: \fBrepo\fR id url
  155. .br
  156. Set the id and URL of a repository. The id of the repository can be whatever
  157. you'd like, so long that there are no spaces in the id, i.e. "repo
  158. dragora-noarch http://rsync.dragora.org/current/packages/noarch/". It is
  159. recommended that you select a reasonable name as you will see this name
  160. throughout qire's UI.
  161. .PP
  162. If you get \fBError 3\fR, this means you are lacking a qirerc. This will
  163. generally not happen unless there was an issue with installation. To fix this,
  164. all you must do is create a qirerc file with the information you'd like.
  165. .br
  166. .SH MANIPULATING MULTIPLE VERSIONS
  167. As mentioned, qire is able to work with many versions of the same program thanks
  168. to graft(1). It's quite easy to do these tasks.
  169. .TP
  170. \fBInstalling\fR
  171. To install another version of a package, simple run the qire install command as
  172. normal, i.e. "qire install moe." If qire finds many versions of the queried
  173. package, it will display them in a list and you can select whichever one you'd
  174. like by inputting the corresponding number. If you already have the selected
  175. version installed, qire will inform you. If you select a another, non-installed
  176. version, qire will fetch and install it as any package. If you perform a local
  177. search (qire search -l ${program-name}), you will notice that 2 versions will
  178. show up. This means you've successfully installed 2 versions of the same
  179. package!
  180. .TP
  181. \fBUp/Downgrading\fR
  182. Upgrading/downgrading many versions of the same package with qire is also very
  183. easy. To do so, run the upgrade or downgrade command as you would with any other
  184. package, i.e. "qire upgrade moe." If qire finds many versions of the
  185. queried package, it will display them in a list and you can select whichever
  186. one you'd like by inputting the corresponding number. If you already have the
  187. selected version installed, qire will inform you. If you select a version that
  188. is newer or older, qire will then search your system for potential
  189. candidates. If there are many candidates qire will list them and allow you to
  190. select which version to apply the upgrade or downgrade to. Once you select which
  191. version to upgrade or downgrade, qire will perform its action.
  192. \fBRemoving\fR
  193. If you have more than one version of a package installed, running the qire
  194. remove command will simple display a list of packages to remove.
  195. .br
  196. .SH BUILDING INDEX FILES
  197. There are 2 ways to create an index file for your repository: with qire and
  198. manually. If you wish to use qire, make sure that all the packages you wish to
  199. include are currently uploaded to the repository. Then make sure that you have
  200. the repo found in your qirerc file. If it isn't, see the \fBQIRERC\fR section
  201. for more information. To generate the index file, simply run the qire
  202. build-index command with the id of the repository as the argument, i.e. "qire
  203. build-index dragora-noarch," where "dragora-noarch" is the id of the repository
  204. that I wish to generate an index file for.
  205. .br
  206. To manually create an index file, all you must do is place the \fIfull name\fR
  207. of the package, a space, and the location of that package on the repo per
  208. line. An example line would look like this: "moe_1.11-rc1_amd64-1@tools.tlz /\\n"
  209. - notice that I included the newline character "\\n" as it is required for
  210. parsing. \fBEven the last line in the index file must have a newline character
  211. at the end!\fR Another example, with a non-root path would be:
  212. "moe_1.11-rc1_amd64-1@tools.tlz /editors/\\n", if the package for "moe" was found
  213. in "editors/".
  214. .SH MAINTAINING A REPOSITORY
  215. Maintaining a repository is fairly easy as there are only a handful of
  216. requirements. First, the server you host your repository on must be accessible
  217. via HTTP[S]. At this time, qire does not support FTP or any other
  218. protocol. Second, the HTML of the package list must allow qire to parse
  219. it. What this means is that you cannot use a fancy JavaScript list or something
  220. non-standard. It is recommended that your either use the standard when you
  221. browse to a directory via HTTP, Apache, or Hiawatha. Third, the URL that you supply must
  222. contain a file entitled "packages.index" which is the index file of your
  223. repository. See \fBBUILDING INDEX FILES\fR for more information on creating
  224. index files. You, of course, can have many repositories on one server but each
  225. URL must contain a valid packages.index file. Fourth, all packages must follow
  226. the qi(1) package naming convention. That convention is:
  227. "${program-name}_${version}_${arch}-${release-number}[@${category}].tlz". You
  228. will notice that category is optional but it is recommended that you provide a
  229. category to allow for easy upgrading or installation of dependencies. If you
  230. fail to follow this convention, qire may fail to work on your repository. Fifth,
  231. along with the binary file (.tlz), you must also include the sha256 checksum
  232. (.tlz.sha256) and the metadata (.tlz.txt) files. The sha256 is to make sure that
  233. there is no corruption with the fetched package before installation. The
  234. metadata file is so that users can use qire's info command, i.e. "qire info
  235. moe". After meeting these requirements, you will have a working qire repository!
  236. .SH SIDE NOTE
  237. Qire is still fairly knew and things are always subject to change. If you have
  238. recommendations, concerns, wishes, or what to help, contact the author as listed
  239. under the \fBREPORTING BUGS\fR section.
  240. .SH AUTHOR
  241. Qire was written by Kevin "The Nuclear" Bloom.
  242. .SH "REPORTING BUGS"
  243. Report bugs to https://notabug.org/dragora/qire/issues or <nuclearkev@dragora.org>
  244. .SH COPYRIGHT
  245. Copyright \(co 2020-2021 Kevin "The Nuclear" Bloom.
  246. Qire comes with ABSOLUTELY NO WARRANTY.
  247. You may redistribute copies of Qire
  248. under the terms of the GNU General Public License version 3 or later.
  249. For more information about these matters, see the file named LICENSE.
  250. .SH "SEE ALSO"
  251. .BR qi (1),
  252. .BR sha256sum (1),
  253. .BR wget (1)