X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=blobdiff_plain;f=README.dev;h=60b8df4f7be98dc015fe86a550c4402c252a4452;hp=5db68b9f571f09a3d400302be31aec17ac0b8fd1;hb=c9f0e76bc47a01f47ac95ef6ea9b13f4f0cd709b;hpb=60f4e8c713247d384bfdf7689ae959abebc5bbe3 diff --git a/README.dev b/README.dev index 5db68b9..60b8df4 100644 --- a/README.dev +++ b/README.dev @@ -1,54 +1,82 @@ -==================================== -Setup PVE v2 Development Environment -==================================== += Setup PVE Development Environment = -1. Install Debian 'wheezy' -2. Install prerequisites for development environment: +1. Install Debian 'jessie' +2. Configure pvetest repository in apt sources.list + + deb http://download.proxmox.com/debian jessie pvetest + +3. Add our repository key with apt-key: + + wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add - + +4. make sure you have a read IP address for your hostname in /etc/hosts + (using 127.0.1.1 will not work) + +5. run: apt-get update +6. run: apt-get dist-upgrade +7. run: apt-get install proxmox-ve-3.10.0 + +You should now have a working Proxmox VE installation. + += Install build prerequisites for development environment = apt-get -y install build-essential git-core debhelper autotools-dev \ -doxygen check pkg-config libnss3-dev groff quilt dpatch libxml2-dev \ -libncurses5-dev libslang2-dev libldap2-dev xsltproc python-pexpect \ -python-pycurl libdbus-1-dev openipmi sg3-utils libnet-snmp-perl \ -libnet-telnet-perl snmp python-openssl libxml2-utils automake autoconf \ -libsqlite3-dev sqlite3 libfuse-dev libglib2.0-dev librrd-dev \ -librrds-perl rrdcached lintian libdevel-cycle-perl libjson-perl \ -liblinux-inotify2-perl libio-stringy-perl unzip fuse-utils \ -libcrypt-openssl-random-perl libcrypt-openssl-rsa-perl \ -libauthen-pam-perl libterm-readline-gnu-perl libssl-dev open-iscsi \ -libapache2-mod-perl2 libfilesys-df-perl libfile-readbackwards-perl \ -libpci-dev texi2html libgnutls-dev libsdl1.2-dev bridge-utils \ -libvncserver0 rpm2cpio apache2-mpm-prefork libintl-perl \ -libapache2-request-perl libnet-dns-perl vlan libio-socket-ssl-perl \ -libfile-sync-perl ifenslave-2.6 libnet-ldap-perl console-data \ -libtool dietlibc-dev liblocale-po-perl libstring-shellquote-perl \ -libio-multiplex-perl liblockfile-simple-perl - -3. Download and install the following git modules in order from top to bottom: +autogen dh-autoreconf dkms doxygen check pkg-config groff quilt dpatch \ +automake autoconf libtool lintian libdevel-cycle-perl libjson-perl \ +libcommon-sense-perl liblinux-inotify2-perl libio-stringy-perl \ +libstring-shellquote-perl dh-systemd rpm2cpio libsqlite3-dev sqlite3 \ +libglib2.0-dev librrd-dev librrds-perl rrdcached libdigest-hmac-perl \ +libxml-parser-perl gdb libcrypt-openssl-random-perl \ +libcrypt-openssl-rsa-perl libnet-ldap-perl libauthen-pam-perl \ +libjson-xs-perl libterm-readline-gnu-perl oathtool libmime-base32-perl \ +liboath0 libpci-dev texi2html libsdl1.2-dev libgnutls28-dev \ +libspice-protocol-dev xfslibs-dev libnuma-dev libaio-dev \ +pve-libspice-server-dev libusbredirparser-dev glusterfs-common \ +libusb-1.0-0-dev librbd-dev libpopt-dev iproute bridge-utils numactl \ +glusterfs-common ceph-common python-ceph libgoogle-perftools4 \ +libfile-chdir-perl lvm2 glusterfs-client liblockfile-simple-perl \ +libsystemd-daemon-dev libreadline-gplv2-dev libio-multiplex-perl \ +libnetfilter-log-dev libipset3 ipset socat libsasl2-dev libogg-dev \ +python-pyparsing libfilesys-df-perl libcrypt-ssleay-perl \ +libfile-readbackwards-perl libanyevent-perl libanyevent-http-perl \ +unzip liblocale-po-perl vlan ifenslave-2.6 libfile-sync-perl cstream \ +lzop dtach apt-transport-https hdparm gdisk parted ttf-dejavu-core \ +liblzma-dev dosfstools mtools libxen-dev libfuse-dev libcorosync-pve-dev \ +libqb-dev libapparmor-dev docbook2x libcap-dev dh-apparmor libcgmanager-dev \ +graphviz libseccomp-dev libglib-perl libgtk3-perl libnss3-dev libdlm-dev \ +libudev-dev + += Compile PVE packages from Source = + +Download and install the following git modules in order from top to bottom: # git clone git://git.proxmox.com/git/ You currently need the following packages: +libqb.git corosync-pve.git -openais-pve.git pve-common.git pve-cluster.git -redhat-cluster-pve.git lvm.git pve-access-control.git pve-storage.git pve-qemu-kvm.git qemu-server.git vncterm.git -vzquota.git -vzctl.git -fence-agents-pve.git -resource-agents-pve.git +spiceterm.git +#vzquota.git +#vzctl.git +#fence-agents-pve.git +#resource-agents-pve.git pve-manager.git -pve-kernel-2.6.32.git +#pve-kernel-3.10.0.git libiscsi.git -gfs2-utils.git +#gfs2-utils.git ksm-control-daemon.git +pve-container.git +pve-firewall.git +pve-kernel.git Most packages can be installed with 'make dinstall' command. @@ -66,8 +94,7 @@ You can view the source code at: https://git.proxmox.com -REST vs. SOAP -============= += REST vs. SOAP = We decided to change our SOAP API (1.X) and use a REST like API. The concept is described in [1] (Resource Oriented Architecture @@ -82,8 +109,7 @@ That framework, like any other AJAX toolkit, can talk directly to the REST API using JSON. So we were able to remove the server side template toolkit completely. -JSON and JSON Schema -==================== += JSON and JSON Schema = We use JSON as data format, because it is simple and parse-able by any web browser. @@ -108,8 +134,7 @@ So here is a summary of the advantage: - automatic generation of API documentation - easy way to create command line tools (using same API). -API Implementation (PVE::RESTHandler) -===================================== += API Implementation (PVE::RESTHandler) = All classes exposing methods on the API use PVE::RESTHandler as base class. @@ -198,8 +223,8 @@ C1->find_handler('GET', "/sub2/index") => C2::list2 The HTTP server use the URL (a path) to find the corresponding method. -References -========== += References = + [1] RESTful Web Services Web services for the real world