You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (JIRA)" <ji...@apache.org> on 2015/12/17 09:50:46 UTC

[jira] [Comment Edited] (JENA-1101) Fuseki filesystem layout and Linux FHS

    [ https://issues.apache.org/jira/browse/JENA-1101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15061727#comment-15061727 ] 

Andy Seaborne edited comment on JENA-1101 at 12/17/15 8:49 AM:
---------------------------------------------------------------

`/etc/fuseki` is quite close to what you describe.
{noformat}
/etc/fuseki/
  backups/
  config.ttl
  configuration/
  databases/
  logs/
  shiro.ini
  system/
  system_files/
  templates/
{noformat}
These are all the per-installation files.

The FUSEKI_HOME area (the binary distribution) is read-only. If the user installs the Fuseki distribution at `/usr/share/fuseki`, then it will be quite close to what you describe.

There are two issues here: the binary distribution, a single file hierarchy in the zip or tar.gz file; and the layout for a specific environment.  Not all Linux distro use an identical layout.  (e.g. Ubuntu uses `tomcat8` and has some jars in `/usr/share/java/`); packaging for the distro is done by that distro and there are different packaging tool sets.

What you are asking for is an RPM for Fuseki, and a dpkg for Debain/Ubuntu. It would be great if someone would create and maintain such a thing for each distro, or provide and maintain automation tooling to integrate with the project build process.

Do you have some specific, concrete suggestions for changes we can make easily that work for everyone?  Maybe in the form of a set of example files for different distros that the user can install in `/etc/default/fuseki` that the project can ship with the Apache binaries? 



was (Author: andy.seaborne):
If the user installs the Fuseki distribution at `/usr/share/fuseki`, then it will be quite close to what you describe.

There are two issues here: the binary distribution, a single file hierarchy in the zip or tar.gz file; and the layout for a specific environment.  Not all Linux distro use an identical layout.  (e.g. Ubuntu uses `tomcat8` and has some jars in `/usr/share/java/`); packaging for the distro is done by that distro and there are different packaging tool sets.

What you are asking for is an RPM for Fuseki, and a dpkg for Debain/Ubuntu. It would be great if somone would create and maintain such a thing for each distro, or provide and maintain automation tooling to integrate with the project build process.

Do you have some specific concrete suggestions for changes to the binary distribution? Maybe in the form of a set of example files for different distros that the user can install in `/etc/default/fuseki` that the project can ship with the Apache binaries.


> Fuseki filesystem layout and Linux FHS
> --------------------------------------
>
>                 Key: JENA-1101
>                 URL: https://issues.apache.org/jira/browse/JENA-1101
>             Project: Apache Jena
>          Issue Type: Improvement
>    Affects Versions: Fuseki 2.3.1
>            Reporter: Joachim Neubert
>
> When it comes to filesystem layout, the Java/Tomcat/Webapps world differs quite fundamentally from the Linux world: Whereas for Tomcat or Fuseki it is quite normal to have all files under a common root directory, the [Linux Filesystem Hierarchy Standard|https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard] (which is followed by most distributions) provides multiple roots for application files:
> Configuration goes to /etc, read-only files to /usr, variable files to /var (./log, ./cache etc.). To give you a better idea what this means in practice, I add the layout of the tomcat installation by Centos 7 RPM as an example.
> From a linux sysadmins point of view, this makes it easy to know where to find stuff without any special knowledge of the application, and to generalize tasks like backup (e.g. exclude all application cache files on the system).
> On the other hand, this means considerable more work, if you have to cover systems outside the Linux world too. Things may get even more complicated by remaining differeces between distributions and SElinux policies.
> So I don't suppose FHS compatibility is an realistic option for Fuseki.
> Yet, the current handling of mapping $FUSEKI_HOME/run to /etc/fuseki, with the whole bunch of assorted runtime files, feels profundly wrong. According to FHS, I would expect something like
> {noformat}
> etc/
>   fuseki/
>     config.ttl
>     shiro.ttl
>     conf.d/
>       service1.ttl
>       ...
> {noformat}
> and all the other stuff elsewhere.
> So I wonder if it would be possible to put the config hierarchy above under a, say, $FUSEKI_CONF root, which defaults to /etc/fuseki in the .war installation, and to $FUSEKI/conf otherwise.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)