Porque todos os arquivos executaveis do programa libreoffice remetem ao arquivo /usr/lib/libreoffice

1. Porque todos os arquivos executaveis do programa libreoffice remetem ao arquivo /usr/lib/libreoffice

Daniel
DanielDutra

(usa Linux Mint)

Enviado em 10/09/2016 - 21:35h

Olá pessoal, boa noite tudo bem? Espero que sim!

Não sou programador sou apenas um curioso querendo entender como as coisas funcionam no sistema e para isso escolhi fuçar o programa Libreoffice para ver o que a por trás de seu funcionamento.

A distro que estou usando é o manjaro por isso alguns comandos que colocarei aqui são especificas dela.

Quando digito
pacman -Ql libreoffice-fresh | grep /usr/bin/ 
consigo obter a lista de todos os arquivos executaveis que compoem o pacote libreoffice. (Ou seja todos aqueles arquivos que se eu executar irá abrir uma parte do programa)

[danieldutra@programadoreslivres ~]$ pacman -Ql libreoffice-fresh | grep /usr/bin/
libreoffice-fresh /usr/bin/
libreoffice-fresh /usr/bin/libreoffice
libreoffice-fresh /usr/bin/lobase
libreoffice-fresh /usr/bin/localc
libreoffice-fresh /usr/bin/lodraw
libreoffice-fresh /usr/bin/loffice
libreoffice-fresh /usr/bin/lofromtemplate
libreoffice-fresh /usr/bin/loimpress
libreoffice-fresh /usr/bin/lomath
libreoffice-fresh /usr/bin/loweb
libreoffice-fresh /usr/bin/lowriter
libreoffice-fresh /usr/bin/soffice
libreoffice-fresh /usr/bin/unopkg


Imagem 1 = http://i.imgur.com/h5E0pnE.png ( por eu ser imaturo e noob acho engraçado que todos os executaveis são considerados script shell e não executaveis binarios propriamente)

Entrei na pasta /usr/bin para abrir os arquivos pelo gerenciador de arquivos thunar (para ver o quer acontece) e todos remetem ao seguinte endereço /usr/lib/libreoffice/program/soffice Veja a imagem = http://i.imgur.com/kBDuAOm.png

A unica mudança é o sufixo que aparece no final dos arquivos = http://i.imgur.com/NAn5p8Y.png

A duvida
Se os arquivos são executaveis porque eles remetem a outro arquivo que é considerado uma biblioteca?
/usr/lib/libreoffice/program/soffice

Agora se eu digitar no terminal os caminhos a seguir e apertar ENTER todos eles irão abrir um pedaço do libreoffice
/usr/bin/libreoffice
/usr/bin/lobase
/usr/bin/localc
/usr/bin/lodraw
/usr/bin/loffice
/usr/bin/lofromtemplate
/usr/bin/loimpress
/usr/bin/lomath
/usr/bin/loweb
/usr/bin/lowriter
/usr/bin/soffice
/usr/bin/unopkg


Outra duvida Porque os arquivos /usr/bin/libreoffice /usr/bin/loffice /usr/bin/soffice /usr/lib/libreoffice/program/soffice desempenham a mesma função de abrir o Libreoffice? Não bastava apenas um?

Porque se eu digitar no terminal /usr/lib/libreoffice/program/soffice ele abre o programa (libreoffice) e se eu digitar no gerenciador de arquivos thunar /usr/lib/libreoffice/program/soffice ele abre esse arquivo = http://i.imgur.com/ekiOPId.png


Uma conclusão que cheguei é que cada programa precisa de um executavel diferente pois apesar de fazer parte de um conjunto de aplicativos obviamente são programas diferentes.

Espero ter sido claro nas minhas duvidas e o meu objetivo com elas é tentar compreender como um programa funciona e é distribuido pela arvore de diretorios. Pode parecer duvidas sem sentidos mas para mim parece que elas irão me ajudar a ter um entendimento melhor do sistema.

