Puncte:1

cum să construiți un snap bazat pe un jre

drapel fr

Sunt dezvoltatorul jape, un editor formal de dovezi logice care folosește java pentru a oferi o interfață grafică și OCaml pentru a oferi un motor de demonstrație. (vezi rbornat/jape pe github). Încerc să împachetez jape ca o clipă. Snap-ul conține un jre, construit folosind jlink și JDK 11 de la adoptopenjdk. Începe prin a apela o clasă în jre.

Pentru a construi snap-ul a trebuit deja să includ atribute-build: [keep-execstack] pentru că compilatorul JIT (și o altă bibliotecă, am uitat ce) are nevoie de el.

Snap-ul funcționează cu --devmode și --dangerous. I-am spus să se conecteze dosare-personale deci poate ajunge la ~/.java, și conectat la :Acasă. Până acum, bine.

Dar gunoiul jre face o lot de acces la fișierele de sistem, afișate mie de snappy-debug. De exemplu, începe cu

= AppArmor =
Ora: 14 august 18:49:17
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/proc/1/cgroup" pid=40869 comm="java" requested_mask="r" denied_mask="r" fsuid =1000 ouid=0
Fișier: /proc/1/cgroup (citește)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/@{pid}/cgroup”

= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALLOWED" operation="open" profile="snap.jape.jape" name="/proc/40869/coredump_filter" pid=40869 comm="java" requested_mask="w" denied_mask="w" fsuid =1000 ouid=1000
Fișier: /proc/40869/coredump_filter (scriere)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/@{pid}/coredump_filter”

= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="truncate" profile="snap.jape.jape" name="/proc/40869/coredump_filter" pid=40869 comm="java" requested_mask="w" denied_mask="w" fsuid =1000 ouid=1000
Fișier: /proc/40869/coredump_filter (scriere)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/@{pid}/coredump_filter”

= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/proc/sys/kernel/core_pattern" pid=40869 comm="java" requested_mask="r" denied_mask="r " fsuid=1000 ouid=0
Fișier: /proc/sys/kernel/core_pattern (citește)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/sys/kernel/core_pattern”

= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/proc/sys/kernel/core_uses_pid" pid=40869 comm="java" requested_mask="r" denied_mask="r " fsuid=1000 ouid=0
Fișier: /proc/sys/kernel/core_uses_pid (citește)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/sys/kernel/core_uses_pid”

= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/proc/1/cgroup" pid=40869 comm="java" requested_mask="r" denied_mask="r" fsuid =1000 ouid=0
Fișier: /proc/1/cgroup (citește)
Sugestie:
* ajustați programul pentru a nu accesa „@{PROC}/@{pid}/cgroup”

iar mai târziu petrece mult timp citind lucruri despre memorie

= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory .limit_in_bytes" pid=40869 comm="java" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Fișier: /sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory.limit_in_bytes (citește)
Sugestii:
* ajustați programul pentru a nu accesa „/sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory.limit_in_bytes”
* ajustați programul pentru a nu accesa „/sys/fs/cgroup/memory/user.slice/user-[0-9]*.slice/user@[0-9]*.service/memory.limit_in_bytes”

= AppArmor =
Ora: 14 august 18:49:18
Jurnal: apparmor="ALOWED" operation="open" profile="snap.jape.jape" name="/sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory .usage_in_bytes" pid=40869 comm="java" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Fișier: /sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory.usage_in_bytes (citește)
Sugestii:
* ajustați programul pentru a nu accesa „/sys/fs/cgroup/memory/user.slice/user-1000.slice/[email protected]/memory.usage_in_bytes”
* ajustați programul pentru a nu accesa „/sys/fs/cgroup/memory/user.slice/user-[0-9]*.slice/user@[0-9]*.service/memory.usage_in_bytes”

Nu știu cum să fac asta o clipă. The fișiere-sistem interfața spune că snap-ul nu trebuie să se uite la /etc sau /proc; cel aspect mecanismului nu-i place să se conecteze la proc/1/cgroup (care este tot ce am încercat până acum) și ar trebui să ofer cumva timpul de rulare uid și pid valori pentru a descrie ceea ce se întâmplă. Cu toate acestea, documentația snapcraft pentru java nu indică niciuna dintre aceste dificultăți.

Ajutor?

user535733 avatar
drapel cn
Aceasta pare a fi o întrebare bună pentru experții Snapcraft de la snap.io.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.