{"id":51,"date":"2006-04-27T09:58:34","date_gmt":"2006-04-27T07:58:34","guid":{"rendered":"http:\/\/my.stargazer.at\/?p=51"},"modified":"2011-08-29T08:09:50","modified_gmt":"2011-08-29T06:09:50","slug":"gmail-als-filesystem-unter-linux","status":"publish","type":"post","link":"https:\/\/my.stargazer.at\/de\/2006\/04\/27\/gmail-als-filesystem-unter-linux\/","title":{"rendered":"GMail als Filesystem unter Linux"},"content":{"rendered":"<p>Gmail ist ein \u00fcberdimensioniertes Postfach im Web. <a href=\"http:\/\/de.wikipedia.org\/wiki\/GmailFS\">GmailFS<\/a> bietet eine M\u00f6glichkeit, den Google-Mailaccount als Datenspeicher zu (Miss)brauchen und den dortigen Platz (sinnvoll?) zu ben\u00fctzen.<\/p>\n<p><!--more--><\/p>\n<p>Was brauchen wir daf\u00fcr?<\/p>\n<ul>\n<li>FUSE<\/li>\n<li>libgmail<\/li>\n<li>pyopenssl<\/li>\n<li><a href=\"http:\/\/bugs.gentoo.org\/show_bug.cgi?id=63789\">FUSE Bindings f\u00fcr Python<\/a><\/li>\n<li>einen GMail Account<\/li>\n<li><a href=\"http:\/\/bugs.gentoo.org\/show_bug.cgi?id=63785\">GmailFS<\/a><\/li>\n<\/ul>\n<p>alle diese Pakete bis auf die <a href=\"http:\/\/bugs.gentoo.org\/show_bug.cgi?id=63789\">FUSE Bindings f\u00fcr Python<\/a> und das GMailFS Paket sind durch entsprechende Ebuilds im Portage vertreten. Wir holen uns das entsprechende Ebuild aus dem Gentoo-Bugzilla (<a href=\"http:\/\/bugs.gentoo.org\/show_bug.cgi?id=63789\">http:\/\/bugs.gentoo.org\/show_bug.cgi?id=63789<\/a> bzw <a href=\"http:\/\/bugs.gentoo.org\/show_bug.cgi?id=63785\">http:\/\/bugs.gentoo.org\/show_bug.cgi?id=63785<\/a>)<\/p>\n<p>Da mein System schon auf ~x86\/unstable aufgebaut ist werde ich keine Probleme mit den Paketen haben. Wer hingegen Stable benutzt sollte sie zuerst in <em>\/etc\/portage\/package.keywords<\/em> eintragen!<\/p>\n<p>Schon emergen? Nein. So leicht geht es dann doch nicht. Das erste Problem machen uns die FUSE Bindings f\u00fcr Python, da sie zuerst aus dem Bugzilla manuell geladen werden m\u00fcssen (die Fetch-Restriction ist berechtigt). Dies beinhaltet u.a. auch die Patch-Files welche dann manuell im Portage-Overlay platziert werden m\u00fcssen um nicht beim n\u00e4chsten Sync verloren zu gehen.<\/p>\n<p>Nun aber los:<\/p>\n<blockquote><p><code>emerge --digest sys-fs\/fuse-python<\/code><\/p><\/blockquote>\n<p>Nachdem dieser Schritt geschafft ist, geht es an das eigentliche GmailFS-Paket, welches wir nun ebenfalls im Overlay platzieren. Der Parameter <em>&#8211;digest<\/em> ist n\u00f6tig, da wir keine Pr\u00fcfsummen \u00fcber die Ebuilds haben.<\/p>\n<blockquote><p><code>emerge --digest sys-fs\/gmailfs<\/code><\/p><\/blockquote>\n<p>Nachdem auch dies ausgestanden ist, denken wir uns einen Filesystemnamen aus, damit niemand an unseren Daten rumbasteln kann. Unkreative Leute wie ich verwenden dazu meist eine kleine Denkhilfe in Bash:<\/p>\n<blockquote><p><code>\/usr\/bin\/dd bs=12 count=1 if=\/dev\/urandom 2&gt; \/dev\/null | base64 -e<\/code><\/p><\/blockquote>\n<p>Nun k\u00f6nnen wir unseren Gmail-Account unter Verwendung entsprechender Parameter mounten:<\/p>\n<blockquote><p><code>mount -t gmailfs \/usr\/bin\/gmailfs.py \/mnt\/gmail -o username=gmailuser,password=gmailpass,fsname=5VLybTgs1ENbLhCd<\/code><\/p><\/blockquote>\n<p>Damit binden wir das Filesystem im System ein. Bitte erwartet keine gute Performance, da das Script mehr Hack als L\u00f6sung darstellt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gmail ist ein \u00fcberdimensioniertes Postfach im Web. GmailFS bietet eine M\u00f6glichkeit, den Google-Mailaccount als Datenspeicher zu (Miss)brauchen und den dortigen Platz (sinnvoll?) zu ben\u00fctzen.<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[233],"class_list":["post-51","post","type-post","status-publish","format-standard","hentry","category-it-related-stuff","tag-google"],"_links":{"self":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/51","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/comments?post=51"}],"version-history":[{"count":0,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/51\/revisions"}],"wp:attachment":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media?parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/categories?post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/tags?post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}