Desde já agradeço de coração.

Gratidão!


  


2. MELHOR RESPOSTA

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 11/09/2016 - 01:25h

Não sou programador, no máximo sou aspirante, então se eu estiver errado peço aos colegas que corrijam-me.

Vamos por partes, vou tomar como exemplo o comando ls, sem argumentos esse binário simplesmente lista diretórios e arquivos, certo? Mas se você der um man ls verá que existem inúmeros argumentos a serem passados para o binário via linha de comando.

Um argumento é o valor que você passa ao programa quando o chama.

Se o ls for executado sem argumentos ele consome uma quantidade de processamento, memória e etc. Mas se chamado com argumentos ele consumirá mais para suprir as necessidades do usuário.

O libre-office, pelo que pude ver, somente dividiu suas chamadas (ao mesmo programa) em executáveis (sh) diferentes com argumentos diferentes, pois no caso de chamar puramente o programa ele colocaria na memória coisas que não seriam usadas e no momento e consumiria mais recursos (bem mais).

Não estudei o fonte mais deve existir uma base (layout) para todas as ramificações do programa e o argumento entra para carregar uma parte em específico na memória, usando somente o necessário no momento da execução.

É como querer ouvir uma música e seu player tocar toda sua playlist ao mesmo tempo, vai atrapalhar e consumirá bem mais recursos, mas se passar a música da vez como um argumento ela será reproduzida sozinha sem interferência e consumirá bem menos recursos da máquina.

Espero ter ajudado!

3. Re: Porque todos os arquivos executaveis do programa libreoffice remetem ao arquivo /usr/lib/libreoffice

Daniel
DanielDutra

(usa Linux Mint)

Enviado em 11/09/2016 - 03:20h

ctw6av escreveu:

Não sou programador, no máximo sou aspirante, então se eu estiver errado peço aos colegas que corrijam-me.

Vamos por partes, vou tomar como exemplo o comando ls, sem argumentos esse binário simplesmente lista diretórios e arquivos, certo? Mas se você der um man ls verá que existem inúmeros argumentos a serem passados para o binário via linha de comando.

Um argumento é o valor que você passa ao programa quando o chama.

Se o ls for executado sem argumentos ele consome uma quantidade de processamento, memória e etc. Mas se chamado com argumentos ele consumirá mais para suprir as necessidades do usuário.

O libre-office, pelo que pude ver, somente dividiu suas chamadas (ao mesmo programa) em executáveis (sh) diferentes com argumentos diferentes, pois no caso de chamar puramente o programa ele colocaria na memória coisas que não seriam usadas e no momento e consumiria mais recursos (bem mais).



Obrigado pela resposta companheiro ctw6av. Com certeza ampliou o meu pensamento. Mas confesso que como sou muito iniciante contoniuo com duvidas. E a proposito acompanho suas respostas e são bem completas voce está no caminho de um bom programador sim.

Bem pela sua analogia pelo que pude entender executar apenas o comando ls seria o mesmo que executar o /usr/bin/libreoffice pois eles podem ser chamados puros sem argumentos. Já se acrescentar argumentos novas funcionalidades ao comando e ao programa são aderidas fazendo com que o binario do ls possua um argumento que desempenhe uma função extra incrementando e expandindo suas funções. Por exemplo: ls -l Assim como no libreoffice. Pelo que estou entendendo esses binarios separados (usr/bin/lobase /usr/bin/localc /usr/bin/lodraw etc... ) como voce disse seriam como se fosse argumentos que juntos constiuem a ferramenta completa libreoffice. É mais ou menos isso que voce quis me dizer?

Mas eu acho que ja entendi que cada parte do conjunto de suite do libreoffice possui seu aplicativo separado que possui um binario especifico = http://i.imgur.com/M4oaNQy.png

