scriptek

Programozás, programnyelvek, kiegészítők, alkalmazások, programnyelvek, programfejlesztéssel kapcsolatos témák, közvetlenül a programozással összefüggő kérdések
Avatar
KuLuSz
Adminisztrátor
Hozzászólások: 606
Csatlakozott: 2014.06.17. 21:19

Re: scriptek

Hozzászólás Szerző: KuLuSz »

annyira nem kenem a dolgot ... ott van facén a szkript a jelenlegi formájában. nézd meg a text.txt fájl tartalmát, azaz összes függőség , aztán nézd meg a main_dep.txt az már a szürt fájllista ... pl ilyen alapdolgok mint a busybox és alap parancsok szóba se jön a szkriptben .. a szkript csak a builtin könyvtár fájljait és csomagjait vizsgálja egyenlőre :) a szkript lefuttatja/nézi az összes bináris fájl függőség listáját a builtin "fájlokból".
-<(].K.u.L.u.S.z.[)>-
-----------------------------------------------
Elérhetőségeim: Angol irc csevegő, (reg mentes) Discord, YouTube

Avatar
S-kami
Adminisztrátor
Hozzászólások: 1089
Csatlakozott: 2014.04.16. 12:54
Kapcsolat:

Re: scriptek

Hozzászólás Szerző: S-kami »

Ja, értem, köszönöm...
Puppy linux ! Mert megérdemlem !
Gyertek fel a csetre ! Katt ide a csevegéshez: https://discord.gg/9pm6rTfG5s

Avatar
KuLuSz
Adminisztrátor
Hozzászólások: 606
Csatlakozott: 2014.06.17. 21:19

Re: scriptek

Hozzászólás Szerző: KuLuSz »

Na most sikerült kisilabizálni hogy az eredeti terv szerint listázza ki a cuccot , alias a nem törlendő függőségeket .
-<(].K.u.L.u.S.z.[)>-
-----------------------------------------------
Elérhetőségeim: Angol irc csevegő, (reg mentes) Discord, YouTube

Avatar
S-kami
Adminisztrátor
Hozzászólások: 1089
Csatlakozott: 2014.04.16. 12:54
Kapcsolat:

Re: scriptek

Hozzászólás Szerző: S-kami »

:roll:
... és meg is osztod velünk itt?
:mrgreen:
Puppy linux ! Mert megérdemlem !
Gyertek fel a csetre ! Katt ide a csevegéshez: https://discord.gg/9pm6rTfG5s

Avatar
KuLuSz
Adminisztrátor
Hozzászólások: 606
Csatlakozott: 2014.06.17. 21:19

Re: scriptek

Hozzászólás Szerző: KuLuSz »

ez még egyenlőre csak kísérlet valamire , igaz kárt nem tesz a rendszerben , majd este kirakom , nem annál a gépnél vagyok ... nameg nincs még program formája :)
-<(].K.u.L.u.S.z.[)>-
-----------------------------------------------
Elérhetőségeim: Angol irc csevegő, (reg mentes) Discord, YouTube

Avatar
KuLuSz
Adminisztrátor
Hozzászólások: 606
Csatlakozott: 2014.06.17. 21:19

Re: scriptek

Hozzászólás Szerző: KuLuSz »

no itt a szkript a jelenlegi állapotában :

Kód: Egész kijelölése

#!/bin/sh
rm /text.txt
D=$HOME/.packages/builtin_files
for PKG in `ls $D`
do
 for x in `cat $D/$PKG`
 do 
  if [ -d $x ];then
   export DIR=$x
  else 
   SEND=`file $DIR/$x | grep "executable," | cut -f1 -d':'`
   if [ ! -z "$SEND" ];then
    for dep in `ldd $SEND | cut -f3 -d' '`
    do
     echo $dep >> /text.txt
    done
   fi
  fi
 done
done
rm /text_main_deps.txt
for file in `cat /text.txt`
do
 if [ "$(cat /text.txt | grep -c -m 2 $file)" -gt "1" ];then
  if [ -z $(cat /text_main_deps.txt | grep $file) ];then
   echo "$file" >> /text_main_deps.txt
  fi 
 fi
