What is the difference between Pyrus and Composer? - zend-framework2

I'm new to Zend Framework 2.0, after reading the documentation I know that we can install Zend via some package managers as Pyrus, Composer. But I don't know which package manager should I choose? Please explain to me some differences between them, thank you for help!

Pyrus is basically PEAR2, and needs the end developer of a package to configure a pyrus distribution channel to make packages public.
Composer is backed by the main packagist.org repository, with the availability of own channels through satis if necessary.
Pyrus is mantained, but has not much activity on its main repository, composer is much more active.
Composer is the most used package manager for PHP currently available. Most ZF2 modules currently support it and don't support Pyrus, so I strongly suggest you to get used to it.
Related: ZF2 + doctrine without composer (an example of how this tool is becoming necessary).

In addition to Ocramius' explanation:
Pyrus is not PEAR2. Pyrus is a standalone tool that can install packages from any PEAR-compatible channel, including pear.php.net and pear2.php.net.
Pyrus is able to install and compile PECL packages (PHP extensions).
Publishing a package yourself is easier with composer. You only need one single file in your git repository; Composer can install directly from there. Pyrus on the other hand needs a bunch of XML files you can't hand-generate - so you have to use a channel server software like Pirum.

Related

What is the difference between a package and container?

GitHub recently released a container registry alongside their package registry. What is the difference? When would it be better to use one or the other? Do we need both?
Packages are generally simple: they are essentially an archive (i.e. zip file) that contains contents (code libraries, application executables, etc.) and a manifest file (json document, xml file, etc) that describes those contents with a package name and version number (at a minimum).
ie:- npm,pip and composer packages.
Container images are also simple, but they're more like an archive (i.e. a zip file) than a package.
ie:- nginx, redis etc
Verdict:- if some libs repetitively used in any project then we can create package and use in project .while for all project based dependencies we need to choose container to run this. Yes we need both.
After debating this with a Docker-using friend for a while I think I've found a satisfactory explanation:
Packages are for modules of code which are compiled together into an
Application.
Containers are for Applications which are compiled together into a
Server.
This is a bit confused by the fact that a Package can contain a standalone Applications, and Containers will often use package managers like Apt to install these applications. I feel like this is an abuse of package management due to a legacy where we didn't have Containers. Eventually I would expect most Applications will be delivered in Container form.

Is it possible to run a private Hex (Erlang) dependency manager (and if so how)?

I'm working in an Erlang environment. I'm looking to establish a dependency manager so that our build server can publish binaries for reuse instead of using source code dependencies. The Hexpm GitHub project implies that it is possible to run it outside of the hex.pm website, but I don't see any instructions for doing so. Specifically, I would like my build server to be able to publish packages either directly (via the filesystem) or via rebar3, and for subsequent rebar3 builds to be able to use those published packages
Is it possible to run Hex on my own server?
If so, where would I find some documentation on how to set it up (or provide the instructions directly)?
If you look at https://github.com/hexpm/hex_web there are instructions in the README.md for both installing and running it. It's a phoenix application, so it should all be relatively familiar ground if you've looked at the phoenix framework before.
As for getting rebar3 to work with your installation, there is documentation here as to the config values to use for setting the URLs to use for hex packages: http://www.rebar3.org/docs/hex-package-management.
HTH.

erlang zero dependencies installer for Debian and Ubuntu

In order to ease the installation process of RabbitMQ, I want to use a simple, zero dependencies installer for erlang.
There is a great project on Github from the guys at RabbitMQ - erlang-rpm, but this is RPM only.
I'm aware of erlang-solutions, but it not a single, no dependencies installer.
EDIT: Adding some context here. I need this to be able to prepare a simple, offline install to my app, which needs RabbitMQ. Offline means NO access to internet for downloading dependencies.
Any ideas?
There is no Zero-dependency Erlang Ubuntu/Debian for RabbitMQ.
But the Erlang Solution package can be installed easily.
We built the Centos package because the dependencies are hard to install on Centos (if you don't want to use the epel)
If you want to create an offline setup, you can do it like for other packages (https://askubuntu.com/questions/974/how-can-i-install-software-or-packages-without-internet-offline). Or you can create your own package by building Erlang from source code.
Note also RabbitMQ has dependencies as socat

install phpUnit via pear or composer

I'm new to Zend Framework 2.0, after reading the documentation I know that we can install phpUnit via Pear or via composer ?
Please explain to me some differences between them, thank you
Use Composer. The main difference is that Composer installs phpunit within your application, whereas pear installs it on the server. The advantage of the composer approach is that you can have different versions of phpunit used by different applications.

"bower install breeze" for MEAN stack

I am developing a sample app using MEAN stack and tried to install BreezeJS via bower. But it downloads whole bunch of .NET related stuff. I read from the BreezeJS documentation, that it can be used in Non-MS backends.
Any hints on how can I use bower to install breezeJS or do I have to download files manually.
Update 26 May 2014
There is now an official breezejs bower package for client assets. Install from a terminal/command window with
bower install breezejs
Case matters! Be sure to spell "breezejs" in all lowercase.
This package contains the core JavaScript distribution files PLUS
adapters - the officially supported breeze adapters in the core, including the mongo client adapter
labs - the currently "approved" breeze.labs
HTH
p.s.: You still use nmp to install the breeze-mongodb module on your node server.
Original
Feel your pain. It's helpful to our priority setting to know that this matters to you.
We are in the midst of doing two things about this.
refactoring the github repository into multiple repos to be more sensitive to technology preferences.
working with the current keepers of the Breeze bower repos to refactor accordingly; actually, they have offered to let us take over ... and we will; we just need a little more time.
Until then, I'm afraid you'll have to grab the JavaScript files from github yourself. Fortunately there are not many of them.
Breeze client JavaScript files are in the build folder of the breeze.js repo.
Breeze Labs for JS clients are in the breeze.js.labs repo.
The breeze-mongodb module for your node server you can install with npm.

Resources