TeraTermで多段ssh
構造
接続したいサーバが外部に公開されていないため、踏み台で多段sshをかける。
認証は公開鍵認証で自動化。
TeraTermの設定
TeraTermマクロでポートフォワード&踏み台サーバ経由での公開鍵認証を試みる | Tera Term(テラターム)の便利な使い方
まんまこの通りでいいんだけど、unlinkだと中間サーバとのsessionを残した状態で
画面が消えるはずが消えてくれない(そんなものかもしれない)
結果論
- macro.ttl
; hostから中間サーバへの接続コマンドの生成 COMMAND = '"<ttermpro.exeフルパス>" ' <中間サーバのIPorホスト名>:<ポート番号(sshだと22)> /ssh2 /auth=publickey /user=<ユーザー名> /keyfile=<公開鍵のフルパス>' ; 接続(host→中間サーバ) connect COMMAND ; プロンプトを待つ($はbashなので) wait "$" ; コマンド送信 sendln "ssh <ユーザー名>@<対象サーバ>" ; プロンプトを待つ wait "$" ; 画面のクリア sendln "clear"
おまけ
このマクロをデスクトップとかからショートカットで呼び出す。
さっき作った.ttlをフルパスで呼び出したttpmacro.exeに投げつける。
結論
めんどくさ
Teitoku on Debian Wheezy
ヘーイ!Teitoku!
気合!入れて!ビルドします!
// Nodejsとnpmの準備 $ git clone https://github.com/creationix/nvm.git ~/.nvm $ source ~/.nvm/nvm.sh $ nvm install v0.xx.x // bowerの準備 $ npm install -g bower // Teitoku 本体 $ git clone https://github.com/geta6/teitoku.git // gruntの準備とコンパイル $ npm i -g grunt-cli $ npm i $ bower i $ grunt
よし!これで…いけます!
$ ls Gruntfile.coffee README.md build node_modules src vendor HISTORY.md bower.json lib package.json var $ cd build/releases/Teitoku/linux64/Teitoku $ ls Teitoku libffmpegsumo.so nw.pak
はい!実行環境は大丈夫です!
$ ./Teitoku
よく出来ましたっ!
終わり
提督業務環境構築 -リテイクその1-
あらまし
艦メモ ~艦娘メモリーズ~(艦これ専用ブラウザ) - 理ろぐが動いてワッショイしてました。
が、強引すぎるlibcのアップデートに環境が破壊されてしまいました。
(忠告は出ていた)
その時何が起こったのか
locale環境ぶっ壊れました。
元に戻した
libc6 Download (DEB, RPM)から自分の環境のデフォルトのものをとってきます。
Fei3939@debian:~$ sudo dpkg -i libc6_2.13-38+deb7u1_amd64.deb
さてどうするのか
実はgeta6/teitoku · GitHubについても艦メモと同じエラーで動かなかったため、
実質ふりだしに戻ります。
仕方ないので、解決策を探す旅へと戻りました。
解決したのか
Debian 7 GLIBC · Issue #972 · LightTable/LightTable · GitHubの中見てたら解決しました。
とても死にたい。
手順
Fei3939@debian:~$ sudo sh -c 'echo "deb http://ftp.debian.org/debian/ testing main contrib non-free" >> /etc/apt/source.list' Fei3939@debian:~$ sudo apt-get update && sudo aptitude update Fei3939@debian:~$ sudo aptitude install -t testing install libc6-dev
これでlibcのversionが上がりました。(やった時点では2.18になりました)
艦メモをDebian(Wheezy)で動かす
あらまし
自宅PC(Windows機)の電源が爆発してお亡くなりになられたため、
急遽ノートPCにて提督業務を遂行する環境を構築する任務が発生。
候補
以前は艦これ専用ブラウザー Teitoku - geta6 | makeboothを使っていましたが、
改めて導入しようとしてうまく行かず。
そこで、艦メモ ~艦娘メモリーズ~(艦これ専用ブラウザ) - 理ろぐを入れてみました。
環境
Fei3939@debian:~$ uname -a Linux debian 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3+deb7u2 x86_64 GNU/Linux Fei3939@debian:~$ cat /etc/debian_version 7.5
※Flashplayerは既に入っているとします。
手順
基本的にはUbuntuの場合をDebianで読み替えて(読み替えるほどじゃない)行きます。
64bit環境なので、Ubuntu-64bit(deb)からDLします。
つづいて、
$ sudo dpkg -i kanmusumemory-0.0-ubuntu-x86.deb
で、問題はここからでした。
Fei3939@debian:~/Downloads$ KanmusuMemory /usr/local/bin/kanmusumemory/KanmusuMemory: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/bin/kanmusumemory/KanmusuMemory) /usr/local/bin/kanmusumemory/KanmusuMemory: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/lib/kanmusumemory/libQt0TwitterAPI.so.0)
これGLIBCのversionが2.14以上を要求されてます。
それに気づかずに、シンボリックリンクの貼り付けとか考えてて時間食いました。
結果から言うと、Debian Wheezyのデフォルトのlibc6のversionは2.13なんですね…
libc6 Download (DEB, RPM)←ここ見ると(ノ∀`)アチャーですわ。
しょうがないんで、こっから一番新しいの(書いてる時点では2.19)をDLします。
んでインスコ……
Fei3939@debian:~/Downloads$ sudo dpkg -i libc6_2.19-1_amd64.deb dpkg: libc6_2.19-1_amd64.deb が libc6:amd64 を含んでいることを考慮すると: libc6:amd64 は locales (<< 2.19) を壊します locales (バージョン 2.13-38+deb7u1) が提供され、導入済み です。 dpkg: libc6_2.19-1_amd64.deb の処理中にエラーが発生しました (--install): libc6:amd64 のインストールは locales を壊す可能性があり、 設定削除は許されていません (--auto-deconfigure が助けになります) 処理中にエラーが発生しました: libc6_2.19-1_amd64.deb
へー(棒
Fei3939@debian:~/Downloads$ sudo dpkg -i --auto-deconfigure libc6_2.19-1_amd64.deb dpkg: `libc6:amd64' のインストール によって壊れた locales の設定削除を考えています ... dpkg: 問題ありません。(libc6:amd64 によって壊れた) locales の設定削除をします (データベースを読み込んでいます ... 現在 154242 個のファイルとディレクトリがインストールされています。) libc6:amd64 2.13-38+deb7u1 を (libc6_2.19-1_amd64.deb で) 置換するための準備をしています ... locales を設定削除しています ... Checking for services that may need to be restarted... Checking init scripts... libc6:amd64 を展開し、置換しています... libc6:amd64 (2.19-1) を設定しています ... Checking for services that may need to be restarted... Checking init scripts... Restarting services possibly affected by the upgrade: exim4: restarting...done. cups: restarting...done. cron: restarting...done. atd: restarting...done. Services restarted successfully. dpkg: 依存関係の問題により locales の設定ができません: locales は以下に依存 (depends) します: glibc-2.13-1 ...しかし: パッケージ glibc-2.13-1 はまだインストールされていません。 libc6:amd64 (2.19-1) は locales (<< 2.19) を壊し、導入済み です。 設定される locales のバージョン は 2.13-38+deb7u1 です。 dpkg: locales の処理中にエラーが発生しました (--install): 依存関係の問題 - 設定を見送ります 処理中にエラーが発生しました: locales
(もしかしてコケた…???)
Fei3939@debian:~/Downloads$ KanmusuMemory
キタ━━━━(゚∀゚)━━━━!!
お疲れ様でした。
Debian squeezeにgo言語の環境構築
Go言語
- cloudfoundry/gorouter · GitHubで遊んでみようと思い入れました。
aptitudeを試す
$ sudo aptitude install golang 名前か説明が "golang" にマッチするパッケージは見つかりませんでした 名前か説明が "golang" にマッチするパッケージは見つかりませんでした インストール・削除・更新されるパッケージがありません。 更新: 0 個、新規インストール: 0 個、削除: 0 個、保留: 3 個。 0 B のアーカイブを取得する必要があります。展開後に 0 B のディスク領域が新たに消費されます。
( ^ω^)…
$ sudo aptitude search go p addresses-goodies-for-gnustep - GNUstep 用個人アドレスマネージャ (Goodies) p aewm++-goodies - 最小限のウィンドウマネージャの補完ユーティ p akonadi-kde-resource-googledata - Google calendar and contacts resource for p alt-ergo - Automatic theorem prover dedicated to prog ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ p gok-doc - GNOME Onscreen Keyboard 用文書ファイル p goldendict - a feature-rich dictionary lookup program p goldendict-wordnet - electronic lexical database of English lan v golearn -
(#^ω^)……
直接
ここから取ってくるじゃろ?
こうして
$ sudo tar -C /usr/local -xzf go1.2.2.linux-amd64.tar.gz $ export PATH=$PATH:/usr/local/go/bin
こうやって
package main import "fmt" func main() { fmt.Printf("hello\n") }
こうじゃ
$ go run test.go
hello
スクリーンショット+Twitter
開発環境
- Windows8
- Visual Studio 2013
- -TweetSharp- github (C#用のApi1.1対応ライブラリ)
あれだった点
Twitter認証でコケてた
- OAuth認証でPINコードを取得してaccess.TokenとAccess.TokenSecretを投げたときに受け取ったはずのserviceの中がNullでNullReferenceExceptionが返ってきた
using TweetSharp; TwitterService service = new TwitterService("consumerKey", "consumerSecret"); OAuthRequestToken requestToken = service.GetRequestToken(); Uri uri = service.GetAuthorizationUri(requestToken); Process.Start(uri.ToString()); //---- ここまでは良かった ----// string verifier = "123456"; //-- Pinコード //-- アクセストークンを取ってくる… OAuthAccessToken access = service.GetAccessToken(requestToken, verifier); //-- 問題はここ service.AuthenticateWith(access.Token, access.TokenSecret);
この部分で例外をキャッチしていたようでserviceの参照でNullを見てたらしい…
(数日放置して書き直したら動いたので原因がまだよくわからない)
UIがクソ
- 自分のセンスのなさが伺えます
- Twitter認証するための認証ページを開かせるためのボタンと認証ボタンを分けてた
- 結局認証ボタンでまとめて、別フォームを開いてPinコードを入力するようにした
常に画像が添付して投稿される状態
- スクショした画像をすぐにそのままつぶやく目的だったから良いといえばよかったけど…
- 結局投稿するときに画像を添付するかどうか尋ねるダイアログを出すようにした