done
A szkript átolvas minden fájlt a /root/.packages/builtin_files könyvtárban . Ezek azok a csomagok amiket a fejlesztő telepített a rendszerbe. Természetesen ezek a fájlok csak 1 listát tartalmaznak a fájlokról és helyükről . A szkript kiolvassa és szüri a talált fájlokat a szerint hogy melyik futtatható és bináris fájl. Majd a szkript ezeknek a fájloknak kérdezi le a függőségeit , a függőség fájlok listája a /text.txt fájlban lesz leírva . Több függőség többször is szerepel majd a listában, és a szkript ez alapján ítéli meg a fő függőségeket ami a /text_main_deps.txt fájlban lesz leírva .
Ezt a szkript részletet belehet építeni a jelenleg használt gui-ba is némi módosítással ... de lehet új felületet is hozzá készíteni a csomagok törléséhez/gyomlálásához .
-<(].K.u.L.u.S.z.[)>-
-----------------------------------------------
Elérhetőségeim: Angol irc csevegő, (reg mentes) Discord, YouTube

Avatar
KuLuSz
Adminisztrátor
Hozzászólások: 606
Csatlakozott: 2014.06.17. 21:19

Re: scriptek

Hozzászólás Szerző: KuLuSz »

Nemrég nézegettem a csomagkezelő szkriptjeit és az eltávolító résznél nem láttam függőség szűrést , alias mindent töröl ha olyan van a csomagban ... viszont az érdekes hogy telepítésnél ill függőség ellenörzésnél ki íratták a hiányzó függőségeket ... nem értem mért lett volna olyan nehéz ezt megcsinálni a törlésnél is ...
Eddig azon agyaltam hogy csináljak-e új guit a szkriptnek , de valszeg azt fogom csinálni hogy egybe gyúrom az user és a fejlesztő által alkalmazott csomagokat és onnan lehet majd törölni biztonságosan ...
-<(].K.u.L.u.S.z.[)>-
-----------------------------------------------
Elérhetőségeim: Angol irc csevegő, (reg mentes) Discord, YouTube

Avatar
KuLuSz
Adminisztrátor
Hozzászólások: 606
Csatlakozott: 2014.06.17. 21:19

Re: scriptek

Hozzászólás Szerző: KuLuSz »

no itt tart a gui , mosmá csak össze kell kombinálni mindent mindennel :ugeek: :lol:

Kód: Egész kijelölése

#!/bin/sh
yaf-splash -bg orange -close never -text "A csomag eltávolító program hamarosan elindul." &
PID1=$!
rm /test_pkg.txt
for i in $(ls /root/.packages | grep '\.files$')
do
 echo "/root/.packages/$i" >> /test_pkg.txt
done
for i in $(ls /root/.packages/builtin_files)
do
 echo "/root/.packages/builtin_files/$i" >> /test_pkg.txt
done
INSTALLEDPKGS=""
for ONEPKG in $(cat /test_pkg.txt)
do
 if [ $(dirname $ONEPKG) == "/root/.packages" ];then
 USER="Saját csomag"
 else
 USER="Beépített csomag"
 fi
 PKGS=$(basename $ONEPKG | sed 's/.files//')
 INSTALLEDPKGS="$INSTALLEDPKGS
 <item>${PKGS} | ${USER} </item>
 "
done
export MAIN_DIALOG="
<window title=\"Csomag eltávolító\">
 <vbox>
   <text>
    <label>Az alábbi listában találod az általad, és a fejlesztő által telepített csomagokat. FRUGAL telepített rendszer esetén, csak a saját csomagjaidat tudod eltávolítani a mentésfájlodból.Amennyiben új rendszert (remaster) készítesz, tudod törölni a beépített csomagokat is.Az általad telepített csomagokat a lista tetején találod.</label>
   </text>
   <text>
    <label>FIGYELEM: A programmal súlyos károkat tehetünk a rendszerben.</label>
   </text>
   <table>
    <width>400</width><height>300</height>
    <variable>LIST</variable>
    <label>Csomag neve                              |Kitől</label>
    ${INSTALLEDPKGS}
   </table>
   <hbox>
    <button ok></button>
    <button cancel></button>
   </hbox>
 </vbox>
</window>
"
kill $PID1
gtkdialog --program=MAIN_DIALOG --center
-<(].K.u.L.u.S.z.[)>-
-----------------------------------------------
Elérhetőségeim: Angol irc csevegő, (reg mentes) Discord, YouTube

Avatar
KuLuSz
Adminisztrátor
Hozzászólások: 606
Csatlakozott: 2014.06.17. 21:19

Re: scriptek

Hozzászólás Szerző: KuLuSz »