Não estudei o fonte mais deve existir uma base (layout) para todas as ramificações do programa e o argumento entra para carregar uma parte em específico na memória, usando somente o necessário no momento da execução.


Não tenho noção nenhuma de programação mas você acha que se eu baixa-se o fonte eu conseguiria visualizar a base e as ramificações que estão escritas no codigo que diz que determinado arquivo remete a outro arquivo?


É como querer ouvir uma música e seu player tocar toda sua playlist ao mesmo tempo, vai atrapalhar e consumirá bem mais recursos, mas se passar a música da vez como um argumento ela será reproduzida sozinha sem interferência e consumirá bem menos recursos da máquina.

Espero ter ajudado!


Então no caso a playlist seria todos os executaveis do libreoffice se e executa-los todos obviamente irá consumir mais recursos mas se eu executar um exectuavel por ver ele nao terá interferencia de outro pacote e ira consumir menos recursos é isso?

O que eu percebo é que essa estrutura de divisão dos programas diminui significatifamente o seu tamanho e a organização do programa (pacote) pela estrutura faz com que se possa ter um controle do que pode ser executar, excluir, modificar.

Espero conseguir entender essa modularização que estou percebendo no GNU.

Sim voce me ajudou.

Sou muito grato! =)


4. Re: Porque todos os arquivos executaveis do programa libreoffice remetem ao arquivo /usr/lib/libreof

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 11/09/2016 - 14:14h

Não tenho noção nenhuma de programação mas você acha que se eu baixa-se o fonte eu conseguiria visualizar a base e as ramificações que estão escritas no código que diz que determinado arquivo remete a outro arquivo?


Talvez "não" por dois motivos:
1 -> Um programa assim deve ser um pouco difícil de entender para quem programa a pouco tempo.
B -> Eles não se remetem a arquivos diferente e sim ao mesmo executável só que com argumentos diferentes. Ex:


/usr/lib/libreoffice/program/soffice --base "$@"
/usr/lib/libreoffice/program/soffice --calc "$@"
/usr/lib/libreoffice/program/soffice --draw "$@"
/usr/lib/libreoffice/program/soffice --impress "$@"
/usr/lib/libreoffice/program/soffice --math "$@"


O script soffice se executado sem argumentos ele vai abrir uma janela para que você possa escolher a ramificação que quer usar, repare na ultima linha do debug.
ctw6av@localhost:~$ bash -x /usr/lib/libreoffice/program/soffice
+ LO_SAVE_LC_ALL=
+ LC_ALL=C
+ export LC_ALL
+ SAL_ENABLE_FILE_LOCKING=1
+ export SAL_ENABLE_FILE_LOCKING
++ pwd
+ sd_cwd=/home/ctw6av
+ sd_res=/usr/lib/libreoffice/program/soffice
+ '[' -h /usr/lib/libreoffice/program/soffice ']'
++ dirname /usr/lib/libreoffice/program/soffice
+ cd /usr/lib/libreoffice/program
++ pwd
+ sd_prog=/usr/lib/libreoffice/program
+ cd /home/ctw6av
+ '[' -e /usr/lib/libreoffice/program/ooenv ']'
+ GDBTRACECHECK=
+ STRACECHECK=
+ VALGRINDCHECK=
+ RRCHECK=
+ checks=
+ EXTRAOPT=
+ test -n ''
+ test -n ''
+ echo ''
+ grep -q cc
+ case "`uname -s`" in
++ uname -s
+ LC_ALL=
+ '[' -n '' ']'
+ '[' -n '' -a -z '' ']'
+ exec /usr/lib/libreoffice/program/oosplash


A função desse script é distinguir entre quatro opções:
--record
--backtrace
--strace
--valgrind

Não entrarei em detalhes, até mesmo porque foge do meu conhecimento, mas posso dizer que essa é a função da variável "$@" na chamada de cada (sh)

