Ankündigung

Einklappen
Keine Ankündigung bisher.

knxd auf Alpine Linux

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    knxd auf Alpine Linux

    ich würde gern ein schlankeres image auf alpine linux ( 6 MB klein) erstellen, bekomme es aber nicht hin knxd in alpine linux zu kompilen !

    Bitte helft mir diese Hürde zu überwinden.


    Dockerfile

    Code:
    FROM alpine:3.5
    
    #Build-Depends: debhelper (>= 7.0.0), autotools-dev,autoconf, automake, libtool,libusb-1.0-0-dev (>= 1.0.9), pkg-config, libsystemd-dev (>= 228) | libsystemd-daemon-dev (>= 200) | base-files (<< 8),
    #  debianutils, dh-systemd | base-files (<< 8),   libev-dev
    # OK autoconf, automake, libtool
    RUN apk update
    RUN apk add --no-cache build-base gcc abuild binutils binutils-doc gcc-doc git libev-dev automake autoconf  libtool
    RUN git clone https://github.com/knxd/knxd.git
    
    #cmake
    #RUN apk add --no-cache cmake cmake-doc extra-cmake-modules extra-cmake-modules-doc
    #alpine-sdk
    #RUN apk add --no-cache alpine-sdk
    Zuletzt geändert von schlaubi666; 11.04.2017, 21:24.

    #2
    Tolle Problem Beschreibung

    Kommentar


      #3
      ich bin mir nicht sicher ob du sarkastisch bist, oder es ernst meinst.


      also zum testes starte ich alpine linux so:

      Code:
      docker run --name alpine -it --rm alpine:3.5 /bin/sh

      dort bin ich soweit gekommen

      Code:
      cd
      apk update
      apk add --no-cache build-base gcc abuild binutils binutils-doc gcc-doc git libev-dev automake autoconf  libtool
      git clone https://github.com/knxd/knxd.git
      cd knxd
      ./configure --disable-systemd --enable-eibnetip --enable-eibnetserver --enable-eibnetiptunnel

      Fehler beim configure
      Code:
      checking for compiler option -std=c++0x... yes
      checking for pkg-config... /usr/bin/pkg-config
      checking pkg-config is at least version 0.9.0... yes
      checking argp.h usability... no
      checking argp.h presence... no
      checking for argp.h... no
      configure: error: argp_parse not found
      Zuletzt geändert von schlaubi666; 11.04.2017, 21:24. Grund: besser so ?

      Kommentar


        #4
        Sarkastisch. Wobei mir dein Dockerfile nicht angezeigt wurde.
        Aber einen Fehler sehe ich noch nicht.

        Warum brauchst du ein kleines Image?
        Zuletzt geändert von henfri; 11.04.2017, 21:05.

        Kommentar


          #5
          och brauchen ?!?! ich versuche viel mit alpine zu machen

          Kommentar


            #6
            http://bfy.tw/BBBP

            Kommentar


              #7
              Menno … steht doch laut und deutlich da, was schief läuft:
              Code:
               
               checking for argp.h... no
              Wenn musl-libc das nicht hat, dann musst du den alpine-Leuten sagen sie sollen argp.h portieren, eine alternative Implementierung finden, das selbst tun, oder was auch immer.

              Ich befürchte außerdem, dass dir danach gleich das nächste und übernächste Problem um die Ohren fliegen wird.

              Das ist kein knxd-Problem und, ganz ehrlich: wenn du sowas nicht selber lösen oder zumindest erkennen kannst, dann solltest du für das Selberbauen von Software ein Standard-Linux mit aktuellem glibc verwenden.
              DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

              Kommentar


                #8
                … mal ganz abgesehen davon: nächstes Mal eröffne bitte ein neues Thema! was hat dein Problem mit dem Ursprungsbeitrag hier zu tun??

                EDIT: Ich habe die Beiträge re Alpine Linux in ein neues Thema verschoben.
                Zuletzt geändert von Smurf; 12.04.2017, 10:54.
                DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

                Kommentar


                  #9
                  Hallo,

                  Zitat von Smurf Beitrag anzeigen
                  Das ist kein knxd-Problem und, ganz ehrlich: wenn du sowas nicht selber lösen oder zumindest erkennen kannst, dann solltest du für das Selberbauen von Software ein Standard-Linux mit aktuellem glibc verwenden.
                  ... und all die Probleme nur wegen "ich versuche viel mit alpine zu machen".

                  Gerade bei Docker -das war ja das Einsatzgebiet- kannst du ja beliebige Container mit beliebigen Distributionen als Grundlage kombinieren.

                  Gruß,
                  Hendrik

                  Kommentar


                    #10
                    apk add --no-cache argp-standalone linux-headers libusb-dev

                    gemacht und 3 Hürden weniger ...

                    Code:
                    ./configure --disable-systemd --enable-eibnetip --enable-eibnetserver --enable-eibnetiptunnel
                    liefert jetzt

                    Code:
                    config.status: creating systemd/knxd.service
                    config.status: creating systemd/knxd.socket
                    config.status: creating rpm/Makefile
                    config.status: error: cannot find input file: `rpm/knxd.spec.in'
                    und was soll das bitte bedeuten ? Ich weis auch das da eine Datei fehlt ..... aber warum ?

                    Kommentar


                      #11
                      in welchem Zweig bist du? In v0.12 ist rpm/knxd.spec.in im git-Archiv. Ich wüsste nicht, wer auf die Idee kommen sollte, diese zu löschen. In v0.14 gibt es sie nicht mehr, ebensowenig wie ein Makefile in diesem Verzeichnis.

                      Außerdem:
                      Code:
                       
                       git clone https://github.com/knxd/knxd.git cd knxd ./configure …
                      kann in dieser Form nichts geliefert haben – jedenfalls nichts was du da schreibst – weil im knxd-Archiv gar kein ./configure drin ist. Das wird erst von bootstrap.sh gebaut.
                      DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

                      Kommentar


                        #12
                        habe wohl seit 0.12 damit experimentiert und auch mal zwischenrein bootstrap.sh ausgeführt

                        also alles auf anfang nun fäuft es !!!!


                        Danke für die Schubser in die richtige Richtung !!!!


                        Dockerfile
                        Code:
                        FROM alpine:3.5
                        
                        RUN apk update
                        RUN apk add --no-cache build-base gcc abuild binutils binutils-doc gcc-doc git libev-dev automake autoconf  libtool argp-standalone linux-headers libusb-dev cmake cmake-doc dev86
                        RUN cd
                        RUN git clone https://github.com/knxd/knxd.git
                        RUN cd knxd
                        RUN ./bootstrap.sh
                        RUN ./configure --disable-systemd --enable-eibnetip --enable-eibnetserver --enable-eibnetiptunnel
                        RUN mkdir /root/knxd/src/include/sys && ln -s /usr/lib/bcc/include/sys/cdefs.h  /root/knxd/src/include/sys
                        RUN cd ../..
                        RUN make
                        RUN make install
                        
                        RUN apk del --no-cache build-base gcc abuild binutils binutils-doc gcc-doc git libev-dev automake autoconf  libtool argp-standalone linux-headers libusb-dev cmake cmake-doc dev86
                        
                        RUN knxd argumente

                        Kommentar


                          #13
                          Zitat von henfri Beitrag anzeigen
                          Hallo,


                          ... und all die Probleme nur wegen "ich versuche viel mit alpine zu machen".

                          Gerade bei Docker -das war ja das Einsatzgebiet- kannst du ja beliebige Container mit beliebigen Distributionen als Grundlage kombinieren.

                          Gruß,
                          Hendrik
                          Naja, prinzipiell ist Alpine immer eine sehr gute, weil resourceschonende Lösung. Ich selber habe auch ca. 15 Container parallel laufen, der Großteil davon mit Alpine als Basisimage.

                          Gruss,

                          Stefan



                          Sonos

                          Kommentar


                            #14
                            Zitat von pfischi Beitrag anzeigen
                            Naja, prinzipiell ist Alpine immer eine sehr gute, weil resourceschonende Lösung.
                            Spart es nur Festplattenspeicher, oder auch RAM/CPU (würde mich wundern).
                            Festplattenspeicher habe ich ausreichend und Docker ist ja klug genug das Base-Image nur einmal zu speichern.

                            Gruß,
                            Hendrik

                            Kommentar


                              #15
                              Zitat von schlaubi666 Beitrag anzeigen
                              habe wohl seit 0.12 damit experimentiert und auch mal zwischenrein bootstrap.sh ausgeführt

                              also alles auf anfang nun fäuft es !!!!


                              Danke für die Schubser in die richtige Richtung !!!!


                              Dockerfile
                              Code:
                              FROM alpine:3.5
                              
                              RUN apk update
                              RUN apk add --no-cache build-base gcc abuild binutils binutils-doc gcc-doc git libev-dev automake autoconf libtool argp-standalone linux-headers libusb-dev cmake cmake-doc dev86
                              RUN cd
                              RUN git clone https://github.com/knxd/knxd.git
                              RUN cd knxd
                              RUN ./bootstrap.sh
                              RUN ./configure --disable-systemd --enable-eibnetip --enable-eibnetserver --enable-eibnetiptunnel
                              RUN mkdir /root/knxd/src/include/sys && ln -s /usr/lib/bcc/include/sys/cdefs.h /root/knxd/src/include/sys
                              RUN cd ../..
                              RUN make
                              RUN make install
                              
                              RUN apk del --no-cache build-base gcc abuild binutils binutils-doc gcc-doc git libev-dev automake autoconf libtool argp-standalone linux-headers libusb-dev cmake cmake-doc dev86
                              
                              RUN knxd argumente
                              Ich musste folgende Zeile ändern, damit der knxd im Container auch alle notwendigen Libraries findet:

                              Code:
                              RUN apk del --no-cache build-base abuild binutils binutils-doc gcc-doc git automake autoconf  libtool argp-standalone cmake cmake-doc dev86
                              (gcc, libev-dev, libusb-dev, linux-headers dürfen nicht entfernt werden)

                              Version v0.14 von knxd funktioniert auch, hier muss man noch entsprechend nach dem git-Checkout ein
                              Code:
                              RUN git checkout v0.14
                              einfügen.

                              Gruss,

                              Stefan
                              Sonos

                              Kommentar

                              Lädt...
                              X