no , tulajdonképen kész van a szkript . egyenlőre nem töröl semmit , csak kiírja 1 fájlba mit törölne ha ... eddig jó minden, müködik a dolog. de a próba csomagnál (xorg_base) olyat csinál hogy törli a függőséget mivel nem szerepel többször a szűrt listában , igen ám csakhogy a fájl mellett van még 2 link is ami a fájlra mutat , viszont azok nem törlődnek mivel nincs a csomag meghatározásában. most 2 verzió áll fenn elméletem szerint :
a, használja a függőséget más program is , ezért van linkelve
b, vagy megírom a szkriptet úgy hogy a hasonló nevü fájlokat is törölje
De valószinüleg az első verzió áll fenn , akkor viszont a szürésnél kell babrálni hogy csak tőfájlneveket nézzen illetve azoknak a linkes változatait . Kérdés jól látom-e a dolgot ... :)
-<(].K.u.L.u.S.z.[)>-
-----------------------------------------------
Elérhetőségeim: Angol irc csevegő, (reg mentes) Discord, YouTube

Avatar
nocsak
Hozzászólások: 408
Csatlakozott: 2014.09.29. 15:01
Kapcsolat:

Re: scriptek

Hozzászólás Szerző: nocsak »

Üdv ismét!

Van egy rossz meg egy kevésbé jó hírem, kezdem a rosszal:

Az a mappa amit KuLuSz kolléga alakuló szkriptje vizsgál, tartalmazza a puppy beépített csomagjainak részletes hollétét, dirib-darabjait. Annyira nekiiramodtam egy lehetetlen feladatnak, hogy az egyértelműség kedvéért szükséges néhány alapvető dolgot tisztáznom. Szóval a szkript egyik fele amit vizsgál, az a

Kód: Egész kijelölése

$HOME/.packages/builtin_files
mappa.
És ezeken belül csomagok nevével találhatók fájlok amikben a csomag útvonalai és egyéb járulékos dolgainak elérése szerepel stb (ha jól értelmeztem).
És itt jött részemről a szkript megalkotója felé egy felvetés azokról a csomagokról, amiket pl remaszter előtt feltelepítettem a rendszerbe, majd remasztereltem velük a puppy-t, és az új iso már alapértelmezetten felvértezve van így a telepített csomagokkal, amikkel csupán egy hatalmas gond van, eddig azt hittem nincs róluk adatbázis, és ha már nem kellenek hogyan uninstalláljam őket úgy, hogy a beépülő csomagok között nem szerepelnek? Magamra utalva a problémával és a lehetséges megoldással, végül az jutott eszembe, mi van ha ezekről a csomagokról is van adatbázis, és melyik lehet az? Szintúgy visszanavigáltam a

Kód: Egész kijelölése

$HOME/.packages
mappába, ahol hasra ütve megnéztem a következő állomány tartalmát Geany-vel:

Kód: Egész kijelölése

$HOME/.packages/woof-installed-packages
És bizony ez az a fájl, amely ha nem is részletesen, de tartalmazza azon csomagok teljes listáját, amik a puppyban benne vannak de sem a PPM által sem pedig a beépülő csomageltávolítóval nem listázhatóak ki ergo egyáltalán nem lehet őket eltávolítani így. Elkezdtem hát szerény tudásommal átvariálni KuLuSz legutóbbi szkriptjét, és arra jöttem rá, hogy ezek lényegében két külön olyan adatbázisok (ez a rossz hír), melyek egymást nem vizsgálják, és így előfordulhat hogy a beépülő csomagoknál nem, de a többi nem vizsgált csomagoknál amik szerepelnek a woof-installed-packages-ben már sérülhetnek valamilyen mértékben akár függőség szempontjából például, hiszen azok nem kerülnek vizsgálatra.

A kevésbé jó hír pedig az, hogy módosítható a szkript egy olyan eljárással, amivel az összes létező csomag megkereshető és annak tükrében megvizsgálható a függőségek ütközése stb, ám ez valószínű napokig tartana mire lefutna. A find parancsra gondolok, ami kilistázná az ideiglenes fájlokba a csomagokat, és eltávolításnál a listából már célzottabb hatékonysággal lehetne őket törölni. Tehát a beépített csomagok listája nem egyenlő az összes csomag listájával, így még nem zárható ki sérülés adott csomagok eltávolításánál.

Válasz küldése

Vissza: “Programozás, alkalmazásfejlesztés”