A ultima linha do debug aponta para um executável chamado oosplash:
ctw6av@localhost:~$ file /usr/lib/libreoffice/program/oosplash
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32,
BuildID[sha1]=06469b0df776701f2f293819f330c27aef8ca52f, stripped


Esse sim tem que receber um argumento ou abrirá uma janela para escolha da ramificação, Veja o debug com um argumento:
ctw6av@localhost:~$ bash -x /usr/lib/libreoffice/program/soffice --calc
+ LO_SAVE_LC_ALL=
+ LC_ALL=C
+ export LC_ALL
+ SAL_ENABLE_FILE_LOCKING=1
+ export SAL_ENABLE_FILE_LOCKING
++ pwd
+ sd_cwd=/home/ctw6av
+ sd_res=/usr/lib/libreoffice/program/soffice
+ '[' -h /usr/lib/libreoffice/program/soffice ']'
++ dirname /usr/lib/libreoffice/program/soffice
+ cd /usr/lib/libreoffice/program
++ pwd
+ sd_prog=/usr/lib/libreoffice/program
+ cd /home/ctw6av
+ '[' -e /usr/lib/libreoffice/program/ooenv ']'
+ GDBTRACECHECK=
+ STRACECHECK=
+ VALGRINDCHECK=
+ RRCHECK=
+ checks=
+ EXTRAOPT=
+ test -n ''
+ test -n ''
+ for arg in '$@' '$EXTRAOPT'
+ case "$arg" in
+ echo ''
+ grep -q cc
+ case "`uname -s`" in
++ uname -s
+ LC_ALL=
+ '[' -n '' ']'
+ '[' -n '' -a -z '' ']'
+ exec /usr/lib/libreoffice/program/oosplash --calc


Repare que ele não leva a var "$@" na ultima chamada a oosplash, pois a var é do script soffice onde ela é entendida como uma argumento extra, como citado anteriormente. Se você for procurar pelo fonte para tentar estudar pode ir direto na parte do oosplash que deve estar claro as ramificações nele.

Espero ter ajudado e não confundido ainda mais você?



5. Re: Porque todos os arquivos executaveis do programa libreoffice remetem ao arquivo /usr/lib/libreoffice

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/09/2016 - 14:44h

Respondendo pra acompanhar este interessante tópico. :D

Com estas informações, talvez dê pra fazer até uma instalação personalizada do LibreOffice, tal como acontece no Janelas, onde se pode escolher quais componentes se quer instalar. Por exemplo, se eu não quiser o Base (porque não uso isso), posso escolher não instalá-lo.
Testarei isso quando tiver um tempo livre...

E obrigado aos a todos pelas informações deste tópico!
____________________________________
O melhor Sistema Operacional é aquele que você sabe usar e atende às suas necessidades.


6. Re: Porque todos os arquivos executaveis do programa libreoffice remetem ao arquivo /usr/lib/libreoffice

Daniel
DanielDutra

(usa Linux Mint)

Enviado em 11/09/2016 - 16:59h

ctw6av escreveu:

Não tenho noção nenhuma de programação mas você acha que se eu baixa-se o fonte eu conseguiria visualizar a base e as ramificações que estão escritas no código que diz que determinado arquivo remete a outro arquivo?


Talvez "não" por dois motivos:
1 -> Um programa assim deve ser um pouco difícil de entender para quem programa a pouco tempo.
B -> Eles não se remetem a arquivos diferente e sim ao mesmo executável só que com argumentos diferentes. Ex:


/usr/lib/libreoffice/program/soffice --base "$@"
/usr/lib/libreoffice/program/soffice --calc "$@"
/usr/lib/libreoffice/program/soffice --draw "$@"
/usr/lib/libreoffice/program/soffice --impress "$@"
/usr/lib/libreoffice/program/soffice --math "$@"


