একবারে আমাকে একটি নতুন উবুন্টু ইনস্টল করতে হবে (আমি এটি ডেস্কটপ এবং সার্ভার উভয় ক্ষেত্রেই ব্যবহার করেছি) এবং আমি সবসময় সংকলনের আগে ইনস্টল করা উচিত ছিল এমন কয়েকটি গ্রন্থাগার ভুলে গিয়েছিলাম, যার অর্থ আমাকে পুনরায় সংকলন করতে হবে, এবং এটি বিরক্তিকর হয়ে উঠছে।
সুতরাং এখন পাইথন সংকলনের আগে ইনস্টল করার জন্য সমস্ত গ্রন্থাগার প্যাকেজগুলির একটি সম্পূর্ণ তালিকা তৈরি করতে চাই (এবং তারা পছন্দমতো কীভাবে বিকল্প হয়))
এই তালিকাটি আমি নীচে সহায়তা দিয়ে এবং খনন করে সংকলিত setup.py
। এটি কমপক্ষে উবুন্টু 10.04 এবং 11.04 এর জন্য সম্পূর্ণ:
build-essential (obviously)
libz-dev (also pretty common and essential)
libreadline-dev (or the Python prompt is crap)
libncursesw5-dev
libssl-dev
libgdbm-dev
libsqlite3-dev
libbz2-dev
পাইথন ৩.২ এবং তার পরে:
liblzma-dev
আরও alচ্ছিক:
tk-dev
libdb-dev
বার্কলে ডাটাবেসের v1.8.5 এর জন্য উবুন্টুর কোনও প্যাকেজ নেই, না (সুস্পষ্ট কারণে) সুন অডিও হার্ডওয়্যার, সুতরাং উবুন্টুতে bsddb185
এবং sunaudiodev
মডিউলগুলি এখনও নির্মিত হবে না, তবে অন্যান্য সমস্ত মডিউলগুলি উপরের প্যাকেজগুলি ইনস্টল করে তৈরি করা হয়েছে।
হালনাগাদ
উবুন্টু 14.04 আরও বেশি পাইথন 2.6 জন্য প্রয়োজনীয় প্যাচ মধ্যে আছে, এবং 2.7 ইত্যাদি পরিবর্তে আমি চেকআউট সুপারিশ করবে pyenv । এটিতে একটি স্ক্রিপ্ট রয়েছে python-build
(এতে অবস্থিত plugins/python-build/bin
)। এটির সাহায্যে আপনি এটির মতো নির্বিচারে পাইথন সংস্করণ ইনস্টল করতে পারেন:
$ ./python-build 2.7.8 /opt/python27
যেখানে ২.7.৮ হ'ল সংস্করণ এবং / অপ্ট / পাইথন 27 এটি ইনস্টল হওয়ার পথে। পাইএনভ পাইথন সংস্করণ ডাউনলোড করবে, প্রয়োজনীয় প্যাচগুলি প্রয়োগ করবে এবং আপনার configure; make; make install
জন্য।
সমাপ্তি আপডেট
পাইথন 2.5 এবং পাইথন 2.6 এরও নতুন মাল্টি-আর্চ লেআউটটি হ্যান্ডেল করতে উবুন্টু ১১.০৪ এবং তারপরে এলডিএফএলএফএস স্থাপন করা দরকার:
export LDFLAGS="-L/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
পাইথন 2.6, 2.7 এবং 3.0 এর জন্য আপনাকে ./configure
স্ক্রিপ্টটি চালানোর পরে এবং চালনার আগে স্পষ্টভাবে এসএসএল সক্ষম করতে হবে make
। ইন Modules/Setup
এই মত লাইন হল:
#SSL=/usr/local/ssl
#_ssl _ssl.c \
# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
# -L$(SSL)/lib -lssl -lcrypto
এই লাইনগুলিকে কমেন্ট করুন এবং এসএসএল ভেরিয়েবলকে এতে পরিবর্তন করুন /usr
:
SSL=/usr
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
পাইথন 2.6 এবং 3.0 এর ওপেনএসএসএল 1.0 ব্যবহার করার জন্য মডিউল / _ এসএসএল.সি. সংশোধিত প্রয়োজন যা উবুন্টু ১১.১০ তে ব্যবহৃত হয়। 300 লাইনে আপনি এটি পাবেন:
else if (proto_version == PY_SSL_VERSION_SSL3)
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
else if (proto_version == PY_SSL_VERSION_SSL2)
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
else if (proto_version == PY_SSL_VERSION_SSL23)
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
এতে পরিবর্তন করুন:
else if (proto_version == PY_SSL_VERSION_SSL3)
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
#ifndef OPENSSL_NO_SSL2
else if (proto_version == PY_SSL_VERSION_SSL2)
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
#endif
else if (proto_version == PY_SSL_VERSION_SSL23)
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
এটি SSL_v2 সমর্থন অক্ষম করে, যা স্পষ্টতই OpenSSL1.0 এ গেছে।
পাইথন ২.৪ (হ্যাঁ, আমার এখনও কিছু পুরানো প্রকল্প রয়েছে যার ২.৪ প্রয়োজন) সেটআপ.পিতে এই প্যাচটি দরকার:
--- setup.py 2006-10-08 19:41:25.000000000 +0200
+++ setup.py 2012-05-08 14:02:14.325174357 +0200
@@ -269,6 +269,7 @@
lib_dirs = self.compiler.library_dirs + [
'/lib64', '/usr/lib64',
'/lib', '/usr/lib',
+ '/usr/lib/x86_64-linux-gnu'
]
inc_dirs = self.compiler.include_dirs + ['/usr/include']
exts = []
@@ -496,7 +497,8 @@
ssl_incs += krb5_h
ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
['/usr/local/ssl/lib',
- '/usr/contrib/ssl/lib/'
+ '/usr/contrib/ssl/lib/',
+ 'x86_64-linux-gnu'
] )
if (ssl_incs is not None and
এবং এটি দিয়ে সংকলন করা দরকার:
env CPPFLAGS="-I/usr/lib/x86_64-linux-gnu" LDFLAGS="-L/usr/include/x86_64-linux-gnu" ./configure --prefix=/opt/python2.4