How to install graphite and all its prerequisites as a user without root permissions? - graphite

We are trying to install Graphite to capture neo4j database metrics. The installation will be done under the neo4j user which does not have root permissions. On the web there are multiple pages which detail this procedure but most of them fail at one stage or another. Is there a way to install all components of graphite and its pre-requisites using a non root user?

If you don't have root, then you are most likely not supposed to install applications on that server and should ask you system administrator to install it for you.
That said. On which pre-requisite does it fail? You can install all Python parts in virtualenv. For cairo and other system requirements it's a bit harder but still doable. You'll also have some issues getting it started automatically after reboot.
I'm actually working on making installation easier and updating the documentation. I could use some feedback.
https://github.com/piotr1212/graphite-web/blob/setuptools/docs/install.rst#using-virtualenv <- work in progress, you will have to follow virtualenv -> install from source, but then replace "graphite-project" with "piotr1212" in the github url's and git checkout setuptools in every directory before runnin pip install .

Related

Drupal 9 in an airgap or without composer

Does anyone have any experience with Drupal 9 either without composer or in an airgap? Basically we're trying to run it in an airgapped server. Composer obviously wants to access the internet for checking and downloading packages.
You'll need to run composer to install your packages and create your autoload files to make it all work.
You could create your own local package repository and store the packages you need there, however this would be a large undertaking given all the dependencies Drupal Core and contrib modules use. You'd need to manage them all yourself, and keep your local versions synced with the public versions, especially for security updates.
If you need to do that anyway, you're better off just using the public repos.
Documentation on composer repos is here:
https://getcomposer.org/doc/05-repositories.md
Near the bottom it shows how to disable the default packagist repo:
https://getcomposer.org/doc/05-repositories.md#disabling-packagist-org
A much simpler alternative would be to do development in a non air gapped environment so you have access to the packages you need and can run composer commands to install everything. Then once your code is in the state you need, copy that to your air gapped server to run. Once composer install has run it is not required to do anything else. Just make sure you include the vendor directory with all your dependencies, as well as drupal core and contribs.
The server you run your Drupal instance on, does not even require composer to be installed.

Can a MSIX package use an external file for user settings?

We are evaluating the migration from our current client/server application to .NET Core. The 3.0 release added the support for WinForms we need for our client, but ClickOnce will not be supported.
Our solution is installed on-premise and we need to include settings (among others) like the address to the application server. We create dynamically ClickOnce packages that can be used to install and update the clients and include the settings. This is working like a charm today. The users install the client using the ClickOnce package and every time we update the software we regenerate these packages at the customer's site and they get automatically the new version with the right settings.
We are looking at MSIX as an alternative, but we have got a question:
- Is it possible to add some external settings files to the MSIX package that will be used (deployed) when installing?
The package for the software itself could be statically generated, but how could we distribute the settings to the clients on first install / update?
MSIX has support for modification packages. This is close to what you want, the customization is done with a separate package installed after you install the main MSIX package of your app.
It cannot be installed at the same time as your main app. The OS checks if the main app is installed when you try to install the modification package and it will reject its installation if the main is not found on the machine.
The modification package is a standalone package, installed in a separate location. Check the link I included, there is a screenshot of a PS window where you can see the install path for the main package and the modification are different.
At runtime (when the user launches the app) the OS knows these two packages are connected and merges their virtual files and registry system, so the app "believes" all the resources are in one package.
This means you can update the main app and the modification package separately, and deploy them as you wish.
And if we update the modification package itself (without touching the main), will it be re-installed to all the clients that used it?
How do you deploy the updates? Do you want to use an auto-updater tool over the internet? Or ar these users managed inside an internal company network and get all the app updates from tools like SCCM?
The modification packages were designed mostly for IT departments to use them, and this is what I understood you would need too.
A modification package is deployed via SCCM or other tools just like the main package, there are no differences.
For ISVs I believe optional packages are a better solution.

How to migrate plone 4.2 from debian squeez to wheezy

I have a plone 4.2 instance in debian squeeze. Now I am trying to migrate it to a new server running wheezy: copy the plone directory from squeeze to wheezy--> run 'plonectl start'. It fails and error is shown : can not find 'plone' user.
What should I do to migrate it? Just to add user and group 'plone'? Will this affect plone_buildout and plone_group in plone 4.3?
You can nearly never move a large software package from one machine to another by simply copying the files. In this case, for example, the Plone installation is set up to run as a particular system user, "plone", and you don't have that user ID on the new machine.
Instead, do a fresh install of Plone on the new machine, then copy over the data and customizations. The order should probably be:
1) Do a fresh install on the new machine, modeled as closely as possible on the old; test it;
2) Copy the instance .cfg files and anything in ./src; test it;
3) Note the ownership and permissions of your sources; tar it; unpack on the destination machine; check ownership and permissions; test it.
If you are migrating from one Plone version to another, you should not simply copy the .cfg files. Instead, transfer customizations from your eggs= and develop= lists. Test to see if any customizations break the new Plone. Consult the upgrade guide for details on package migration. When transferring your data, match the ownership and permissions from the target, not the source. Run the Plone migration process for each Plone instance in your install. 4.2 -> 4.3 is a largely painless upgrade.

How to update (some files) a Symfony2 project to remote

I've been developing with Symfony1.4 'till now and had no problem to deploy a project or update it into a remote hosting. I just used sfFtpPlugin and everything was perfect: http://www.symfony-project.org/plugins/sfFtpPlugin
But now I'm starting with Symfony2 (2.2.0) and the first of all I had this question: how to update it when I make changes?
For the first time deploy I know there are some options: upload full project by FTP or use Maestro (e.g. offered in the ServerGrove.com hostings) With those tools I can upload everything, but in the case where I need to update... ¿50? files, I cannot manually do by FTP, of course.
Thanks everyone for helping!
P.S: Aditional info: I have some SVN knowledge and started learning GIT a few days ago.
The documentation on this is fantastic. The Cookbook provides workflows for both Git and SVN.
http://symfony.com/doc/current/cookbook/workflow/index.html
If you have no shell available, you can use composer on your local machine to update your project and then FTP the entire project over.
This covers how to store settings for different environments:
http://symfony.com/doc/current/cookbook/configuration/environments.html
Personally I use a private Satis repo for deploying all my code.
That way I never have to use FTP, just composer create-project/install/update.

Using apt-get to install an instance of a web application

Is it possible to have many instances of MediaWiki or Wordpress on a web server, installed and automatically upgraded by apt-get? If so, would Ubuntu LTS upgrade with security-only patches?
Thanks!
No, at least not the way you think. It's not possible to use apt-get to install multiple instances of the same package into different locations.
That said, there are quite some web applications that are designed to be installed once and be run off many different domains. One copy of the source code but configured to run on many virtual hosts, all using different configurations and databases. So, it depends on the package that you want to install.
You could put Your own packages in Your own package repository and add it's address to every server's /etc/apt/sources.list, then invoke apt-get update && apt-get upgrade on all servers to upgrade.
As Sander Marechal said, You don't usually need separate copies of the source code for each instance of a service.

Resources