URL: https://linuxfr.org/users/freem/journaux/un-editeur-de-code-portable-par-microsoft Title: un éditeur de code portable par Microsoft? Authors: freem Date: 2018年02月09日T10:31:07+01:00 License: CC By-SA Tags: éditeur, code, selinux et microsoft Score: 46 Ce matin, pas trop décidé à faire une tâche pénible, j'ai été jeter un oeil sur développez.com, et suis tombé sur [un article](https://www.developpez.net/forums/d1516859-8/dotnet/edi-outils/visual-studio/visual-studio-code-1-20-disponible/#post9988070) qui indique «Visual Studio Code 1.20 est disponible [...] l’éditeur de code open source et multiplateforme de Microsoft». Entre méfiance et envie de défouler ma mauvaise foi, je vais donc voir pour télécharger le-dit éditeur sur le site officiel. Et la, j'enchaîne les déceptions: * ils remarquent que je ne suis pas sous windows, et fournissent à la fois un .deb et un .rpm... obligation donc de télécharger pour tester. * je télécharge le .deb, le dpkg de manière habituelle, et comme d'hab je lance aptitude pour aller réparer les dépendances manquantes... et bah non! Rien. Les seules dépendances: apt, gnupg, libgconf, libnotify, libnss, libsecret et libxkbfile! Du coup, obligé de tester... * je lance, espérant que ça merde, histoire de pouvoir troller sur un soft trop lourd voire qui ne se lance pas (tant de softs galèrent quand on n'a pas un bureau classique...): encore raté, il se lance instantanément, sans le moindre problème... * en «bon» utilisateur (initié, mais loin de maîtriser) de vim, je me dis que je vais p'tet pouvoir me rabattre sur des raccourcis clavier mal branlés... faux: je trouve en quelques clics (moins de 5!) comment lui faire utiliser les raccourcis clavier classiques de vim! * ok, allons donc regarder un peu ce qui tourne, en quelques secondes... `vim $(which code)` => un script bash. Bon, ils auraient pu utiliser sh, pour ce que j'en lit, en tout cas, à première vue, c'est propre, un script de lancement classique, qui lance '/usr/share/code/code' (ah, enfin des trucs étranges, mais pas de quoi fouetter un chat). * listons les dépendances de ce fameux binaire, on va bien trouver un truc à redire, j'ai quelques saletés installées à cause de softs utilisés par la boîte, dont je me débarrasserais bien, y'a bien une lib dedans que je vais pouvoir troller: ``` ~% ldd /usr/share/code/code linux-vdso.so.1 (0x00007ffdf9774000) libnode.so => /usr/share/code/libnode.so (0x00007fab9beb8000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fab9bc9b000) libgtk-x11-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 (0x00007fab9b652000) libgdk-x11-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0 (0x00007fab9b39d000) libpangocairo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007fab9b190000) libatk-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0 (0x00007fab9af6a000) libcairo.so.2 => /usr/lib/x86_64-linux-gnu/libcairo.so.2 (0x00007fab9ac56000) libgdk_pixbuf-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007fab9aa32000) libgio-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007fab9a69c000) libpango-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007fab9a450000) libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fab9a1fd000) libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fab99f4e000) libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fab99d10000) libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fab99ac0000) libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007fab998be000) libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fab99696000) libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007fab99486000) libXcursor.so.1 => /usr/lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007fab9927b000) libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007fab99078000) libXrandr.so.2 => /usr/lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007fab98e6d000) libXcomposite.so.1 => /usr/lib/x86_64-linux-gnu/libXcomposite.so.1 (0x00007fab98c6a000) libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fab98a58000) libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fab98852000) libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fab98648000) libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fab98308000) libXtst.so.6 => /usr/lib/x86_64-linux-gnu/libXtst.so.6 (0x00007fab98102000) libXss.so.1 => /usr/lib/x86_64-linux-gnu/libXss.so.1 (0x00007fab97eff000) libgconf-2.so.4 => /usr/lib/x86_64-linux-gnu/libgconf-2.so.4 (0x00007fab97cce000) libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007fab97aca000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fab978c2000) libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fab975ae000) libnss3.so => /usr/lib/x86_64-linux-gnu/libnss3.so (0x00007fab97264000) libnssutil3.so => /usr/lib/x86_64-linux-gnu/libnssutil3.so (0x00007fab97036000) libsmime3.so => /usr/lib/x86_64-linux-gnu/libsmime3.so (0x00007fab96e09000) libnspr4.so => /usr/lib/x86_64-linux-gnu/libnspr4.so (0x00007fab96bc9000) libffmpeg.so => /usr/share/code/libffmpeg.so (0x00007fab9671e000) libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007fab96411000) libcups.so.2 => /usr/lib/x86_64-linux-gnu/libcups.so.2 (0x00007fab96188000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fab95f84000) libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fab95d5a000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fab959d8000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fab956d4000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fab954bd000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fab9511e000) /lib64/ld-linux-x86-64.so.2 (0x00007fab9d50a000) libpangoft2-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007fab94f08000) libXinerama.so.1 => /usr/lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007fab94d05000) libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fab94b03000) libpixman-1.so.0 => /usr/lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007fab9485c000) libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fab94629000) libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007fab94425000) libxcb-render.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007fab94217000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fab93ffd000) libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fab93dd5000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fab93bbe000) libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007fab93970000) libthai.so.0 => /usr/lib/x86_64-linux-gnu/libthai.so.0 (0x00007fab93766000) libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007fab9355d000) libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fab9d679000) libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fab93359000) libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fab93153000) libdbus-glib-1.so.2 => /usr/lib/x86_64-linux-gnu/libdbus-glib-1.so.2 (0x00007fab92f2c000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fab92cb9000) libplc4.so => /usr/lib/x86_64-linux-gnu/libplc4.so (0x00007fab92ab4000) libplds4.so => /usr/lib/x86_64-linux-gnu/libplds4.so (0x00007fab928b0000) libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fab92665000) libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fab922cc000) libavahi-common.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-common.so.3 (0x00007fab920bf000) libavahi-client.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-client.so.3 (0x00007fab91eae000) libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fab91c19000) libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007fab919d3000) libdatrie.so.1 => /usr/lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007fab917cb000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fab915a5000) liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007fab91393000) libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fab91083000) libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fab90e6d000) libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fab90b93000) libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fab90960000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fab9075c000) libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fab90550000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fab9034c000) libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fab900e7000) libidn.so.11 => /lib/x86_64-linux-gnu/libidn.so.11 (0x00007fab8feb3000) libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fab8fca0000) libnettle.so.6 => /usr/lib/x86_64-linux-gnu/libnettle.so.6 (0x00007fab8fa69000) libhogweed.so.4 => /usr/lib/x86_64-linux-gnu/libhogweed.so.4 (0x00007fab8f834000) libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fab8f5b1000) libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fab8f384000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fab8f17f000) libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fab8ef6b000) ``` Ah, il y a bien des choses qui sont un peu étranges, ou alors pas listées dans les dépendances: avahhi-client, gtk (2, à priori), uuid, X.*... mais rien de lié à du javascript ou un quelconque langage de script, qui m'eusse permis de râler! D'un autre côté, ça explique la réactivité du truc. Bref, du coup, je suis bien déçu pour mon défouloir, pire, j'ai même envie de tester plus avant ce logiciel... Du coup, je partage ça ici, en ce jour dédié, dans l'espoir que l'on m'aide à troller ce soft qui à l'air propre malgré qu'il soit édité par Microsoft... Ou va le monde, si un honnête troll ne peux plus attaquer Microsoft, je vous le demande ma p'tite dame! Note pour moi-même, vérifier que les dépendances listées par le .deb sont bien les seules réellement nécessaires, c'est une piste de râlage potentiel... ou un moyen d'apprendre une technique pour faire du code plus indépendant du système: d'un côté ou de l'autre, je gagnerai à étudier ça.

AltStyle によって変換されたページ (->オリジナル) /