O script soffice se executado sem argumentos ele vai abrir uma janela para que você possa escolher a ramificação que quer usar, repare na ultima linha do debug.
ctw6av@localhost:~$ bash -x /usr/lib/libreoffice/program/soffice
+ LO_SAVE_LC_ALL=
+ LC_ALL=C
+ export LC_ALL
+ SAL_ENABLE_FILE_LOCKING=1
+ export SAL_ENABLE_FILE_LOCKING
++ pwd
+ sd_cwd=/home/ctw6av
+ sd_res=/usr/lib/libreoffice/program/soffice
+ '[' -h /usr/lib/libreoffice/program/soffice ']'
++ dirname /usr/lib/libreoffice/program/soffice
+ cd /usr/lib/libreoffice/program
++ pwd
+ sd_prog=/usr/lib/libreoffice/program
+ cd /home/ctw6av
+ '[' -e /usr/lib/libreoffice/program/ooenv ']'
+ GDBTRACECHECK=
+ STRACECHECK=
+ VALGRINDCHECK=
+ RRCHECK=
+ checks=
+ EXTRAOPT=
+ test -n ''
+ test -n ''
+ echo ''
+ grep -q cc
+ case "`uname -s`" in
++ uname -s
+ LC_ALL=
+ '[' -n '' ']'
+ '[' -n '' -a -z '' ']'
+ exec /usr/lib/libreoffice/program/oosplash


A função desse script é distinguir entre quatro opções:
--record
--backtrace
--strace
--valgrind

Não entrarei em detalhes, até mesmo porque foge do meu conhecimento, mas posso dizer que essa é a função da variável "$@" na chamada de cada (sh)

A ultima linha do debug aponta para um executável chamado oosplash:
ctw6av@localhost:~$ file /usr/lib/libreoffice/program/oosplash
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32,
BuildID[sha1]=06469b0df776701f2f293819f330c27aef8ca52f, stripped


Esse sim tem que receber um argumento ou abrirá uma janela para escolha da ramificação, Veja o debug com um argumento:
ctw6av@localhost:~$ bash -x /usr/lib/libreoffice/program/soffice --calc
+ LO_SAVE_LC_ALL=
+ LC_ALL=C
+ export LC_ALL
+ SAL_ENABLE_FILE_LOCKING=1
+ export SAL_ENABLE_FILE_LOCKING
++ pwd
+ sd_cwd=/home/ctw6av
+ sd_res=/usr/lib/libreoffice/program/soffice
+ '[' -h /usr/lib/libreoffice/program/soffice ']'
++ dirname /usr/lib/libreoffice/program/soffice
+ cd /usr/lib/libreoffice/program
++ pwd
+ sd_prog=/usr/lib/libreoffice/program
+ cd /home/ctw6av
+ '[' -e /usr/lib/libreoffice/program/ooenv ']'
+ GDBTRACECHECK=
+ STRACECHECK=
+ VALGRINDCHECK=
+ RRCHECK=
+ checks=
+ EXTRAOPT=
+ test -n ''
+ test -n ''
+ for arg in '$@' '$EXTRAOPT'
+ case "$arg" in
+ echo ''
+ grep -q cc
+ case "`uname -s`" in
++ uname -s
+ LC_ALL=
+ '[' -n '' ']'
+ '[' -n '' -a -z '' ']'
+ exec /usr/lib/libreoffice/program/oosplash --calc


Repare que ele não leva a var "$@" na ultima chamada a oosplash, pois a var é do script soffice onde ela é entendida como uma argumento extra, como citado anteriormente. Se você for procurar pelo fonte para tentar estudar pode ir direto na parte do oosplash que deve estar claro as ramificações nele.

Espero ter ajudado e não confundido ainda mais você?


Cara, companheiro ctw6av apesar de eu não saber ainda alguns temros tecnicos voce não me confundiu. Ao contrario vocẽ elucidou muitas coisas. Eu realmente fiquei intrigado porque todos os scripts possuem "$@" voce disse que é uma variavel que pertence ao script soffice e que ela é entendida como um argumento extra. Voce consegui esclarecer muitas coisas.
Na realidade eu queria é explorar ainda mais seus conhecimentos pedindo para voce me ajudar a esclarecer minhas duvidas mas ai seria pedir demais pois voce explicou tudo ja perfeitamente rs.

Percebi algo interessante.

No terminal se eu executar
[danieldutra@programadoreslivres ~]$ 
libreoffice-fresh /usr/bin/libreoffice
libreoffice-fresh /usr/bin/lobase
libreoffice-fresh /usr/bin/localc
libreoffice-fresh /usr/bin/lodraw
libreoffice-fresh /usr/bin/loffice
libreoffice-fresh /usr/bin/lofromtemplate
libreoffice-fresh /usr/bin/loimpress
libreoffice-fresh /usr/bin/lomath
libreoffice-fresh /usr/bin/loweb
libreoffice-fresh /usr/bin/lowriter
libreoffice-fresh /usr/bin/soffice
libreoffice-fresh /usr/bin/unopkg


Eu vou abrir os programas especificos. Percebi que por exemplo a palavra lobase significa libre-office base a palavra localc significa libre-office calc , lowriter significa libre-office writer etc... Pois esses foram os nomes que os desenvolvedores escolheram para colocar nos nomes dos binarios do pacote.

Se eu digitar no terminal localc vai abrir o libreoffice calc ou eu também posso digitar /usr/lib/libreoffice/program/soffice --calc "$@"

Digitar lowriter também é o mesmo que eu digitar /usr/lib/libreoffice/program/soffice --writer "$@"

Quando nós clicamos em algum programa na realidade nós estamos executando esses comandos. É como se fosse uma camada por trás que não vemos mas que está em execução.

Algumas coisas que não entendi da sua explicação foi o seguinte


A função desse script é distinguir entre quatro opções:
--record
--backtrace
--strace
--valgrind


Não entrarei em detalhes, até mesmo porque foge do meu conhecimento, mas posso dizer que essa é a função da variável "$@" na chamada de cada (sh), além disso o que é um debug? XD

Você me indica algo para estudar sobre o funcionamento do entendimento do codigo fonte dos programas e como os programas interagem com o linux?


7. Re: Porque todos os arquivos executaveis do programa libreoffice remetem ao arquivo /usr/lib/libreoffice

Daniel
DanielDutra

(usa Linux Mint)

Enviado em 11/09/2016 - 17:03h

Selinunte escreveu:

Respondendo pra acompanhar este interessante tópico. :D

Com estas informações, talvez dê pra fazer até uma instalação personalizada do LibreOffice, tal como acontece no Janelas, onde se pode escolher quais componentes se quer instalar. Por exemplo, se eu não quiser o Base (porque não uso isso), posso escolher não instalá-lo.
Testarei isso quando tiver um tempo livre...

E obrigado aos a todos pelas informações deste tópico!
____________________________________
O melhor Sistema Operacional é aquele que você sabe usar e atende às suas necessidades.


Realmente companheiro Selinunte gerou uma discussão bacana esse topico o companheiro soube responder com empatia e altruismo. Deu para perceber a vontade que ele teve em me ajudar.


8. Re: Porque todos os arquivos executaveis do programa libreoffice remetem ao arquivo /usr/lib/libreof

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 11/09/2016 - 18:18h

Quando qualquer um desses argumentos são passados para o script /usr/lib/libreoffice/program/soffice ele executa parte do programa sem a necessidade de executar todas as partes, acho que até aqui você entendeu.


/usr/lib/libreoffice/program/soffice --base "$@"
/usr/lib/libreoffice/program/soffice --calc "$@"
/usr/lib/libreoffice/program/soffice --draw "$@"
/usr/lib/libreoffice/program/soffice --impress "$@"
/usr/lib/libreoffice/program/soffice --math "$@"


Mas então por que este $@ está explicito lá no executável (sh)???
A variável $@ é uma array com todos os argumentos passados na linha de comando. Para ela estão dispostos os seguintes argumentos:

--record
--backtrace
--strace
--valgrind

Ou seja, se você remover o $@ e colocar (no lugar dele) uma das opções acima algo diferente acontecerá, como pode ver nesta parte do executável:

for arg in $@ $EXTRAOPT ; do
case "$arg" in
--record)
if which rr >/dev/null 2>&1 ; then
RRCHECK="rr record"
checks="c$checks"
else
echo "Error: Can't find the tool \"rr\", --record option will be ignored."
exit 1
fi
;;
--backtrace)
if which gdb >/dev/null 2>&1 ; then
GDBTRACECHECK="gdb -nx --command=$sd_prog/gdbtrace --args"
checks="c$checks"
else
echo "Error: Can't find the tool \"gdb\", --backtrace option will be ignored."
exit 1
fi
;;
--strace)
if which strace >/dev/null 2>&1 ; then
STRACECHECK="strace -o strace.log -f -tt -s 256"
checks="c$checks"
else
echo "Error: Can't find the tool \"strace\", --strace option will be ignored."
exit 1;
fi
;;
--valgrind)
test -n "$VALGRINDCHECK" && continue;
if which valgrind >/dev/null 2>&1 ; then
# another valgrind tool might be forced via the environment variable
test -z "$VALGRIND" && VALGRIND="memcheck"
# --trace-children-skip is pretty useful but supported only with valgrind >= 3.6.0
valgrind_ver=`valgrind --version | sed -e "s/valgrind-//"`
valgrind_ver_maj=`echo $valgrind_ver | awk -F. '{ print \$1 }'`
valgrind_ver_min=`echo $valgrind_ver | awk -F. '{ print \$2 }'`
valgrind_skip=
if [ "$valgrind_ver_maj" -gt 3 -o \( "$valgrind_ver_maj" -eq 3 -a "$valgrind_ver_min" -ge 6 \) ] ; then
valgrind_skip='--trace-children-skip=*/java,*/gij'
fi
# finally set the valgrind check
VALGRINDCHECK="valgrind --tool=$VALGRIND --trace-children=yes $valgrind_skip --num-callers=50 --error-limit=no"
echo "use kill -SIGUSR2 pid to dump traces of active allocations"
checks="c$checks"
case "$VALGRIND" in
helgrind|memcheck)
export G_SLICE=always-malloc
export GLIBCXX_FORCE_NEW=1
;;
esac
else
echo "Error: Can't find the tool \"valgrind\", --valgrind option will be ignored"
exit 1
fi
;;
esac
done


E por isso eu disse que está é a função do soffice e que esta $@ também é somente dele, ou seja, ele só faz filtrar informações extras e mais algumas paradinhas legais, pode ver que sem a var $@ ele simplesmente chama o programa da mesma forma.

Já o oosplash esse sim recebe um argumento (--calc, --draw e etc).

Oque é um debug? https://pt.wikipedia.org/wiki/Depura%C3%A7%C3%A3o . Eu uso de maneira não convencional kkkkkk, mas me ajuda a entender um pouco das coisas.

Desculpe pelas respostas longas!






9. Re: Porque todos os arquivos executaveis do programa libreoffice remetem ao arquivo /usr/lib/libreoffice

Daniel
DanielDutra

(usa Linux Mint)

Enviado em 11/09/2016 - 23:08h

Obrigado pelas respostas companheiro ctw6av foram muito esclarecedoras e sobre as respostas longas foram necessarias para eu compreender.

Sou muito curioso e confesso que fiquei com mais duvidas mas não vou perguntar mais.
Na verdade eu gostaria é entender e dissecar os codigos que compoem o programa e como e porque eles sao distribuidos pelos diretorios. Mas acho que vou fazer isso com algum programa essencial ao sistema.

Agradeço a discussão!








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts